예제 #1
0
        public ActionResult GetModelProfessionState(int modelVersionId, int professionId)
        {
            var modelVersion = new FileVersionService().Get(e => e.Id == modelVersionId);

            if (modelVersion == null)
            {
                throw new ArgumentNullException(nameof(modelVersion));
            }

            if (!new PermissionService().CanUserVisitProject(CurrentCustomer, modelVersion.EngineeringFile.Engineering.ProjectId))
            {
                return(NoAuthorityJson());
            }

            var modelProfession = new ModelProfessionService().Get(e => e.ModelVersionId == modelVersionId && e.ProfessionId == professionId);

            var customerRoles = CurrentCustomer.CustomerRoles.Where(e => e.ProjectId == modelVersion.EngineeringFile.Engineering.ProjectId && e.FinishTime == null);

            string roleDes = CurrentCustomer.GetCurrentRoleDes(professionId, modelVersion.EngineeringFile.Engineering);

            ModelProfessionOperateModel operateModel = null;

            if (professionId != 0 && modelProfession != null)
            {
                var roles = CurrentCustomer.GetCurrentRoles(professionId, modelProfession.EngineerFile.Engineering);
                operateModel = PrepareOperateModel(modelProfession, roles);
            }

            return(Json(new { result = true, roleDes = roleDes, htmlStr = base.RenderPartialViewToString("_ModelProfessionOperate", operateModel) }, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public ActionResult CommentModelPageData(int pageIndex, int pageSize, CommentListModel commentsModel)
        {
            var model = new EngineeringFileService().Get(e => e.Id == commentsModel.ModelId);

            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (!new PermissionService().CanUserVisitProject(CurrentCustomer, model.Engineering.ProjectId))
            {
                return(NoAuthorityJson());
            }

            var lamda = PrepareCommentListLamda(commentsModel, model);

            PagedList <Comment> comments = GetVersionComments(pageIndex, pageSize, lamda, model, commentsModel.SelectedVersionId, commentsModel.SelectedProfessionId);

            var commentModels = PrepareCommentModelPageData(comments, model);
            var roleDes       = CurrentCustomer.GetCurrentRoleDes(commentsModel.SelectedProfessionId, model.Engineering);

            return(Json(new { result = true, listHtml = this.RenderPartialViewToString("_Comment", commentModels), total = comments.TotalCount, roleDes = roleDes, statusDescription = model.FileVersions.FirstOrDefault(e => e.Id == commentsModel.SelectedVersionId)?.Status.GetDescription() }, JsonRequestBehavior.AllowGet));
        }