예제 #1
0
        public void UpdateProjectViewStatusRead(string projectId, string userId)
        {
            var pvs = ProjectViewStatuses.FirstOrDefault(q => q.ProjectId == projectId && q.UserId == userId);

            if (pvs == null)
            {
                pvs = new ProjectViewStatus()
                {
                    Id            = Guid.NewGuid().ToString(),
                    UserId        = userId,
                    ProjectId     = projectId,
                    Status        = 0,
                    FinanceStatus = 0
                };
                ProjectViewStatuses.Add(pvs);
                SaveChanges();
            }
            else
            {
                pvs.Status        = 0;
                pvs.FinanceStatus = 0;
                UpdateEntity(pvs);
                SaveChanges();
            }
        }
예제 #2
0
        public ActionResult LoadProjects(QueryFilter queryFilter)
        {
            if (queryFilter == null)
            {
                throw new Exception("查询条件对象不能为空");
            }

            ISpecification <Project> spec = BuildProjectSpecification(queryFilter);

            SortDescriptor <Project>[] sort = BuildProjectSortDescriptor(queryFilter);

            var result     = ProjectService.GetProjectPageList(spec, sort, queryFilter.PageIndex, queryFilter.PageSize);
            var viewStatus = ProjectService.GetProjectViewStatus(result.List.Select(q => q.Id).ToArray(), UserInfo.UserId)
                             .ToDictionary(q => q.ProjectId, q => q);

            ProjectViewStatus temp = null;
            var model = new PageList <ProjectListItemViewModel>(
                result.List.Select(item =>
            {
                viewStatus.TryGetValue(item.Id, out temp);
                return(new ProjectListItemViewModel(item, UserInfo, temp));
            }),
                result.PageIndex, result.PageSize, result.Total);

            return(JsonMessageResult(model));
        }
예제 #3
0
        public ProjectListItemViewModel(Project project, UserInfo userInfo, ProjectViewStatus viewStatus)
        {
            Preconditions.CheckNotNull(project, "project");
            Preconditions.CheckNotNull(userInfo, "userInfo");

            project.Map(this);

            HasNewsView      = viewStatus == null || viewStatus.Status > 0;
            EnableViewDetail = userInfo.EnableViewDetail(project);
            EnableDelete     = userInfo.EnableDelete(project);
            if (userInfo.RightDetail.EnableManageFinance)
            {
                HasNewsView = HasNewsView || viewStatus.FinanceStatus > 0;
                if (!string.IsNullOrEmpty(project.FinanceLatestNews))
                {
                    LatestNews = project.FinanceLatestNews;
                }
            }
        }