예제 #1
0
        public ConclusionSafetyReport ConclusionSafetyReportsFromDosage(long recordId, bool isKz)
        {
            var model =
                AppContext.EXP_ExpertiseSafetyreportFinalDoc.FirstOrDefault(e => e.EXP_ExpertiseStageDosage.DosageId == recordId);
            var report = new ConclusionSafetyReport();

            if (model == null)
            {
                return(report);
            }
            var title = isKz ? "Заключения на казахском языке" : "Заключения на русском языке";
            var code  = isKz ? KZ_CODE : RU_CODE;

            if (isKz)
            {
                report.IsAccepted = model.IsAcceptedKz;
                report.Remark     = model.RemarkKz;
                if (model.IsAcceptedKz != null)
                {
                    report.StatusName = model.IsAcceptedKz.Value ? ACCEPTED_STATUS : FOR_REVISION_STATUS;
                }
            }
            else
            {
                report.IsAccepted = model.IsAccepted;
                report.Remark     = model.Remark;
                if (model.IsAccepted != null)
                {
                    report.StatusName = model.IsAccepted.Value ? ACCEPTED_STATUS : FOR_REVISION_STATUS;
                }
            }
            report.Title    = title;
            report.Id       = model.Id.ToString();
            report.Language = code;
            report.Category = FINALDOC_CODE;
            report.FileName = "Заявка: " + model.EXP_ExpertiseStageDosage.EXP_DrugDosage.RegNumber + " (" + title + ")";
            report.Url      = "/Upload/ExportSafetyReportFile?id=" + model.EXP_ExpertiseStageDosage.Id + "&isKz=" + isKz;
            return(report);
        }
예제 #2
0
        private ConclusionSafetyReport CreateConclusionSafetyReport(string doc, IQueryable<FileLink> files, IQueryable<Dictionary> dicListQuery, string code, bool isKz =false)
        {
            var report = new ConclusionSafetyReport();
            switch (code)
            {
                case CodeConstManager.FILE_INSTRUCTION_CODE:
                {
                    report.Title = isKz ? "Инструкция на казахском языке" : "Инструкция на русском языке";
                    break;
                }
                case CodeConstManager.FILE_MAKET_CODE:
                    {
                        report.Title = "Макет";
                        break;
                    }
                case CodeConstManager.FILE_AND_CODE:
                    {
                        report.Title = "АНД";
                        break;
                    }
            }
            var dictionary = dicListQuery.FirstOrDefault(e => e.Code == code);
            if (dictionary == null)
            {
                return null;
            }
            var info = new DirectoryInfo(Path.Combine(ConfigurationManager.AppSettings["AttachPath"], UploadRepository.Root, doc ?? ""));
            if (!info.Exists)
                info.Create();
            var fileMetadatas = files.Where(e => e.CategoryId == dictionary.Id);
            if (code == CodeConstManager.FILE_INSTRUCTION_CODE)
            {
                if (isKz)
                {
                    fileMetadatas = fileMetadatas.Where(e => e.Language == KZ_CODE);
                }
                else
                {
                    fileMetadatas = fileMetadatas.Where(e => e.Language != KZ_CODE);
                }
            }

            var fileGroupItems =
                (new DirectoryInfo(Path.Combine(ConfigurationManager.AppSettings["AttachPath"], UploadRepository.Root,
                    doc ?? "", dictionary.Id.ToString()))).Exists
                    ? new DirectoryInfo(Path.Combine(ConfigurationManager.AppSettings["AttachPath"], UploadRepository.Root,
                            doc ?? "", dictionary.Id.ToString())).GetFiles()
                        .Join(fileMetadatas, f => f.Name,
                            f => string.Format("{0}{1}", f.Id, Path.GetExtension(f.FileName)),
                            (f, fm) => new { File = f, FileMetadata = fm })
                        .ToList().Select(k => new FileGroupItem()
                        {
                            AttachId =
                            string.Format("id={0}&path={1}&fileId={2}", dictionary.Id, doc,
                                string.Format("{0}{1}", k.FileMetadata.Id,
                                    Path.GetExtension(k.FileMetadata.FileName))),
                            AttachName = k.FileMetadata.FileName,
                            AttachSize = k.File.Length,
                            Version = k.FileMetadata.Version,
                            OriginFileId = k.FileMetadata.ParentId,
                            OwnerName = k.FileMetadata.OwnerName,
                            OwnerId = (Guid)k.FileMetadata.OwnerId,
                            CreateDate = k.FileMetadata.CreateDate.ToString(CultureInfo.InvariantCulture),
                            MetadataId = k.FileMetadata.Id,
                            Language = k.FileMetadata.Language,
                            Comment = k.FileMetadata.Comment,
                            DicFileLinkStatus = k.FileMetadata.DIC_FileLinkStatus,
                            Stage = k.FileMetadata.EXP_DIC_Stage != null ? k.FileMetadata.EXP_DIC_Stage.NameRu : ""
                        }).ToList()
                    : new List<FileGroupItem>();
           var fileGroup = fileGroupItems.OrderByDescending(e => e.Version).FirstOrDefault();
            if (fileGroup != null)
            {
                report.Id = fileGroup.MetadataId.ToString();
                report.Category = FILE_CODE;
                report.FileName = fileGroup.AttachName;
                if (fileGroup.StatusCode == CodeConstManager.STATUS_FILE_CODE_ACCEPTED)
                {
                    report.IsAccepted = true;
                }
                if (fileGroup.StatusCode == CodeConstManager.STATUS_FILE_CODE_FOR_REVISION)
                {
                    report.IsAccepted = false;
                }
                report.StatusName = fileGroup.StatusName;
                report.Remark = fileGroup.Comment;
                report.Language = fileGroup.Language;
                report.Url = "/Upload/FileDownload?" + fileGroup.AttachId;
            }
           
            return report;
        }