/// <summary> /// Формирует InviteEmailModel из <paramref name="invite"/> /// </summary> /// <param name="invite"></param> public static InviteEmailModel GetInviteEmailModel(InviteCode invite) { InviteEmailModel toReturn = new InviteEmailModel(); toReturn.MailTo.Add(invite.User.UserName); toReturn.Caption = "Invite"; toReturn.Link = invite.Code; return(toReturn); }
public void Invite(string email) { var mcUser = _context.GetUsers(email).SingleOrDefault(); if (mcUser == null) { throw new McUserNotFoundException(); } var inviteEmailModel = new InviteEmailModel(mcUser); _inviteEmailService.Send(inviteEmailModel); if (mcUser.InviteDateUtc == null) { mcUser.InviteDateUtc = _clock.UtcNow; _context.Save(); } }
public void Constructor_Test() { var user = new User() { Email = "actual email address", FirstName = "FirstName there are spaces at the end " }; var personalisation = new Dictionary <string, dynamic>() { { "first_name", user.FirstName.Trim() } }; var model = new InviteEmailModel(user); Assert.AreEqual(user.Email, model.EmailAddress); CollectionAssert.AreEqual(personalisation, model.Personalisation); }
public void Send() { var user = new User() { Email = "actual email address", FirstName = "FirstName there are spaces at the end " }; var personalisation = new Dictionary <string, dynamic>() { { "first_name", user.FirstName.Trim() } }; var model = new InviteEmailModel(user); _service.Send(model); _mockNotificationClientWrapper.Verify(x => x.SendEmail(user.Email, _templateId, personalisation, null, null), Times.Once); }
private async Task SendInviteEmail(InviteEmailModel email, string body) { var messageTemplate = $@"{StandartGreeting()} {body} Вы можете управлять приглашениями на странице Вашей заявки {{0}} {email.Initiator.GetDisplayName()} "; var sendTasks = email.Recipients.Select(emailRecipient => MessageService.SendEmail($"{email.ProjectName}: приглашения к проживанию", new MarkdownString(String.Format(messageTemplate, email.GetClaimByPerson(emailRecipient) == null ? "" : _uriService.Get(email.GetClaimByPerson(emailRecipient)))), email.Initiator.ToRecepientData(), emailRecipient.ToRecepientData())) .ToList(); await Task.WhenAll(sendTasks).ConfigureAwait(false); }
/// <summary> /// Посылает приглашение на регистрацию указанному пользователю /// </summary> /// <param name="model"></param> /// <returns></returns> public ServiceResponce SendInvite(SendInviteModel model) { if (UserRep.CountByCredentails(model.Email, null) != 0) { return(ServiceResponce .FromFailed() .Add("error", "User with Email " + model.Email + " already exist in system")); } InviteCode Invite = SendInviteModelHelper.CreateInviteCode(model); if (InviteRep.Add(Invite)) { // Создаем задачу отправки сообщения в фоне и запускаем ее new Thread(send => { InviteEmailModel InviteEmailModel = InviteEmailModelHelper.GetInviteEmailModel(Invite); string inviteText = TemplateServ .Run("Emails/Invite", typeof(InviteEmailModel), InviteEmailModel); if (!EmailService.SendMail(InviteEmailModel, inviteText)) { StatusService.ChangeStatus(Invite.User, UserStatusType.Invite, null, "Invite Email was not delivered"); } else { StatusService.ChangeStatus(Invite.User, UserStatusType.Invite, null, "Invite Email was delivered"); } InviteRep.Update(Invite); }).Start(); return(ServiceResponce .FromSuccess() .Result("invite for user sended")); } else { return(ServiceResponce .FromFailed() .Add("error", "error saving invited user in DB")); } }