private bool Send(BatchTemplateMessage email) { lock (this) { var result = 0; if (CurrentTemplateSendRequest == null) { CurrentTemplateSendRequest = new BatchTemplateSendRequest(); } CurrentTemplateSendRequest.messages.Add(email); if (CurrentTemplateSendRequest.messages.Count >= EmailBufferSize) { var response = HttpClient.SendEmails(CurrentTemplateSendRequest); OnTranmission(response); result = CurrentTemplateSendRequest.messages.Count; CurrentTemplateSendRequest = new BatchTemplateSendRequest(); } Logger.info(String.Format("Send Complete: {0} messages buffered and {1} messages tranmitted.", 1, result)); return result > 0; } }
public bool Flush() { var result = 0; lock (this) { if (CurrentEmailSendRequest != null && CurrentEmailSendRequest.messages.Count > 0) { var response = HttpClient.SendEmails(CurrentEmailSendRequest); OnTranmission(response); result = CurrentEmailSendRequest.messages.Count; CurrentEmailSendRequest = new BatchEmailSendRequest(); } if (CurrentTemplateSendRequest != null && CurrentTemplateSendRequest.messages.Count > 0) { var response = HttpClient.SendEmails(CurrentTemplateSendRequest); OnTranmission(response); result = CurrentTemplateSendRequest.messages.Count; CurrentTemplateSendRequest = new BatchTemplateSendRequest(); } } Logger.info(String.Format("Flush Complete: {0} messages tranmitted.", result)); return result > 0; }