Example #1
0
        /// <summary>
        /// SendPackageRequest to PackageService for deliver to dispatcher.
        /// </summary>
        public SendPackageResult SendPackage(Mail mailItem, MailBox mailBox)
        {
            LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.MessageService: incoming SendPackage");

            var request = new SendPackageRequest()
            {
                Mail = mailItem, MailBox = mailBox
            };
            var result = new SendPackageResult()
            {
                MessageSent = true, Recipient = mailItem.Recipient.To
            };

            ServiceClient <IPackage> client = null;

            try
            {
                client = new ServiceClient <IPackage>("WSHttpBinding_IPackage");
                //client = new ServiceClient<IPackage>("BasicHttpBinding_IPackage");

                var response = client.Proxy.SendPackage(request);

                result.DeliveryStatus = response.DeliveryStatus;
                result.RequestId      = response.RequestId;
                result.DistributionId = response.DistributionId;
            }
            catch (CommunicationException ce)
            {
                client.Abort();
                result.MessageSent = false;
                LogManager.Log(new Log.Log()
                {
                    Exception = ce, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: CommunicationException error sending package to PackageService.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error
                });
            }
            catch (Exception ex)
            {
                client.Abort();
                result.MessageSent = false;
                LogManager.Log(new Log.Log()
                {
                    Exception = ex, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: Exception error sending package to PackageService.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error
                });
            }
            finally
            {
                if (client.State == CommunicationState.Faulted)
                {
                    client.Abort();
                }
                client = null;
            }

            LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.PackageService: leaving SendPackage");
            return(result);
        }
Example #2
0
        /// <summary>
        /// Sends mail to Mina meddeladen
        /// </summary>
        /// <param name="Cancel"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public SendPackageResult SendMailToPackage(Mail mail)
        {
            SendPackageResult sentMessageResult = new SendPackageResult();

            //Check if reachable
            var result = IsReachable(mail.Recipient.To);

            if (result != null)
            {
                //Send mail to Mina meddelanden
                sentMessageResult = sendMailToMinaMeddelanden(mail, result);
            }

            return(sentMessageResult);
        }
Example #3
0
        /// <summary>
        /// Sends mail to Mina meddelanden, uses a configuration property in ConfigurationService if mail should go through a dispatcher or directly to the mailbox.
        /// </summary>
        /// <param name="mailHelper"></param>
        /// <param name="isReachableResult"></param>
        /// <returns></returns>
        private SendPackageResult sendMessage(Mail mailItem, IsReachableResult isReachableResult)
        {
            var mailHelper     = new MailHelper();
            var mailBox        = mailHelper.GetMailBoxFromIsReachableResult(isReachableResult);
            var messageService = new PackageService();

            SendPackageResult result = null;

            if (ConfigHelper.ConfigurationEntity.UseExternalDispatcher)
            {
                result = messageService.SendPackage(mailItem, mailBox);
            }
            else
            {
                result = messageService.SendPackageToMailBox(mailItem, mailBox);
            }
            return(result);
        }
Example #4
0
        /// <summary>
        /// Sends mail to Mina meddeladen
        /// </summary>
        /// <param name="Cancel"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public SendPackageResult SendMailToPackage(Mail mail)
        {
            SendPackageResult sentMessageResult = new SendPackageResult();

            //Check if reachable
            var result = IsReachable(mail.Recipient.To, mail.SenderOrgNumber);

            if (result != null && result.IsReachable != false)
            {
                // Send mail to Mina meddelanden
                sentMessageResult = sendMailToMinaMeddelanden(mail, result);
            }
            else
            {
                sentMessageResult.DeliveryStatus = "Not Deliverd";
                sentMessageResult.Recipient      = mail.Recipient.ToString();
            }

            return(sentMessageResult);
        }