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)); }