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");
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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)));
        }