public async Task <IActionResult> Create([Bind("UserProjectInfoId,UserId,ProjectId,PrivilegeId")] UserProjectInfo userProjectInfo) { userProjectInfo.UserId = GetUserId(userProjectInfo.UserId, userProjectInfo.ProjectId); if (string.IsNullOrEmpty(userProjectInfo.UserId)) { ModelState.AddModelError("", "Error: You must enter a unique and valid user email!"); } else if (!IsUserAdmin(userProjectInfo.ProjectId)) { ModelState.AddModelError("", "You have insufficient privileges to create this item!"); } else if (ModelState.IsValid) { _context.Add(userProjectInfo); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(ProjectsController.Details), "Projects", new { id = userProjectInfo.ProjectId })); } var project = _context.Project.FirstOrDefault(p => p.ProjectId == userProjectInfo.ProjectId); userProjectInfo.Project = project; ViewData["ProjectName"] = project.ProjectName; ViewData["PrivilegeId"] = GetPrivilegeSelectList(); return(View(userProjectInfo)); }
public async Task <IActionResult> Create([Bind("ProjectId,ProjectName,ProjectDescription")] Project project) { if (ModelState.IsValid) { // Add the project _context.Add(project); await _context.SaveChangesAsync(); // Add the user to the project with the master privilege level var userProjectInfo = new UserProjectInfo() { ProjectId = project.ProjectId, UserId = userId, PrivilegeId = _context.Privilege.Where(p => p.PrivilegeLevel == 4) .FirstOrDefault()?.PrivilegeId ?? 0 }; _context.Add(userProjectInfo); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(project)); }
// GET: UserProjectInfos/Create public IActionResult Create(int id) { // To Do: Need to add privilege and user validation var project = _context.Project.FirstOrDefault(p => p.ProjectId == id); ViewData["ProjectName"] = project.ProjectName; ViewData["PrivilegeId"] = GetPrivilegeSelectList(); var userProjectInfo = new UserProjectInfo() { ProjectId = id }; return(View(userProjectInfo)); }
public async Task <IActionResult> Edit([Bind("UserProjectInfoId,UserId,ProjectId,PrivilegeId")] UserProjectInfo userProjectInfo) { var privilegeName = _context.Privilege.FirstOrDefault(p => p.PrivilegeId == userProjectInfo.PrivilegeId).PrivilegeName; if (!IsUserAdmin(userProjectInfo.ProjectId)) { ModelState.AddModelError("", "You have insufficient privileges to edit this item!"); } else if (ModelState.IsValid) { try { _context.Update(userProjectInfo); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UserProjectInfoExists(userProjectInfo.UserProjectInfoId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(ProjectsController.Details), "Projects", new { id = userProjectInfo.ProjectId })); } else if (privilegeName == MASTER) { ModelState.AddModelError("", "You cannot edit a master privilege"); } var project = _context.Project.FirstOrDefault(p => p.ProjectId == userProjectInfo.ProjectId); userProjectInfo.User = await _context.Users.FindAsync(userProjectInfo.UserId); userProjectInfo.UserId = userProjectInfo.User.Id; ViewData["ProjectName"] = project.ProjectName; ViewData["PrivilegeId"] = GetPrivilegeSelectList(); return(View(userProjectInfo)); }