public async Task <IAsyncResult> EditAsync(string userId, UserToEdit userToEdit) { var userFromRepo = await _manager.FindByIdAsync(userId.ToString()); if (userFromRepo == null) { throw new Exception("Nie ma takiego użytkownika"); } if (!string.IsNullOrEmpty(userToEdit.FirstName)) { userFromRepo.FirstName = userToEdit.FirstName; } if (!string.IsNullOrEmpty(userToEdit.LastName)) { userFromRepo.LastName = userToEdit.LastName; } var result = _manager.UpdateAsync(userFromRepo); if (result.IsCompletedSuccessfully) { return(Task.CompletedTask); } throw new Exception("Wystąpił błąd."); }
public async Task <IActionResult> Edit([Bind("Id,LmsName,Email,CourseName,Role,ChangePassword,Password")] UserToEdit user) { if (ModelState.IsValid) { var user2Store = await _context.ApplicationUser.FindAsync(user.Id); user2Store.LmsName = user.LmsName; user2Store.Email = user.Email; user2Store.UserName = user.Email; // Do we need to make this aynchronous? user2Store.CourseId = _context.Course .FirstOrDefault(c => c.Name == user.CourseName) .Id; try { var result = await _userManager.UpdateAsync(user2Store); } catch (DbUpdateConcurrencyException) { // What is this for? Check in Course Edit if (user.Id == "hej") { return(NotFound()); } else { throw; } } if (user2Store == null) { return(NotFound()); } if (user.ChangePassword) { var result = await _userManager.RemovePasswordAsync(user2Store); result = await _userManager.AddPasswordAsync(user2Store, user.Password); } if (user.Role == "Teacher") { var resultAddRole = await _userManager.AddToRoleAsync(user2Store, "Teacher"); } else // Role == "Student", therefore remove "Teacher" { var resulRemovRole = await _userManager.RemoveFromRoleAsync(user2Store, "Teacher"); } return(RedirectToAction(nameof(Index))); // TODO CJA: Why duplicate returns here? } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> EditUserAsync(UserToEdit userToEdit) { try { await _service.EditAsync(User.FindFirst(ClaimTypes.NameIdentifier).Value, userToEdit); return(NoContent()); } catch (Exception e) { return(BadRequest(e.Message)); } }
// GET: ApplicationUser/Edit/#¤%¤#"!"#)= public async Task <IActionResult> Edit(string id) { if (id == null) { return(NotFound()); } var user = await _context.ApplicationUser.FindAsync(id); if (user == null) { return(NotFound()); } var u2e = new UserToEdit(); u2e.Id = user.Id; u2e.LmsName = user.LmsName; u2e.Email = user.Email; u2e.AllCourseNames = await _context.Course .Select(c => new SelectListItem { Selected = user.CourseId == c.Id, Text = c.Name, Value = c.Name }) .OrderBy(sli => sli.Value) .ToListAsync(); u2e.AllRoles = new List <SelectListItem>(); foreach (IdentityRole ir in _roleManager.Roles) { string usersCurrentRole = ""; if (await _userManager.IsInRoleAsync(user, "Teacher")) { usersCurrentRole = "Teacher"; } else { usersCurrentRole = "Student"; } u2e.AllRoles.Add(new SelectListItem { Selected = ir.Name == usersCurrentRole, Text = ir.Name, Value = ir.Name }); } return(View(u2e)); }