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(); } }
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)); }
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; } } }