Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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
                }));
            }
        }