Пример #1
0
        public ActionResult Download(long userId, DocumentType type)
        {
            if (IsInvalid(userId))
            {
                LoggerWrapper.LogTo(LoggerName.Errors).ErrorFormat(
                    "KnowledgeGeneratorController.Download передан некорректный идентификатор пользователя: {0}",
                    userId);
                return(RedirectToAction("Index"));
            }
            string userKey        = GetUserKey(userId);
            var    generatedItems =
                ControllerContext.Controller.TempData[userKey] as
                Dictionary <KnowledgeDataType, List <GeneratedKnowledgeItem> >;

            if (EnumerableValidator.IsNullOrEmpty(generatedItems))
            {
                LoggerWrapper.LogTo(LoggerName.Errors).ErrorFormat(
                    "KnowledgeGeneratorController.Download для пользователя с идентификатором {0} не удалось найти сгенерированные данные во временных данных",
                    userId);
                return(RedirectToAction("Index"));
            }

            //записать данные опять, т.к. они удаляются после считывания
            WriteItemsToTempData(userKey, generatedItems);

            string header = WebSettingsConfig.Instance.GetTemplateText(SectionId.KnowledgeGenerator, TemplateId.Header);

            var downloader = new GeneratedKnowledgeDownloader(WebSettingsConfig.Instance.DomainWithProtocol,
                                                              CommonConstants.GetFontPath(Server))
            {
                Header = header
            };
            var documentGenerator = downloader.Download(type, header, generatedItems);

            return(File(documentGenerator.Generate(), documentGenerator.ContentType, documentGenerator.FileName));
        }
Пример #2
0
 public static string GetHeader(KnowledgeDataType knowledgeDataType)
 {
     return(GeneratedKnowledgeDownloader.GetHeader(knowledgeDataType));
 }