Exemple #1
0
        public string SendPackageV3(DataTransferObjects.BusinessObjects.Mail mailItem, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.Package.BusinessLayer.BusinessManager: incoming SendPackageV3 with RequestId: {0}", requestId));

            //Transform MailItem to object of type specified by MinaMeddelandens Message webservice.
            var secureDelivery = GetSecureDeliveryV3(mailItem, requestId);

            //Create SignedDelivery and sign xmldocument and create a secureDelivery object specified in Mina meddelanden Message webservice.
            var signedDeliveryHandler = new SignedDeliveryHandler();
            var signedDelivery        = signedDeliveryHandler.GetSignedDeliveryV3(secureDelivery, ConfigHelper.SignDelivery, ConfigHelper.DefaultNamespaceV3, ConfigHelper.SigningCertificateSubjectName, requestId);

            //LOG to database before sending a message.
            var packageHandler = new PackageHandler();

            //Save message in database
            //  var databaseId = packageHandler.SavePackage(mailItem.Recipient.To, mailItem.Sender, PackageStatus.Pending, requestId);

            var dataManager = new DataManager();

            var distributionId = dataManager.SendPackageV3(signedDelivery, requestId);

            //Log to database result of sending a message.
            DateTime?deliveryDate = null;

            packageHandler.UpdatePackage(distributionId, 0, PackageStatus.Pending, deliveryDate, requestId);

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

            return(distributionId);
        }
Exemple #2
0
        private SendPackageToMailboxResponse SendPackageToMailboxV3(Mail mailItem, Mailbox box, Guid requestId)
        {
            LogManager.LogTrace(string.Format("SE.GOV.MM.Integration.DeliveryMailbox.BusinessLayer.BusinessManager: incoming SendPackageToMailboxV3 with RequestId: {0}", requestId));

            SendPackageToMailboxResponse result = null;

            if (validateMail(mailItem, requestId))
            {
                var secureDeliveryV3 = getSecureDeliveryV3(mailItem, requestId);

                //Create SignedDelivery and sign xmldocument.
                var signedDeliveryHandler = new SignedDeliveryHandler();
                var signedDeliveryV3      = signedDeliveryHandler.GetSignedDeliveryV3(secureDeliveryV3, ConfigHelper.SignDelivery, ConfigHelper.DefaultNamespaceV3, ConfigHelper.SigningCertificateSubjectName, requestId);
                //var signedDeliveryV3 = signedDeliveryHandler.GetSignedDeliveryV3(secureDeliveryV3, ConfigHelper.SignDelivery, ConfigHelper.DefaultNamespaceV3, mailItem.CertificationBySubjectName, requestId);


                //Create SealedDelivery from SignedDelivery
                var sealedDeliveryHandler = new SealedDeliveryHandler();
                var sealedDeliveryV3      = sealedDeliveryHandler.GetSealedDeliveryV3(signedDeliveryV3, ConfigHelper.SignDelivery, ConfigHelper.DefaultNamespaceV3, ConfigHelper.SigningCertificateSubjectName, requestId);
                //var sealedDeliveryV3 = sealedDeliveryHandler.GetSealedDeliveryV3(signedDeliveryV3, ConfigHelper.SignDelivery, ConfigHelper.DefaultNamespaceV3, mailItem.CertificationBySubjectName, requestId);


                //Call Recipients Mailbox operator and deliver message.
                var dataManager = new DataManager();
                //result = dataManager.SendPackageToMailboxV3(sealedDeliveryV3, box, ConfigHelper.SSLCertificate_FindByThumbprint, requestId);
                result = dataManager.SendPackageToMailboxV3(sealedDeliveryV3, box, mailItem.CertificationBySubjectName, requestId);
            }
            else
            {
                var failureMessage = string.Format("SE.GOV.MM.Integration.DeliveryMailbox.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
                });
            }


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