public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } ApplicationUser user = await GetCurrentUserAsync(); var viewModel = new CompletionDetailViewModel(); viewModel.Completion = await _context.Completion .Include(c => c.CompletionActionItems) .ThenInclude(ca => ca.ActionItem) .Where(c => c.CompletionId == id).SingleOrDefaultAsync(); viewModel.UserResponsibleParties = new SelectList(_context.ResponsibleParty.Where(rp => rp.UserId == user.Id), "ResponsiblePartyId", "NameOrGroup"); if (viewModel.Completion == null) { return(NotFound()); } return(View(viewModel)); }
public async Task <IActionResult> Edit(int id, CompletionDetailViewModel vm) { ModelState.Remove("Completions.User"); ModelState.Remove("Completions.UserId"); if (ModelState.IsValid) { try { ApplicationUser user = await GetCurrentUserAsync(); vm.Completion.DateCompleted = DateTime.Now; vm.Completion.CompletionId = id; vm.Completion.UserId = user.Id; _context.Update(vm.Completion); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CompletionExists(vm.Completion.CompletionId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ApplicationUser currentUser = await GetCurrentUserAsync(); vm.UserResponsibleParties = new SelectList( _context.ResponsibleParty .Where(rp => rp.UserId == currentUser.Id), "ResponsiblePartyId", "NameOrGroup"); return(View(vm)); }