public void Update(EmailCampaignViewModel item) { try { EmailCampaign emailCampaign = mapper.Map <EmailCampaign>(item); Email email = unitOfWork.Emails.Get(filter: e => e.EmailAddress == item.EmailAddress).FirstOrDefault(); if (email == null) { email = new Email(); email.EmailAddress = item.EmailAddress; unitOfWork.Emails.Insert(email); emailCampaign.Email = email; } else { emailCampaign.EmailId = email.Id; } unitOfWork.EmailCampaigns.Update(emailCampaign); unitOfWork.Save(); } catch (Exception e) { throw e; } }
public IActionResult Edit(EmailCampaignViewModel campaign) { if (ModelState.IsValid) { string userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; campaign.UserId = userId; emailCampaignManager.Update(campaign); return(RedirectToAction("Index")); } return(View(campaign)); }
public IActionResult CreateCampaign(EmailCampaignViewModel campaign, List <EmailRecipientViewModel> recepients) { if (campaign.SendingTime < DateTime.Now) { campaign.SendingTime = DateTime.Now; } string userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; campaign.UserId = userId; emailCampaignManager.IncertWithRecepients(campaign, recepients); return(Json(new { newUrl = Url.Action("Index", "EmailCampaign") })); }
public void IncertWithRecepients(EmailCampaignViewModel campaign, List <EmailRecipientViewModel> emailRecipients) { try { EmailCampaign emailCampaign = mapper.Map <EmailCampaign>(campaign); Email email = unitOfWork.Emails.Get(filter: e => e.EmailAddress == campaign.EmailAddress).FirstOrDefault(); if (email == null) { email = new Email(); email.EmailAddress = campaign.EmailAddress; unitOfWork.Emails.Insert(email); emailCampaign.Email = email; } else { emailCampaign.EmailId = email.Id; } notificationsGenerator.SupplyWithCampaignNotifications(emailCampaign); unitOfWork.EmailCampaigns.Insert(emailCampaign); unitOfWork.Save(); foreach (var recipient in emailRecipients) { EmailRecipient newRecepient = mapper.Map <EmailRecipientViewModel, EmailRecipient>(recipient); newRecepient.CompanyId = emailCampaign.Id; email = unitOfWork.Emails.Get(filter: e => e.EmailAddress == recipient.EmailAddress).FirstOrDefault(); if (email == null) { email = new Email(); email.EmailAddress = recipient.EmailAddress; unitOfWork.Emails.Insert(email); newRecepient.Email = email; } else { newRecepient.EmailId = email.Id; } unitOfWork.EmailRecipients.Insert(newRecepient); unitOfWork.Save(); } } catch (Exception e) { throw e; } }
public void InsertWithRecepients_EmptyCampaign_ThrowNullReferenceException() { mockMapper.Setup(m => m.Map <EmailCampaign>(It.IsNotNull <EmailCampaignViewModel>())) .Returns(value: null); mockUnitOfWork.Setup(u => u.Emails.Get(It.IsAny <Expression <Func <Email, bool> > >(), It.IsAny <Func <IQueryable <Email>, IOrderedQueryable <Email> > >(), It.IsAny <string>())).Returns(Emails); mockUnitOfWork.Setup(u => u.Emails.Insert(It.IsNotNull <Email>())); mockNotification.Setup(n => n.SupplyWithCampaignNotifications(It.IsAny <EmailCampaign>())); mockUnitOfWork.Setup(u => u.EmailCampaigns.Insert(It.IsNotNull <EmailCampaign>())); mockUnitOfWork.Setup(u => u.Save()); mockMapper.Setup(m => m.Map <EmailRecipientViewModel, EmailRecipient>(recipientViewModels[0])) .Returns(emailRecipient); mockUnitOfWork.Setup(u => u.EmailRecipients.Insert(It.IsNotNull <EmailRecipient>())); EmailCampaignViewModel emptyCampaign = new EmailCampaignViewModel(); List <EmailRecipientViewModel> recepientsList = new List <EmailRecipientViewModel>(); Assert.Throws <NullReferenceException>(() => manager.IncertWithRecepients(emptyCampaign, recipientViewModels)); }
public IActionResult Edit(int campaignId) { EmailCampaignViewModel company = emailCampaignManager.GetById(campaignId); return(View(company)); }
protected override void Initialize() { base.Initialize(); manager = new EmailCampaignManager(mockUnitOfWork.Object, mockMapper.Object, mockNotification.Object); Emails = new List <Email>(); Emails.Add( new Email() { Id = 10, EmailAddress = "*****@*****.**" }); Emails.Add( new Email() { Id = 11, EmailAddress = "*****@*****.**" }); recipientViewModels = new List <EmailRecipientViewModel>(); recipientViewModels.Add(new EmailRecipientViewModel() { EmailAddress = "*****@*****.**", BirthDate = DateTime.Now, Gender = "Male", KeyWords = "add", Name = "John", Surname = "Snow", Priority = "Low", Id = 0, CompanyId = 0 }); emailCampaignViewModel = new EmailCampaignViewModel() { Id = 0, EmailAddress = "*****@*****.**", Description = "test", Message = "test", Name = "test", SendingTime = DateTime.Now, UserId = "1cf1c047-9687-4663-be13-09e4a99f35f3", RecipientsCount = 1, EmailId = 0 }; emailRecipient = new EmailRecipient() { BirthDate = DateTime.Now, Gender = 0, IsSend = 0, KeyWords = "test", Name = "test", Priority = "Low", Surname = "test" }; emailCampaign = new EmailCampaign() { Name = "test", Description = "test", Message = "test", SendingTime = DateTime.Now }; TestContext.WriteLine("Overrided"); }