public async Task <IActionResult> Create(CredentialEditViewModel credentialVM) { if (!ModelState.IsValid) { return(View(credentialVM)); } var credential = new Credential { Description = credentialVM.Description, Value = credentialVM.Value, UserCredentials = new List <UserCredential>(), }; foreach (var userId in credentialVM.SelectedUser) { credential.UserCredentials.Add(new UserCredential { UserId = userId }); } _db.Add(credential); await _db.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create() { var users = await GetUsersAsync(x => true); var credentialVM = new CredentialEditViewModel { Users = users, }; return(View(credentialVM)); }
public async Task <IActionResult> Edit(Guid?id) { if (id == null) { return(NotFound()); } var credential = await _db.Credentials.Include(x => x.UserCredentials) .ThenInclude(x => x.User) .FirstOrDefaultAsync(m => m.Id == id); if (credential == null) { return(NotFound()); } var unusedUsers = await _db.Users .Where(x => !IsUserUnderCredential(x, credential)) .OrderBy(x => x.Name) .Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }) .ToListAsync(); var credentialTipp = new SelectListItem() { Text = "--- select user ---", Value = null }; unusedUsers.Insert(0, credentialTipp); var dropdown = new SelectList(unusedUsers, "Value", "Text"); var credentialVM = new CredentialEditViewModel(); { credentialVM.Id = credential.Id; credentialVM.Description = credential.Description; credentialVM.Value = credential.Value; credentialVM.UserList = credential.UserCredentials.Select(x => new UserViewModel { UserId = x.UserId, UserName = x.User.Name }).ToList(); credentialVM.Users = dropdown; }; return(View(credentialVM)); }
public async Task <IActionResult> Details(Guid id) { var credential = await _db.Credentials .Include(x => x.UserCredentials) .ThenInclude(x => x.User) .FirstOrDefaultAsync(m => m.Id == id); if (credential == null) { return(NotFound()); } var identity = User.Identity as ClaimsIdentity; var username = identity.Claims.FirstOrDefault(c => c.Type == "preferred_username")?.Value; if (!credential.UserCredentials.Any(x => x.User.Name == username)) { return(Unauthorized()); } var credentialVM = new CredentialEditViewModel(); { credentialVM.Id = credential.Id; credentialVM.Description = credential.Description; credentialVM.Value = credential.Value; credentialVM.UserList = credential.UserCredentials .Select(x => new UserViewModel { UserId = x.UserId, UserName = x.User.Name }) .ToList(); }; return(View(credentialVM)); }
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)); }