public virtual void SendEmailEditGroup(GroupSubmission group, string toEmail) { var messageSubject = $"Edit group {group.Name}"; _logger.LogInformation("Sending edit group email"); var emailBody = new GroupEdit { Name = group.Name, Categories = group.CategoriesList, Description = group.Description, Email = group.Email, Location = group.Address, Facebook = group.Facebook, Phone = group.PhoneNumber, Twitter = group.Twitter, Website = group.Website, AgeRanges = group.AgeRanges.Where(o => o.IsSelected).Select(o => o.Name).ToList(), Suitabilities = group.Suitabilities.Where(o => o.IsSelected).Select(o => o.Name).ToList(), Volunteering = group.Volunteering ? "Yes" : "No", VolunteeringText = group.Volunteering ? group.VolunteeringText : "N/A", AdditionalInformation = group.AdditionalInformation }; var message = new EmailMessage(messageSubject, _emailClient.GenerateEmailBodyFromHtml(emailBody), _fromEmail, toEmail + "," + _configuration.GetGroupArchiveEmail(_businessId.ToString()), new List <IFormFile>()); _emailClient.SendEmailToService(message); }
public async void ItShouldLogThatAnEmailWasSent() { var groupSubmission = new GroupSubmission { Email = "*****@*****.**" }; await _groupEmailBuilder.SendEmailAddNew(groupSubmission); LogTesting.Assert(_logger, LogLevel.Information, "Sending group submission form email"); }
public async Task ItShouldNotSendAnEmailForAnInvalidFormSumbission() { var groupSubmission = new GroupSubmission(); _groupController.ModelState.AddModelError("Name", "an invalid name was provided"); var actionResponse = await _groupController.AddAGroup(groupSubmission); actionResponse.Should().BeOfType <ViewResult>(); _groupEmailBuilder.Verify(o => o.SendEmailAddNew(groupSubmission), Times.Never); }
public async Task ItShouldReturnBackToTheViewForAnInvalidEmailSubmission() { var groupSubmission = new GroupSubmission(); _groupEmailBuilder.Setup(o => o.SendEmailAddNew(It.IsAny <GroupSubmission>())).ReturnsAsync(HttpStatusCode.BadRequest); var actionResponse = await _groupController.AddAGroup(groupSubmission); actionResponse.Should().BeOfType <ViewResult>(); _groupEmailBuilder.Verify(o => o.SendEmailAddNew(groupSubmission), Times.Once); }
public async void ItShouldSendAnEmailAndReturnAStatusCodeOf200() { _emailClient.Setup(e => e.SendEmailToService(It.Is <EmailMessage>(message => message.ToEmail == AppSetting.GetAppSetting("GroupSubmissionEmail").ToString()))).ReturnsAsync(HttpStatusCode.OK); var groupSubmission = new GroupSubmission() { Address = "Address", Categories = new List <string>(), Name = "Group", Email = "email", PhoneNumber = "phone", Website = "http://www.group.org", Description = "Description", CategoriesList = "Category" }; var response = await _groupEmailBuilder.SendEmailAddNew(groupSubmission); response.Should().Be(HttpStatusCode.OK); }
public async Task ItShouldGetARedirectResultForAValidGroupSubmission() { var groupSubmission = new GroupSubmission() { Name = "Group", Description = "Description", Website = "http://www.group.com", Email = "*****@*****.**", Address = "Address", PhoneNumber = "phone", CategoriesList = "Category", Image = null }; _groupEmailBuilder.Setup(o => o.SendEmailAddNew(It.IsAny <GroupSubmission>())).ReturnsAsync(HttpStatusCode.OK); var actionResponse = await _groupController.AddAGroup(groupSubmission) as RedirectToActionResult; actionResponse.ActionName.Should().Be("ThankYouMessage"); }
public virtual Task <HttpStatusCode> SendEmailAddNew(GroupSubmission groupSubmission) { var messageSubject = $"[Group] - {groupSubmission.Name}"; _logger.LogInformation("Sending group submission form email"); var attachments = new List <IFormFile>(); if (groupSubmission.Image != null) { attachments.Add(groupSubmission.Image); } var emailBody = new GroupAdd { Name = groupSubmission.Name, Location = groupSubmission.Address, Image = groupSubmission.Image != null?FileHelper.GetFileNameFromPath(groupSubmission.Image) : "-", Description = groupSubmission.Description, Email = groupSubmission.Email, Phone = groupSubmission.PhoneNumber, Website = groupSubmission.Website, DonationsNeeded = groupSubmission.Donations, Categories = groupSubmission.CategoriesList, VolunteeringText = groupSubmission.Volunteering ? groupSubmission.VolunteeringText : "-", VolunteeringNeeded = groupSubmission.Volunteering, DonationsText = groupSubmission.Donations ? groupSubmission.DonationsText : "-", DonationUrl = groupSubmission.DonationsUrl, Facebook = groupSubmission.Facebook, Twitter = groupSubmission.Twitter, AgeRanges = groupSubmission.AgeRanges.Where(o => o.IsSelected).Select(o => o.Name).ToList(), Suitabilities = groupSubmission.Suitabilities.Where(o => o.IsSelected).Select(o => o.Name).ToList() }; return(_emailClient.SendEmailToService(new EmailMessage(messageSubject, _emailClient.GenerateEmailBodyFromHtml(emailBody), _fromEmail, _configuration.GetGroupSubmissionEmail(_businessId.ToString()).ToString(), groupSubmission.Email, attachments))); }