public bool CreateRemark(string id, Employee employee, int dicStageId) { var model = GetExpertiseStageById(new Guid(id)); if (model == null) { return(true); } var otdIds = (model.OtdIds ?? "").Split(',').ToList(); var otds = AppContext.EXP_ExpertiseStageRemark.Where(e => e.OtdId > 0 && e.EXP_ExpertiseStage.StageId == dicStageId && e.EXP_ExpertiseStage.Id == model.Id).Select(e => e.OtdId); var dicRepo = new ReadOnlyDictionaryRepository(); var dicOtdQuery = model.EXP_DrugDeclaration.EXP_DIC_Type.Code == EXP_DIC_Type.ReRegistration ? dicRepo.GetExpDicPrimaryOTDs(null, new[] { EXP_DIC_PrimaryOTD.Module4, EXP_DIC_PrimaryOTD.Module5 }) : dicRepo.GetExpDicPrimaryOTDs(); var dicotds = dicOtdQuery.Where(e => !otdIds.Contains(e.Id.ToString()) && !otds.Contains(e.Id) && e.EXP_DIC_PrimaryOTD1.Count == 0); var expDicPrimaryOtds = dicotds as EXP_DIC_PrimaryOTD[] ?? dicotds.ToArray(); var deleteList = AppContext.EXP_ExpertiseStageRemark.Where(e => e.OtdId > 0 && e.EXP_ExpertiseStage.StageId == dicStageId && e.EXP_ExpertiseStage.Id == model.Id && otdIds.Contains(e.OtdId.ToString())); foreach (var expDrugPrimaryRemark in deleteList) { AppContext.EXP_ExpertiseStageRemark.Remove(expDrugPrimaryRemark); } AppContext.SaveChanges(); if (!expDicPrimaryOtds.Any()) { return(true); } var otdRemarks = (model.OtdRemarks ?? "").Split(new[] { "+++" }, StringSplitOptions.RemoveEmptyEntries) .Select(e => { var items = e.Split(new[] { "-->" }, StringSplitOptions.RemoveEmptyEntries); return(new { id = int.Parse(items[0]), remark = (items.Length > 1 ?items[1] : "") }); }).ToList(); foreach (var dicotd in expDicPrimaryOtds) { if (dicotd.EXP_DIC_PrimaryOTD1.Count != 0) { continue; } var remark = otdRemarks.FirstOrDefault(e => e.id == dicotd.Id); var entity = new EXP_ExpertiseStageRemark { OtdId = dicotd.Id, NameRemark = remark != null?string.Format("{0} - {1}", dicotd.FullName, remark.remark) : dicotd.FullName, ExecuterId = employee.Id, StageId = model.Id, RemarkDate = DateTime.Now }; AppContext.EXP_ExpertiseStageRemark.Add(entity); } AppContext.SaveChanges(); return(true); }
public ActionResult FileUpload(EXP_ExpertiseStageRemark document, IEnumerable <HttpPostedFileBase> files) { var repository = new DrugDeclarationRepository(); var remark = repository.GetRemarksListFiles(document.Id); var model = GetDrugDeclarationById(remark.EXP_ExpertiseStage.DeclarationId.ToString()); if (files == null) { files = new List <HttpPostedFileBase>(); } var httpPostedFileBases = files as HttpPostedFileBase[] ?? files.ToArray(); for (int i = 0; i < httpPostedFileBases.Count(); i++) { HttpPostedFileBase file = httpPostedFileBases[i]; Guid fileId = Guid.NewGuid(); var code = repository.GetRemarkCode(); var path = model.ObjectId; string savedFileName = file.FileName; var ownId = UserHelper.GetCurrentEmployee().Id; int?currentStageId = null; string root = ConfigurationManager.AppSettings["AttachPath"]; string fullName = Path.Combine(root, FileHelper.Root, model.ObjectId ?? "", code ?? "", savedFileName); DirectoryInfo info = new DirectoryInfo(Path.Combine(root, FileHelper.Root, model.ObjectId ?? "", code ?? "")); if (!info.Exists) { info.Create(); } file.SaveAs(fullName); var fileLink = new FileLink() { Id = fileId, CreateDate = DateTime.Now, CategoryId = !string.IsNullOrEmpty(code) ? (Guid?)Guid.Parse(code) : null, DocumentId = !string.IsNullOrEmpty(path) ? (Guid?)Guid.Parse(path) : null, FileName = savedFileName, OwnerId = ownId, Version = 1, Comment = remark.Id.ToString(), Language = "", PageNumbers = null, StageId = null }; repository.SaveRemarkFile(fileLink, remark); } return(RedirectToAction("Edit", new { Id = model.ObjectId })); }