private async Task SendClaimEmail([NotNull] ClaimEmailModel model, [NotNull] string actionName, string text = "") { var projectEmailEnabled = model.GetEmailEnabled(); if (!projectEmailEnabled) { return; } IList <MailRecipient> recipients = model .GetRecipients() .Select(r => new MailRecipient( r, new Dictionary <string, string> { { changedFieldsKey, GetChangedFieldsInfoForUser(model, r) } })) .ToList(); await SendEmail(recipients, $"{model.ProjectName}: {model.Claim.Name}, игрок {model.GetPlayerName()}", $@"Добрый день, {MailGunExts.MailGunRecipientName}, Заявка {model.Claim.Name} игрока {model.Claim.Player.DisplayName} {actionName} {model.GetInitiatorString()} {text} {MailGunExts.GetUserDependentValue(changedFieldsKey)} {model.Text.Contents} {model.Initiator.DisplayName} Чтобы ответить на комментарий, перейдите на страницу заявки: {_uriService.Get(model.Claim.CommentDiscussion)} ", model.Initiator.ToRecipient()); }
public async Task Email(FieldsChangedEmail model) { var projectEmailEnabled = model.GetEmailEnabled(); if (!projectEmailEnabled) { return; } IList <MailRecipient> recipients = model .GetRecipients() .Select(r => new MailRecipient( r, new Dictionary <string, string> { { changedFieldsKey, GetChangedFieldsInfoForUser(model, r) } })) .Where(r => !string.IsNullOrEmpty(r.RecipientSpecificValues[changedFieldsKey])) //don't email if no changes are visible to user rights .ToList(); Func <bool, string> target = (forMessageBody) => model.IsCharacterMail ? $@"персонаж{(forMessageBody ? "a" : "")} {model.Character.CharacterName}" : $"заявк{(forMessageBody ? "и" : "a")} {model.Claim.Name} {(forMessageBody ? $", игрок {model.Claim.Player.DisplayName}" : "")}"; string linkString = model.IsCharacterMail ? _uriService.Get(model.Character) : _uriService.Get(model.Claim); if (recipients.Any()) { await SendEmail(recipients, $"{model.ProjectName}: {target(false)}", $@"Добрый день, {MailGunExts.MailGunRecipientName}, Данные {target(true)} были изменены. Новые значения: {MailGunExts.GetUserDependentValue(changedFieldsKey)} Для просмотра всех данных перейдите на страницу {(model.IsCharacterMail ? "персонажа" : "заявки")}: {linkString} {model.Initiator.DisplayName} ", model.Initiator.ToRecipient()); } }