예제 #1
0
        protected CommentListModel PrepareCommentListModel(FileVersion modelVersion)
        {
            CommentListModel result = new CommentListModel();
            var modelFile           = modelVersion.EngineeringFile;

            result.ModelId = modelFile.Id;

            result.ProjectName      = modelFile.Engineering.Project.ProjectName;
            result.CommentCount     = modelFile.Comments.Count();
            result.EngineeringName  = modelFile.Engineering.Name;
            result.ModelStatus      = modelVersion.Status;
            result.StatusUpdateTime = modelVersion.UpdateStateTime.ToString("yyyy-MM-dd HH:mm:ss");
            result.OrganizationType = CurrentCustomer.Organization.OrganizationType;

            result.AvaliableProfessions.Add(new SelectListItem()
            {
                Text = "全部", Value = "0", Selected = true
            });
            modelVersion.ModelProfessions.ToList().ForEach(e =>
            {
                result.AvaliableProfessions.Add(new SelectListItem()
                {
                    Text  = DictionaryService.CommentProfessionDictionary.Find(n => n.Id == e.ProfessionId).DisplayName,
                    Value = e.ProfessionId.ToString()
                });
            });

            result.AvaliableStatus.Add(new SelectListItem()
            {
                Text = "全部", Value = "", Selected = true
            });
            WorkFlow.GetAllCommentStatus().ForEach(e => result.AvaliableStatus.Add(new SelectListItem()
            {
                Text  = e,
                Value = e,
            }));

            result.AvaliableCommentType = EnumHelper.EnumToSelectListItem <CommentType>();

            var lastesModelVersion = modelFile.FileVersions.Where(e => e.FileType == FileType.Model).OrderByDescending(e => e.UpLoadeTime).FirstOrDefault();

            if (lastesModelVersion == null)
            {
                throw new ArgumentException(nameof(lastesModelVersion));
            }

            modelFile.FileVersions.Where(e => e.FileType == FileType.Model).OrderByDescending(e => e.UpLoadeTime).ToList().ForEach(e =>
            {
                if (e.Id == modelVersion.Id)
                {
                    result.SelectedVersionId = e.Id;
                }

                result.AvaliableVersions.Add(new SelectListItem()
                {
                    Text     = string.Format("模型版本{0}", e.VersionNo),
                    Value    = e.Id.ToString(),
                    Selected = e.Id == modelVersion.Id,
                });
            });

            result.AvaliableVersions.Find(e => e.Value == lastesModelVersion.Id.ToString()).Text = "当前版本";

            return(result);
        }