Beispiel #1
0
        /// <summary>
        /// Creates a secure message, can only contain one message!
        /// </summary>
        private SecureMessage1[] getSecureDeliveryMessageV3(Package.DataTransferObjects.BusinessObjects.Mail mailItem, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer: incoming getSecureDeliveryMessage with RequestId: {0}", requestId));

            var secureDeliveryHandler = new SecureDeliveryHandler();
            var secureMessageArray    = new SecureMessage1[1];
            var secureMessage         = new SecureMessage1();

            if (mailItem.Attachments != null && mailItem.Attachments.Count > 0)
            {
                var attachments = new List <Attachment>();

                foreach (DataTransferObjects.BusinessObjects.Attachment att in mailItem.Attachments)
                {
                    attachments.Add(secureDeliveryHandler.GetAttachment(att.Body, att.ContentType, att.Filename, requestId));
                }
                secureMessage.Attachment = attachments.ToArray();
            }

            secureMessage.Body = secureDeliveryHandler.GetMessageBody(mailItem.Body.Text, mailItem.Body.ContentType, requestId);
            //secureMessage.Header = secureDeliveryHandler.GetMessageHeader(mailItem.MessageHeaderId, mailItem.Subject, ConfigHelper.SupportInfoEmailAddress, ConfigHelper.SupportInfoPhoneNumber,
            //    ConfigHelper.SupportInfoText, ConfigHelper.SupportInfoUri, ConfigHelper.Language, requestId); ==MG==
            secureMessage.Header = secureDeliveryHandler.GetMessageHeader(mailItem.MessageHeaderId, mailItem.Subject,
                                                                          //ConfigHelper.SupportInfoEmailAddress,
                                                                          mailItem.SupInfoEmailAddress,
                                                                          //ConfigHelper.SupportInfoPhoneNumber,
                                                                          mailItem.SupInfoPhoneNumber,
                                                                          //ConfigHelper.SupportInfoText,
                                                                          mailItem.SupInfoText,
                                                                          //ConfigHelper.SupportInfoUri,
                                                                          mailItem.SupInfoUrI,
                                                                          ConfigHelper.Language, requestId);

            secureMessageArray[0] = secureMessage;

            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer: leaving getSecureDeliveryMessage with RequestId: {0}", requestId));
            return(secureMessageArray);
        }
Beispiel #2
0
        /// <summary>
        /// Validates recipient and signs message, sends it to Mina meddelanden.
        /// </summary>
        public string SendPackage(Package.DataTransferObjects.BusinessObjects.Mail mailItem, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: incoming SendPackage with RequestId: {0}", requestId));

            var distributionId = string.Empty;

            // Validate the mail
            if (ValidateMail(mailItem, requestId))
            {
                distributionId = SendPackageV3(mailItem, requestId);
            }
            else
            {
                var failureMessage = string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: Couldnt send package to: {0}. Didnt validate. RequestId: {1}", mailItem.Recipient.To, requestId);
                LogManager.Log(new Log.Log()
                {
                    EventId = EventId.Warning, Message = failureMessage, Level = Level.Warning
                });
            }

            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: leaving SendPackage with RequestId: {0}", requestId));
            return(distributionId);
        }
Beispiel #3
0
        /// <summary>
        /// Sends a package to mailbox operator for the recipient and saves in database.
        /// </summary>
        /// <param name="mailItem"></param>
        /// <param name="mailBox"></param>
        /// <param name="requestId"></param>
        /// <returns></returns>
        public SendPackageResponse SendPackageToMailbox(Package.DataTransferObjects.BusinessObjects.Mail mailItem, MailBox mailBox, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: incoming SendPackageToMailbox with RequestId: {0}", requestId));

            SendPackageToMailboxResponse sendPackageToMailboxResponse = new SendPackageToMailboxResponse()
            {
                Delivered = false, TransId = null
            };
            PackageStatus packageStatus = PackageStatus.Failed;

            // Validate the mail
            if (ValidateMail(mailItem, requestId))
            {
                var dataManager = new DataLayer.DataManager();

                try
                {
                    //LOG to database
                    //  var packageHandler = new PackageHandler();
                    //Save Package in database
                    // var databaseId = packageHandler.SavePackage(mailItem.Recipient.To, mailItem.Sender, PackageStatus.Failed, requestId, mailBox.Name);
                    //Send Package to DeliveryMailboxService
                    sendPackageToMailboxResponse = dataManager.SendPackageToMailBox(mailItem, mailBox, requestId);
                    //Get status of sent Package
                    packageStatus = getPackageStatus(sendPackageToMailboxResponse.Delivered);
                    //Log to database result of sending a message.
                    // packageHandler.UpdatePackage(sendPackageToMailboxResponse.TransId, 0, packageStatus, requestId);
                    //Save statistics in database
                    DateTime?deliveredDate = null;
                    if (packageStatus == PackageStatus.Delivered)
                    {
                        deliveredDate = DateTime.Now;
                    }

                    //  packageHandler.SaveStatistics(RecipientType(mailItem.Recipient.To), deliveredDate, packageStatus.ToString(), requestId);
                }
                catch (Exception e)
                {
                    var errorMessage = string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: Exception thrown trying to send a Package to Mailbox. Exception: {0}, RequestId: {1}", e.ToString(), requestId);
                    LogManager.Log(new Log.Log()
                    {
                        EventId = EventId.GenerelizedException, Exception = e, Level = Level.Error, Message = errorMessage
                    });
                    throw e;
                }
            }
            else
            {
                var failureMessage = string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: Couldnt send message to: {0}. Didnt validate. RequestId: {1}", mailItem.Recipient.To, requestId);
                LogManager.Log(new Log.Log()
                {
                    EventId = EventId.Warning, Message = failureMessage, Level = Level.Warning
                });
            }

            var result = new SendPackageResponse()
            {
                DeliveryStatus = ConvertPackageStatusToPackageDeliveryStatus(packageStatus).ToString(), DistributionId = sendPackageToMailboxResponse.TransId, RequestId = requestId
            };

            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: leaving SendPackageToMailbox with RequestId: {0}", requestId));
            return(result);
        }