/// <summary> /// Initializes a new instance of the <see cref="EmailWithMacrosManager"/> class. /// </summary> /// <param name="userConnection">The user connection.</param> public EmailWithMacrosManager(UserConnection userConnection) : base(userConnection) { InitializeReplacementMap(); IncindentRegistrationMailboxFilter = new IncindentRegistrationMailboxFilter(userConnection); EmailSenderObtainerWrapper = new EmailSenderObtainerWrapper(userConnection); AsyncEmailSender = new AsyncEmailSender(userConnection); }
public SupportEmailsFilterServiceResponse GetEmailsWithoutSupport(string emails) { var response = new SupportEmailsFilterServiceResponse(); var incindentRegistrationMailboxFilter = new IncindentRegistrationMailboxFilter(UserConnection); try { response.resultEmails = incindentRegistrationMailboxFilter.GetRecipientWithoutIncindent(emails); response.Success = true; } catch (Exception e) { response.Exception = e; response.Success = false; } return(response); }
/// <summary> /// Gets case data by given case record identifier. /// </summary> /// <param name="caseId">Case record identifier.</param> /// <returns>Case data.</returns> protected virtual CaseData GetCaseData(Guid caseId) { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, SchemaName); string contactIdColumnName = esq.AddColumn("Contact.Id").Name; string categoryIdColumnName = esq.AddColumn("Category.Id").Name; string contactEmailColumnName = esq.AddColumn("Contact.Email").Name; string titleColumnName = esq.AddColumn("ParentActivity.Title").Name; string parentActivityIdColumnName = esq.AddColumn("ParentActivity.Id").Name; string parentActivitySenderColumnName = esq.AddColumn("ParentActivity.Sender").Name; string recipientColumnName = esq.AddColumn("ParentActivity.Recepient").Name; string ccColumnName = esq.AddColumn("ParentActivity.CopyRecepient").Name; string bccColumnName = esq.AddColumn("ParentActivity.BlindCopyRecepient").Name; var @case = esq.GetEntity(UserConnection, caseId); var data = new CaseData(); if (@case == null) { return(data); } data.ContactId = @case.GetTypedColumnValue <Guid>(contactIdColumnName); data.CategoryId = @case.GetTypedColumnValue <Guid>(categoryIdColumnName); data.Title = @case.GetTypedColumnValue <string>(titleColumnName); data.ParentActivitySender = @case .GetTypedColumnValue <string>(parentActivitySenderColumnName) .ExtractEmailAddressIf(); data.PickUpContactEmail(@case.GetTypedColumnValue <string>(contactEmailColumnName), UserConnection); data.PickUpRecipient(IncindentRegistrationMailboxFilter .GetRecipientWithoutIncindent(@case.GetTypedColumnValue <string>(recipientColumnName)), UserConnection); if (!UserConnection.GetIsFeatureEnabled("CasesOnlyRespondToSender")) { data.CC = @case.GetTypedColumnValue <string>(ccColumnName); data.BCC = @case.GetTypedColumnValue <string>(bccColumnName); } if (SystemSettings.GetValue(UserConnection, "AutoNotifyOnlyContact", false)) { data.Recipient = data.ContactEmail; data.CC = data.BCC = default(string); } data.ParentActivityId = @case.GetTypedColumnValue <Guid>(parentActivityIdColumnName); data.ParentActivityRecipient = @case.GetTypedColumnValue <string>(recipientColumnName); data.ParentActivityInReplyTo = data.ParentActivityId.IsNotEmpty() ? GetInReplyToProperty(data.ParentActivityId) : string.Empty; return(data); }