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