/// <inheritdoc cref="IEmailHashComposer.GetDefaultHash(UserConnection, EmailHashDTO)"/> public virtual string GetDefaultHash(UserConnection userConnection, EmailHashDTO email) { var dateTimeFormat = GetDateTimeFormat(userConnection); var subject = userConnection.GetIsFeatureEnabled("UseSubjectStartForEmailHash") ? TrimSubject(email.Subject) : email.Subject; return(GetEmailHash(email.SendDate, subject, email.Body, email.TimeZone, true, dateTimeFormat)); }
/// <summary> /// Returns hashes collection for <paramref name="emailData"/>. /// </summary> /// <param name="userConnection"><see cref="UserConnection"/> instance.</param> /// <param name="emailData">Email Message info.</param> /// <returns>Email hashes collection.</returns> private static List <string> GetEmailHashes(UserConnection userConnection, EmailHashDTO emailData) { List <string> hashes = new List <string>(); var hashComposers = ClassFactory.GetAll <IEmailHashComposer>(); foreach (var hashComposer in hashComposers) { hashes.AddRangeIfNotExists(hashComposer.GetHashes(userConnection, emailData)); } return(hashes); }
public override IEnumerable <string> GetHashes(UserConnection userConnection, EmailHashDTO email) { List <string> hashes = new List <string>(); var subject = ActivityUtils.FixWhitespaces(email.Subject); hashes.AddRange(GetHashesInternal(userConnection, new EmailHashDTO { Subject = subject, SendDate = email.SendDate, Body = email.Body, TimeZone = email.TimeZone })); return(hashes); }
/// <inheritdoc cref="IEmailHashComposer.GetHashes(UserConnection, EmailHashDTO)"/> public virtual IEnumerable <string> GetHashes(UserConnection userConnection, EmailHashDTO email) { return(GetHashesInternal(userConnection, email)); }
/// <summary> /// Returns hashes collection calculated by email parameters. /// </summary> /// <param name="userConnection"><see cref="UserConnection"/> instance.</param> /// <param name="email">Email parameters.</param> /// <returns>Email hashes collection.</returns> protected IEnumerable <string> GetHashesInternal(UserConnection userConnection, EmailHashDTO email) { var dateTimeFormat = GetDateTimeFormat(userConnection); List <string> hashes = new List <string> { GetEmailHash(email.SendDate, email.Subject, email.Body, email.TimeZone, true, dateTimeFormat), GetEmailHash(email.SendDate, email.Subject, email.Body, email.TimeZone, false, dateTimeFormat), GetEmailHash(email.SendDate, email.Subject, email.Body, email.TimeZone, true, dateTimeFormat, false), GetEmailHash(email.SendDate, email.Subject, email.Body, email.TimeZone, false, dateTimeFormat, false) }; if (userConnection.GetIsFeatureEnabled("UseSubjectStartForEmailHash")) { var subject = TrimSubject(email.Subject); hashes.AddRange(new List <string> { GetEmailHash(email.SendDate, subject, email.Body, email.TimeZone, true, dateTimeFormat), GetEmailHash(email.SendDate, subject, email.Body, email.TimeZone, false, dateTimeFormat), GetEmailHash(email.SendDate, subject, email.Body, email.TimeZone, true, dateTimeFormat, false), GetEmailHash(email.SendDate, subject, email.Body, email.TimeZone, false, dateTimeFormat, false) }); } return(hashes); }
/// <summary> /// <seealso cref="IEmailHashComposer.GetHashes(UserConnection, EmailHashDTO)"/> implementation. /// </summary> public override IEnumerable <string> GetHashes(UserConnection userConnection, EmailHashDTO email) { List <string> hashes = new List <string>(); if (userConnection.GetIsFeatureEnabled("UseNotStrictSendDates")) { var minuteBefore = email.SendDate.AddMinutes(-1); var minuteAfter = email.SendDate.AddMinutes(1); hashes.AddRange(GetHashesInternal(userConnection, new EmailHashDTO { Subject = email.Subject, SendDate = minuteBefore, Body = email.Body, TimeZone = email.TimeZone })); hashes.AddRange(GetHashesInternal(userConnection, new EmailHashDTO { Subject = email.Subject, SendDate = minuteAfter, Body = email.Body, TimeZone = email.TimeZone })); } return(hashes); }