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
            }));
        }
コード例 #2
0
        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
            });
        }