Пример #1
0
        /// <summary>
        /// Send mail to mina meddelanden, through webservice.
        /// </summary>
        private SendPackageResult sendMailToMinaMeddelanden(Mail mail, IsReachableResult isReachableResult)
        {
            var recipientHelper = new RecipientHelper();

            mail.Recipient.To = recipientHelper.GetRecipientAdress(mail.Recipient.To);
            var result = sendMessage(mail, isReachableResult);

            return(result);
        }
Пример #2
0
 public MailBox GetMailBoxFromIsReachableResult(IsReachableResult isReachableResult)
 {
     return(new MailBox()
     {
         Id = isReachableResult.Id,
         Name = isReachableResult.Name,
         ServiceAdress = isReachableResult.ServiceAdress,
         UIAdress = isReachableResult.UIAdress
     });
 }
Пример #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);
        }
Пример #4
0
        /// <summary>
        /// returns a object containing ServiceSupplier and if the recipient isReachable.
        /// </summary>
        /// <param name="recipient"></param>
        /// <returns></returns>
        public IsReachableResult IsReachableResult(string recipient, string senderOrg)
        {
            var isReachableResult = new IsReachableResult();

            try
            {
                //Validate recipient
                var recipientHelper  = new RecipientHelper();
                var recipientService = new RecipientService();

                // recipient = recipientHelper.GetRecipientAdress(recipient); //MG Not sure if we need this

                if (recipientHelper.ValidRecipient(recipient))
                {
                    isReachableResult = recipientService.IsReachable(recipient, senderOrg);
                }
            }
            catch (System.Exception e)
            {
                // LogManager.Log(new Log.Log() { EventId = EventId.GenerelizedException, Exception = e, Level = Level.Error, Message = "Something went wrong checking recipient against FaRService." });
                return(null);
            }
            return(isReachableResult);
        }
Пример #5
0
        /// <summary>
        /// Check if a user IsReachable in FaR
        /// </summary>
        public IsReachableResult IsReachable(string recipientNumber, string senderOrg)
        {
            LogManager.LogTrace("SE.GOV.MM.Integration.mm.Service.RecipientService: incoming IsReachable");

            var request = new IsReachableRequest()
            {
                RecipientNumber = recipientNumber
            };
            var result = new IsReachableResponse();
            IsReachableResult    isReachableResult;
            ServiceClient <IFaR> client = null;



            try
            {
                client = new ServiceClient <IFaR>("WSHttpBinding_IFaR");
                // client = new ServiceClient<IFaR>("BasicHttpBinding_IFaR");


                var response = client.Proxy.IsReachable(request, senderOrg);



                result = response;

                isReachableResult = new IsReachableResult()
                {
                    IsReachable = result.IsReachable
                };

                if (result.ServiceSupplier != null)
                {
                    isReachableResult.Id            = result.ServiceSupplier.Id;
                    isReachableResult.Name          = result.ServiceSupplier.Name;
                    isReachableResult.ServiceAdress = result.ServiceSupplier.ServiceAdress;
                    isReachableResult.UIAdress      = result.ServiceSupplier.UIAdress;
                }
            }
            catch (CommunicationException ce)
            {
                LogManager.Log(new Log.Log()
                {
                    Exception = ce, Message = "SE.GOV.MM.Integration.mm.Service.RecipientService: Communication error, getting a response from FaRService.", EventId = EventId.CommunicationExceptionWithFaR, Level = Level.Error
                });
                throw ce;
            }
            catch (Exception ex)
            {
                LogManager.Log(new Log.Log()
                {
                    Exception = ex, Message = "SE.GOV.MM.Integration.mm.Service.RecipientService: Error getting a response from RecipientService.", EventId = EventId.CommunicationExceptionWithFaR, Level = Level.Error
                });
                throw ex;
            }
            finally
            {
                if (client.State != CommunicationState.Faulted)
                {
                    client.Abort();
                }
                client.Close();
                client = null;
            }

            LogManager.LogTrace("SE.GOV.MM.Integration.mm.Service.RecipientService: leaving IsReachable");
            return(isReachableResult);
        }