/// <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); }
public MailBox GetMailBoxFromIsReachableResult(IsReachableResult isReachableResult) { return(new MailBox() { Id = isReachableResult.Id, Name = isReachableResult.Name, ServiceAdress = isReachableResult.ServiceAdress, UIAdress = isReachableResult.UIAdress }); }
/// <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); }
/// <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); }
/// <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); }