private void OnMessageArrived(object sender, IdleEventArgs args) { foreach (var message in args.Messages) { message.Seen = true; OutageMailMessage outageMessage = mapper.MapMail(message); Console.WriteLine(outageMessage); OutageTracingModel tracingModel = parser.Parse(outageMessage); if (tracingModel.IsValidReport) { dispatcher.Dispatch(tracingModel.Gid); } try { publisher.Publish(new OutageEmailPublication(Topic.OUTAGE_EMAIL, new EmailToOutageMessage(tracingModel.Gid)), MicroserviceNames.OmsEmailService).Wait(); } catch (Exception e) { Console.WriteLine($"[ImapIdleEmailClient::OnMessageArrived] Sending to PubSub Engine failed. Exception message: {e.Message}"); } } ReregisterIdleHandler(); }
private void OnMessageArrived(object sender, IdleEventArgs args) { foreach (var message in args.Messages) { message.Seen = true; OutageMailMessage outageMessage = _mapper.MapMail(message); Console.WriteLine(outageMessage); OutageTracingModel tracingModel = _parser.Parse(outageMessage); if (tracingModel.IsValidReport) { _dispatcher.Dispatch(tracingModel.Gid); } try { _publisher.Publish( publication: new OutageEmailPublication(Topic.OUTAGE_EMAIL, new EmailToOutageMessage(tracingModel.Gid)), publisherName: "ImapIdleEmailClient" ); } catch (Exception) { Console.WriteLine("[ImapIdleEmailClient::OnMessageArrived] Sending to PubSub Engine failed."); } } ReregisterIdleHandler(); }
public IEnumerable <OutageMailMessage> GetUnreadMessages() { if (!_client.IsConnected) { throw new NullReferenceException("ImapClient is a null value (not connected)."); } Message[] messages = _client.Folders["INBOX"].Search("UNSEEN", MessageFetchMode.Full); List <OutageMailMessage> outageMailMessages = new List <OutageMailMessage>(); foreach (Message message in messages) { OutageMailMessage outageMessage = _mapper.MapMail(message); outageMailMessages.Add(outageMessage); message.Seen = true; OutageTracingModel tracingModel = _parser.Parse(outageMessage); if (tracingModel.IsValidReport) { _dispatcher.Dispatch(tracingModel.Gid); } try { _publisher.Publish( publication: new OutageEmailPublication(Topic.OUTAGE_EMAIL, new EmailToOutageMessage(tracingModel.Gid)), publisherName: "Email Service" ); } catch (Exception) { Console.WriteLine("[ImapEmailClient::GetUnreadMessages] Sending to PubSub Engine failed."); } } return(outageMailMessages); }
private void OnMessageArrived(object sender, IdleEventArgs args) { try { foreach (var message in args.Messages) { message.Seen = true; OutageMailMessage outageMessage = mapper.MapMail(message); Logger.LogInformation($"{baseLogString} OnMessageArrived => Message: {outageMessage}"); OutageTracingModel tracingModel = parser.Parse(outageMessage); publisher.Publish(new OutageEmailPublication(Topic.OUTAGE_EMAIL, new EmailToOutageMessage(tracingModel.Gid)), MicroserviceNames.OmsEmailService).Wait(); } ReregisterIdleHandler(); } catch (Exception e) { Logger.LogError($"{baseLogString} OnMessageArrived => Exception: {e.Message}", e); } }
public IEnumerable <OutageMailMessage> GetUnreadMessages() { var outageMailMessages = new List <OutageMailMessage>(); try { if (!client.IsConnected) { if (!client.Connect()) { Logger.LogError($"{baseLogString} GetUnreadMessages => client could not connect to the email server."); return(outageMailMessages); } } Message[] messages = client.Folders["INBOX"].Search("UNSEEN", MessageFetchMode.Full); foreach (Message message in messages) { OutageMailMessage outageMessage = mapper.MapMail(message); outageMailMessages.Add(outageMessage); message.Seen = true; OutageTracingModel tracingModel = parser.Parse(outageMessage); publisher.Publish(new OutageEmailPublication(Topic.OUTAGE_EMAIL, new EmailToOutageMessage(tracingModel.Gid)), MicroserviceNames.OmsEmailService).Wait(); } } catch (Exception e) { Logger.LogError($"{baseLogString} GetUnreadMessages => Message: {e.Message}", e); } return(outageMailMessages); }