public async Task <IActionResult> Create(UserEditViewModel userVM) { if (ModelState.IsValid) { var user = new User(); { user.Id = Guid.NewGuid(); user.Name = userVM.UserName; if (userVM.IsAdmin == true) { user.Role = Roles.Admin; } else { user.Role = Roles.User; } user.UserCredentials = new List <UserCredential>(); foreach (Guid credentialId in userVM.SelectedCredential) { var credential = _context.Find <Credential>(credentialId); user.UserCredentials.Add(new UserCredential { User = user, Credential = credential }); _context.Add(user); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } return(View(userVM)); }
public async Task <IActionResult> Edit(CredentialEditViewModel credentialVM) { if (ModelState.IsValid) { try { var credential = await _db.Credentials.Include(x => x.UserCredentials).FirstOrDefaultAsync(m => m.Id == credentialVM.Id); { credential.Description = credentialVM.Description; credential.Value = credentialVM.Value; foreach (Guid userId in credentialVM.SelectedUser) { var user = _db.Find <User>(userId); credential.UserCredentials.Add(new UserCredential { User = user, Credential = credential }); } } await _db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CredentialExists(credentialVM.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Edit", new { id = credentialVM.Id })); } return(View(credentialVM)); }