private void SetInvalidBulkEmailCounters(Guid bulkEmailId, int invalidAddresseeCount) { var actualInvalidAdresseeExpression = MailingDbUtilities.GetAddCountColumnExpression("InvalidAddresseeCount", invalidAddresseeCount); BulkEmailQueryHelper.UpdateBulkEmail(bulkEmailId, UserConnection, new KeyValuePair <string, object>("SendDueDate", Column.Const(null)), new KeyValuePair <string, object>("InvalidAddresseeCount", actualInvalidAdresseeExpression)); }
protected void ExecuteSendMessagePostProcessing(SendMessageData sendMessageData, List <TypedCounter <MailingResponseCode> > sendResults, SendMessageTaskData sendMessageTaskData) { var bulkEmail = sendMessageData.BulkEmail; var sessionId = sendMessageData.SessionId; var blankEmailCount = sendResults.Sum("BlankEmail"); var doNotUseEmailCount = sendResults.Sum("DoNotUseEmail"); var incorrectEmailCount = sendResults.Sum("IncorrectEmail"); var unreachableEmailCount = sendResults.Sum("UnreachableEmail"); var communicationLimitCount = sendResults.Sum("CommunicationLimit"); var duplicateEmailCount = sendResults.Sum("DuplicateEmail"); var templateNotFoundCount = sendResults.Sum("TemplateNotFound"); var sendersDomainNotVerifiedCount = sendResults.Sum("SendersDomainNotVerified"); var sendersNameNotValidCount = sendResults.Sum("SendersNameNotValid"); var invalidAddresseeCount = sendResults.Sum("InvalidAddressee"); if (sendMessageTaskData.IsBreaking) { SetBulkEmailStatus(bulkEmail.Id, MailingConsts.BulkEmailStatusStoppedId); BulkEmailEventLogger.LogInfo(bulkEmail.Id, DateTime.UtcNow, GetLczStringValue("MailingStoppedManually"), GetLczStringValue("MailingStoppedManuallyDescription"), UserConnection.CurrentUser.ContactId); SetInvalidBulkEmailCounters(bulkEmail.Id, invalidAddresseeCount); CreateReminding(bulkEmail, "CESStoppedMailingMsg"); MailingUtilities.Log.InfoFormat("BulkEmail with Id: {0} Was stopped manually.", bulkEmail.Id); return; } BulkEmailQueryHelper.UpdateBulkEmail(bulkEmail.Id, UserConnection, new KeyValuePair <string, object>("SendDueDate", DateTime.UtcNow), new KeyValuePair <string, object>("BlankEmailCount", blankEmailCount), new KeyValuePair <string, object>("DoNotUseEmailCount", doNotUseEmailCount), new KeyValuePair <string, object>("IncorrectEmailCount", incorrectEmailCount), new KeyValuePair <string, object>("UnreachableEmailCount", unreachableEmailCount), new KeyValuePair <string, object>("CommunicationLimitCount", communicationLimitCount), new KeyValuePair <string, object>("DuplicateEmailCount", duplicateEmailCount), new KeyValuePair <string, object>("TemplateNotFoundCount", templateNotFoundCount), new KeyValuePair <string, object>("SendersDomainNotVerifiedCount", sendersDomainNotVerifiedCount), new KeyValuePair <string, object>("SendersNameNotValidCount", sendersNameNotValidCount), new KeyValuePair <string, object>("InvalidAddresseeCount", invalidAddresseeCount)); MailingUtilities.Log.InfoFormat( "[CESMaillingProvider.ExecuteSendMessage]: Finished: BulkEmail.Id: {0}, SessionId: {1}", bulkEmail.Id, sessionId); if (sendMessageTaskData.ProcessedGroupsCounter == 0) { SetBulkEmailStatus(bulkEmail.Id, MailingConsts.BulkEmailStatusErrorId); CreateReminding(bulkEmail, "CESNoRecipientsMsg"); MailingUtilities.Log.InfoFormat("BulkEmail with Id: {0} Has no recipients.", bulkEmail.Id); } }
private void InitBulkEmailCounters(Guid bulkEmailId, bool isResend) { var recipientCount = 0; try { recipientCount = BulkEmailQueryHelper.GetRecipientsInQueueCount(bulkEmailId, UserConnection); BulkEmailQueryHelper.UpdateBulkEmail(bulkEmailId, UserConnection, new KeyValuePair <string, object>("InQueueCount", recipientCount), new KeyValuePair <string, object>("RecipientCount", recipientCount), new KeyValuePair <string, object>("NotDeliveredCount", 0), new KeyValuePair <string, object>("TemplateNotFoundCount", 0), new KeyValuePair <string, object>("CanceledCount", 0)); } catch (Exception e) { MailingUtilities.Log.ErrorFormat( "[CESMaillingProvider.InitBulkEmailCounters]: Error while init BulkEmail counters with Id: {0}," + " isResent={1}, recipientsCount={2}", e, bulkEmailId, isResend, recipientCount); throw; } }