/// <summary> /// Inserts a new Package log to the database. /// </summary> public int InsertMailboxDeliveryIntoPackage(PackageDeliveryMailbox package, Guid requestId) { LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: incoming InsertMailboxDeliveryIntoPackage with RequestId: {0}", requestId)); //Save Message to database. var sqlCommand = GetSqlCommandAsStoredProcedure("InsertIntoPackageDeliveryMailbox"); var returnId = 0; try { using (sqlCommand) { sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "PackageStatus", package.PackageStatus.ToString())); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "Sender", package.Sender)); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "Recipient", package.Recipient)); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.DateTime, "CreatedDate", package.CreatedDate)); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.UniqueIdentifier, "RequestId", requestId)); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "MailBoxOperator", package.MailboxOperator)); sqlCommand.Parameters.Add(GetOutputSqlParameter(SqlDbType.Int, "Id", 0)); sqlCommand.Connection.Open(); sqlCommand.ExecuteNonQuery(); returnId = int.Parse(sqlCommand.Parameters["Id"].Value.ToString()); if (returnId == 0) { throw new ArgumentException("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: Something went wrong saving InsertMailboxDeliveryIntoPackage, a new post in the database, no new Id was returned.."); } } } catch (Exception e) { var errorMessage = string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: Error saving Message to database. Recipient: {0}, RequestId: {1}", package.Recipient, requestId); LogManager.Log(new Log.Log() { EventId = EventId.SqlDatabaseExceptionWriting, Exception = e, Level = Level.Error, Message = errorMessage }); throw e; } finally { if (sqlCommand.Connection.State != System.Data.ConnectionState.Closed) { sqlCommand.Connection.Close(); } } LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: leaving InsertMailboxDeliveryIntoPackage with RequestId: {0}", requestId)); return(returnId); }
/// <summary> /// Creates a PackageResult and updates database. /// </summary> public void UpdatePackage(string transactionId, int databaseId, PackageStatus status, Guid requestId) { LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.Handler.PackageHandler: incoming UpdateMessage with RequestId: {0}", requestId)); var packageDeliveryMailbox = new PackageDeliveryMailbox() { TransactionId = transactionId, PackageStatus = status, }; _sqlManager.UpdatePackageDeliveryMailbox(packageDeliveryMailbox, databaseId, requestId); LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.Handler.PackageHandler: leaving UpdateMessage with RequestId: {0}", requestId)); }
public void UpdatePackageDeliveryMailbox(PackageDeliveryMailbox packageResult, int databaseId, Guid requestId) { LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: incoming UpdatePackageDeliveryMailbox with RequestId: {0}", requestId)); //Save MessageResult to database. var sqlCommand = GetSqlCommandAsStoredProcedure("UpdatePackageDeliveryMailbox"); try { using (sqlCommand) { sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "Id", databaseId)); sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "TransactionId", packageResult.TransactionId)); if (packageResult.PackageStatus == PackageStatus.Delivered) { sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.DateTime, "DeliveryDate", DateTime.Now)); } sqlCommand.Parameters.Add(GetSqlParameter(System.Data.SqlDbType.NVarChar, "Status", packageResult.PackageStatus.ToString())); sqlCommand.Connection.Open(); sqlCommand.ExecuteNonQuery(); sqlCommand.Connection.Close(); } } catch (Exception e) { var errorMessage = string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: Error when updating Message in database. PackageId: {0}, DistibutionId: {1}, RequestId: {2}", databaseId, packageResult.TransactionId, requestId); LogManager.Log(new Log.Log() { EventId = EventId.SqlDatabaseExceptionWriting, Exception = e, Level = Level.Error, Message = errorMessage }); } finally { if (sqlCommand.Connection.State != System.Data.ConnectionState.Closed) { sqlCommand.Connection.Close(); } } LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.DataLayer.SqlManager: leaving UpdatePackage with RequestId: {0}", requestId)); }
/// <summary> /// Creates and saves a PackageDeliveryMailbox in database. /// </summary> public int SavePackage(string recipient, string sender, PackageStatus status, Guid requestId, string mailboxOperator) { LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.Handler.PackageHandler: incoming SavePackage with RequestId: {0}", requestId)); var package = new PackageDeliveryMailbox() { Recipient = recipient, CreatedDate = DateTime.Now, Sender = sender, PackageStatus = status, MailboxOperator = mailboxOperator }; var databaseId = _sqlManager.InsertMailboxDeliveryIntoPackage(package, requestId); LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.Handler.PackageHandler: leaving SavePackage with RequestId: {0}", requestId)); return(databaseId); }