public async Task <ReportMessage> CreateMessageAsync(AbstractReport reportData) { var msg = new MailMessage { IsBodyHtml = true }; var mailAddressViewModel = new MailAddressViewModel(reportData, _logger); var recipients = mailAddressViewModel.GetRecipientAdrresses(); msg.From = mailAddressViewModel.From; msg.To.AddRange(recipients[RecipientType.TO]); msg.CC.AddRange(recipients[RecipientType.CC]); _logger.LogInformation("Sending mail for to address - " + string.Join(";", msg.To.Select(mailAddress => mailAddress.Address))); _logger.LogInformation("Sending mail for cc address - " + string.Join(";", msg.CC.Select(mailAddress => mailAddress.Address))); _logger.LogInformation("Creating view model for generating xml"); var emailReportViewModel = new EmailReportViewModel(reportData, _emailReportConfiguration); _logger.LogInformation("Generated view model"); msg.Subject = emailReportViewModel.EmailSubject; msg.Body = GenerateBodyFromViewModel(emailReportViewModel); return(await Task.FromResult(new ReportMessage() { MailMessage = msg, SmtpConfiguration = reportData.SmtpConfiguration })); }
public JsonResult GetData(PageInfo pageInfo) { IMapper Mapper = AutoMapperConfig.MapperConfiguration.CreateMapper(); MailAddressViewModel model = new MailAddressViewModel(); model.PageInfo = pageInfo; // setup filters mailAdsTableService.Filter.CountryFilter = model.PageInfo.CountryFilter; mailAdsTableService.Filter.CityFilter = model.PageInfo.CityFilter; mailAdsTableService.Filter.StreetFilter = model.PageInfo.StreetFilter; mailAdsTableService.Filter.IndexFilter = model.PageInfo.IndexFilter; mailAdsTableService.Filter.FromHouseNumberFilter = model.PageInfo.FromHouseNumberFilter; mailAdsTableService.Filter.UntilHouseNumberFilter = model.PageInfo.UntilHouseNumberFilter; mailAdsTableService.Filter.FromCreationDate = model.PageInfo.FromCreationDate; mailAdsTableService.Filter.UntilCreationDate = model.PageInfo.UntilCreationDate; model.MailAddressesList = Mapper.Map <IEnumerable <MailAddressDTO>, List <MailAddress> >(mailAdsTableService.GetMailAddresses()); // and check up ordering model.MailAddressesList = model.MailAddressesList.OrderBy(model.PageInfo.OrderField); if (model.PageInfo.SortReverse) { model.MailAddressesList = model.MailAddressesList.Reverse(); } //update page info model.PageInfo.TotalItems = model.MailAddressesList.Count(); // make pagination model.MailAddressesList = model.MailAddressesList.Skip((model.PageInfo.PageNumber - 1) * model.PageInfo.PageSize).Take(model.PageInfo.PageSize); // returns result model return(new JsonResult { Data = model, JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }