コード例 #1
0
        public ActionResult DisplayReport(SendReport model)
        {
            // вытащили отчет
            var jxml = DB.reportxml.Where(x => x.JobName == model.jobName).Select(x => x.JobName).SingleOrDefault();

            if (jxml == null)
            {
                logger.Error($"XML отчета {model.jobName} не найден");
                ErrorMessage("Отчет не найден");
                return(RedirectToAction("Index", "Report"));
            }

            var jext = GetJobExtend(model.jobName);

            if (jext == null)
            {
                logger.Error($"Дополнительные параметры отчета {model.jobName} не найдены");
                ErrorMessage("Отчет не найден");
                return(RedirectToAction("Index", "Report"));
            }

            // вытащили заголовок отчета
            ViewBag.Title = jext.CustomName;

            // добавили список адресов для выбора
            ViewData["MailToList"] = h.GetMailList();

            foreach (var error in model.Validate())
            {
                ModelState.AddModelError(error.PropertyName, error.Message);
            }

            // если модель невалидна - возвращаем пользователю
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var file = helper.GetExcel(jext);

            Mails.ManualPostReportMessage(jext, file.FullName, model.MailTo);
            SuccessMessage("Отчет отправлен на указанные email");
            return(View(model));
        }