private static Sql.Conversation GetConversationByID(ConversationId id) { using (var ctx = new EmailMonitorContext()) { Sql.Conversation conversation = ctx.Conversation.Find(id.ToString()); return(conversation); } }
private void PostEmailReply(EmailMessage email, Sql.Conversation conv) { Logger.Debug("Post email reply: \r\n" + GetEmailThumbnail(email)); string htmlBody = GetReplyMailBodyHtml(email); htmlBody = CreateMailRichMessage(htmlBody, email); _client.PostReply(null, "", conv.MessageID, htmlBody, null); }
private static void SaveConversation(Sql.Conversation conv) { if (conv == null) { return; } Logger.Debug("Save Conversation: " + JsonConvert.SerializeObject(conv)); using (var ctx = new EmailMonitorContext()) { ctx.Conversation.Add(conv); ctx.SaveChanges(); } }
private void PostEmailMessage(EmailMessage email) { Logger.Debug("Post email message: \r\n" + GetEmailThumbnail(email)); string htmlBody = GetCompleteMailBodyHtml(email); htmlBody = CreateMailRichMessage(htmlBody, email); string result = _client.PostMessage("none", null, "none", email.ConversationId, null, null, null, htmlBody, null); MSGorilla.WebAPI.Models.ViewModels.DisplayMessage displayMessage = JsonConvert.DeserializeObject <MSGorilla.WebAPI.Models.ViewModels.DisplayMessage>(result); Sql.Conversation conv = new Sql.Conversation(); conv.ConversationID = email.ConversationId; conv.MessageID = displayMessage.ID; conv.MessageUser = displayMessage.User.Userid; SaveConversation(conv); }
public void Report(EmailMessage email) { try { Sql.Conversation conversation = GetConversationByID(email.ConversationId); if (conversation == null) { //new conversation, post message PostEmailMessage(email); } else { //old conversation, post reply PostEmailReply(email, conversation); } } catch (Exception e) { Logger.Error("Fail to process email : \r\n" + GetEmailThumbnail(email)); throw e; } }