public async Task <ActionResult> Delete(int projectid, int projectaclid) { var project = await ProjectRepository.GetProjectAsync(projectid); return(AsMaster(project, acl => acl.CanGrantRights) ?? View(AclViewModel.FromAcl(project.ProjectAcls.Single(acl => acl.ProjectAclId == projectaclid), 0))); }
public async Task <ActionResult> Edit(int projectId, int?projectaclid) { var project = await ProjectRepository.GetProjectAsync(projectId); var groups = await ProjectRepository.GetGroupsWithResponsible(projectId); var projectAcl = project.ProjectAcls.Single(acl => acl.ProjectAclId == projectaclid); var currentUser = await GetCurrentUserAsync(); return(View(AclViewModel.FromAcl(projectAcl, 0, groups.Where(gr => gr.ResponsibleMasterUserId == projectAcl.UserId).ToList(), currentUser))); }
public async Task <ActionResult> Index(int projectId) { var project = await ProjectRepository.GetProjectWithDetailsAsync(projectId); var claims = await ClaimRepository.GetClaims(projectId, ClaimStatusSpec.Active); return(AsMaster(project) ?? View(project.ProjectAcls.Select(acl => { var result = AclViewModel.FromAcl(acl, claims.Count(c => c.ResponsibleMasterUserId == acl.UserId)); result.ProblemClaimsCount = claims.Where(c => c.ResponsibleMasterUserId == acl.UserId) .Count(claim => claim.GetProblems(ProblemSeverity.Warning).Any()); return result; }))); }
public async Task <ActionResult> Index(int projectId) { var project = await ProjectRepository.GetProjectWithDetailsAsync(projectId); var claims = await ClaimRepository.GetClaimsCountByMasters(projectId, ClaimStatusSpec.Active); var groups = await ProjectRepository.GetGroupsWithResponsible(projectId); var currentUser = await GetCurrentUserAsync(); return(View(project.ProjectAcls.Select(acl => { return AclViewModel.FromAcl(acl, claims.SingleOrDefault(c => c.MasterId == acl.UserId)?.ClaimCount ?? 0, groups.Where(gr => gr.ResponsibleMasterUserId == acl.UserId).ToList(), currentUser); }))); }
public MastersListViewModel( Project project, IReadOnlyCollection <ClaimCountByMaster> claims, IReadOnlyCollection <CharacterGroup> groups, User currentUser, IUriService uriService) { Masters = project.ProjectAcls.Select(acl => { return(AclViewModel.FromAcl(acl, claims.SingleOrDefault(c => c.MasterId == acl.UserId)?.ClaimCount ?? 0, groups.Where(gr => gr.ResponsibleMasterUserId == acl.UserId && gr.IsActive).ToList(), currentUser, uriService)); }).ToList(); CanCurrentUserGrantRights = Masters.Single(acl => acl.UserId == currentUser.UserId).CanGrantRights; AnyoneElseCanGrantRights = Masters.Any(x => x.CanChangeFields && x.UserId != currentUser.UserId); CurrentUserId = currentUser.UserId; }