90 lines
2.6 KiB
C#
90 lines
2.6 KiB
C#
using DigitalData.Modules.Database;
|
|
using DigitalData.Modules.Logging;
|
|
using EnvelopeGenerator.Common;
|
|
|
|
namespace EnvelopeGenerator.Web.Services
|
|
{
|
|
public class DatabaseService
|
|
{
|
|
public MSSQLServer MSSQL { get; set; }
|
|
|
|
private EnvelopeModel envelopeModel;
|
|
private DocumentModel documentModel;
|
|
private ReceiverModel receiverModel;
|
|
private ElementModel elementModel;
|
|
|
|
private readonly LogConfig _logConfig;
|
|
private readonly Logger _logger;
|
|
|
|
|
|
public DatabaseService(LoggingService Logging, IConfiguration Config)
|
|
{
|
|
_logConfig = Logging.LogConfig;
|
|
_logger = Logging.LogConfig.GetLogger();
|
|
|
|
_logger.Debug("Establishing MSSQL Database connection..");
|
|
MSSQL = new MSSQLServer(_logConfig, Config["Config:ConnectionString"]);
|
|
|
|
if (MSSQL.DBInitialized == true)
|
|
{
|
|
_logger.Debug("MSSQL Connection: [{0}]", MSSQL.CurrentConnectionString);
|
|
|
|
var state = GetState();
|
|
InitializeModels(state);
|
|
}
|
|
else
|
|
{
|
|
_logger.Warn("Connection could not be established!");
|
|
}
|
|
}
|
|
|
|
public State GetState()
|
|
{
|
|
return new State
|
|
{
|
|
Database = MSSQL,
|
|
LogConfig = _logConfig,
|
|
UserId = 2 // TODO
|
|
};
|
|
}
|
|
|
|
public void InitializeModels(State state)
|
|
{
|
|
envelopeModel = new(state);
|
|
documentModel = new(state);
|
|
receiverModel = new(state);
|
|
elementModel = new(state);
|
|
}
|
|
|
|
public EnvelopeResponse LoadEnvelope(string pEnvelopeKey)
|
|
{
|
|
Tuple<string, string> result = Helpers.DecodeEnvelopeReceiverId(pEnvelopeKey);
|
|
var envelopeUuid = result.Item1;
|
|
var receiverSignature = result.Item2;
|
|
var receiverId = receiverModel.GetReceiverIdBySignature(receiverSignature);
|
|
|
|
Envelope envelope = envelopeModel.GetByUuid(envelopeUuid);
|
|
List<EnvelopeDocument> documents = (List<EnvelopeDocument>)documentModel.List(envelope.Id, receiverId);
|
|
|
|
envelope.Documents = documents;
|
|
|
|
return new()
|
|
{
|
|
ReceiverId = receiverId,
|
|
Envelope = envelope
|
|
};
|
|
}
|
|
|
|
public List<Envelope> LoadEnvelopes(int pReceiverId)
|
|
{
|
|
return (List<Envelope>)envelopeModel.List(pReceiverId);
|
|
}
|
|
|
|
public EnvelopeDocument LoadDocument(int pDocumentId)
|
|
{
|
|
return documentModel.GetById(pDocumentId);
|
|
}
|
|
|
|
}
|
|
}
|