protected List <CommentModel> PrepareCommentModelPageData(PagedList <Comment> comments, EngineeringFile model) { var list = new List <CommentModel>(); var customerRoles = new CustomerRoleMappingService().GetMany(e => e.ProjectId == model.Engineering.ProjectId && e.EngineeringId == model.EngineeringId && (e.Role == Role.Checker || e.Role == Role.Reviewer)).ToList(); comments.ForEach(comment => { var commentType = DictionaryService.DesignCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); if (commentType == null) { commentType = DictionaryService.IntegralityCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); } string typeDes; if (commentType == null) { typeDes = comment.CommentTypeId == 0 ? "专业不完整" : "专业完整"; } else { typeDes = commentType.DisplayName; } var node = new CommentModel() { Checker = customerRoles.FirstOrDefault(e => e.ProfessionId == comment.ProfessionId && e.Role == Role.Checker)?.CustomerName, CommentType = typeDes, CommnenId = comment.Id, EngineeringFileCommentId = comment.EngineeringFileCommentId, CommnetStatus = comment.Status, CreateVersion = comment.CreateVersion.VersionNo, Floor = comment.Floor, Operation = comment.Operation, Reviewer = customerRoles.FirstOrDefault(e => e.ProfessionId == comment.ProfessionId && e.Role == Role.Reviewer)?.CustomerName, UpdateTime = comment.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"), }; list.Add(node); }); return(list); }
protected Expression <Func <Comment, bool> > PrepareCommentListLamda(CommentListModel model, EngineeringFile modelFile) { var lastesModelVersion = modelFile.FileVersions.OrderByDescending(e => e.UpLoadeTime).FirstOrDefault(); if (lastesModelVersion == null) { throw new ArgumentException(nameof(lastesModelVersion)); } var lamda = CommentService.ExpressionTrue; lamda = lamda.And(e => e.EngineeringFileId == model.ModelId); if (model.SelectedProfessionId != 0) { lamda = lamda.And(e => e.ProfessionId == model.SelectedProfessionId); } if (!string.IsNullOrWhiteSpace(model.SelectedState)) { var states = WorkFlow.GetStatusListByDescription(model.SelectedState); lamda = lamda.And(e => states.Contains(e.Status)); } if (model.SelectedCommentType != CommentType.All) { if (model.SelectedCommentType == CommentType.Integrality) { var types = DictionaryService.IntegralityCommentTypeDictionary.Where(e => e.IsDeleted == false).Select(e => e.Id).ToArray(); lamda = lamda.And(e => types.Contains(e.CommentTypeId)); } else { var types = DictionaryService.DesignCommentTypeDictionary.Where(e => e.IsDeleted == false).Select(e => e.Id).ToArray(); lamda = lamda.And(e => types.Contains(e.CommentTypeId)); } } return(lamda); }
protected PagedList <Comment> GetVersionComments(int pageIndex, int pageSize, Expression <Func <Comment, bool> > lamda, EngineeringFile model, int fileVersionId, int professionId = 0) { var customerRoles = CurrentCustomer.CustomerRoles.Where(e => e.ProjectId == model.Engineering.ProjectId && e.FinishTime == null); CustomerRoleMapping customerRole; customerRole = customerRoles.FirstOrDefault(e => e.Role != Role.Checker && e.Role != Role.Reviewer); if (customerRole == null) { if (professionId == 0) { customerRole = customerRoles.FirstOrDefault(); } else { customerRole = customerRoles.FirstOrDefault(e => e.EngineeringId == model.EngineeringId && e.ProfessionId == professionId); } } var comments = new CommentService().GetCommentByRoleAndEngineeringFileId(customerRole?.Role ?? Role.CensorshipManager, fileVersionId); return(new PagedList <Comment>(comments.Where(lamda).OrderByDescending(e => e.CreateTime), pageIndex, pageSize)); }
public ActionResult CreateDrawingSeries(FormCollection form) { try { int engineeringId = int.Parse(form["engineeringId"]); int drawingCatalogValue = int.Parse(form["drawingCatalogValue"]); int drawingProfessionValue = int.Parse(form["drawingProfessionValue"]); var blobFile = Request.Files["blobFile"]; string drawingSeriesName = form["drawingSeriesName"]; string fileSize = form["fileSize"]; string fileDescription = form["fileDescription"]; if (_engineeringFileService.Get(ef => ef.FileName == drawingSeriesName && ef.EngineeringId == engineeringId && ef.DrawingProfessionId == drawingProfessionValue) != null) { return(Json(new { Result = false, Message = "图纸名称重复" })); } if (blobFile != null && blobFile.ContentLength > 0) { var parameter = new UploadProjectFileParameterType(); var engineeringFile = new EngineeringFile(); engineeringFile.DrawingProfessionId = drawingProfessionValue; engineeringFile.DrawingCatalogId = drawingCatalogValue; engineeringFile.FileType = FileType.Drawing; //更新文件版本后来纪录最新的文件url engineeringFile.Description = fileDescription; engineeringFile.EngineeringId = engineeringId; engineeringFile.FileName = drawingSeriesName; engineeringFile.IsDistribution = false; engineeringFile.Status = FlowCode.Pre_DesignCompany_Uploaded; engineeringFile.UpLoadTime = DateTime.Now; engineeringFile.UploaderId = CurrentCustomer.Id; new EngineeringFileService().Insert(engineeringFile); parameter.Description = fileDescription; parameter.FileNameKey = "blobFile"; parameter.FileNameValue = blobFile.FileName; parameter.UploadStream = blobFile.InputStream; parameter.PostParameters.Add(new KeyValuePair <string, string>("versionNo", "1")); parameter.PostParameters.Add(new KeyValuePair <string, string>("fileSize", fileSize)); parameter.PostParameters.Add(new KeyValuePair <string, string>("drawingProfession", engineeringFile.DrawingProfessionId.ToString())); parameter.PostParameters.Add(new KeyValuePair <string, string>("drawingCatalog", engineeringFile.DrawingCatalogId.ToString())); FileVersion currentFile = new FileVersion(); DesignCompanyProjectManager designCompanyProjectManager = new DesignCompanyProjectManager(CurrentCustomer, engineeringFile, currentFile); designCompanyProjectManager.UploadBlob(parameter); return(Json(new { Result = true, Message = "上传成功" })); } return(Json(new { Result = false, Message = "表单数据异常" })); } catch (Exception ex) { return(Json(new { Result = false, Message = ex.Message })); } }