Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        /// <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);
        }