// GET: PerdoruesiController/Edit/5 public async Task <ActionResult> EditAsync(string id) { if (string.IsNullOrEmpty(id)) { ViewBag.ErrorTitle = $"Id nuk mund të jetë null"; return(View("_NotFound")); } var userFound = await userManager.FindByIdAsync(id); if (userFound == null) { ViewBag.ErrorTitle = $"Përdoruesi me këtë id { id } nuk mund të gjendet."; return(View("_NotFound")); } var userRoles = await userManager.GetRolesAsync(userFound); var role = await roleManager.FindByNameAsync(userRoles.FirstOrDefault()); PerdoruesiEditViewModel model = new PerdoruesiEditViewModel { Id = userFound.Id, FirstName = userFound.FirstName, LastName = userFound.LastName, Email = userFound.Email, RoleId = role.Id, Address = userFound.Address, PhoneNumber = userFound.PhoneNumber, UserProfile = userFound.Image, KompaniaId = userFound.KompaniaId, RoleName = role.Name }; ViewBag.RoleId = await LoadRoles(userRoles.FirstOrDefault(), "User"); ViewBag.KompaniaId = await kompaniaRepository.KompaniaSelectList(null, false, false); model.resetPassword.UserId = userFound.Id; //random hashed password var random = userManager.PasswordHasher.HashPassword(userFound, RandomNumberGenerator.Create().ToString()); model.resetPassword.Password = random; model.resetPassword.ConfirmPassword = random; return(View(model)); }
public async Task <IActionResult> ResetPasswordAsync(PerdoruesiEditViewModel model) { string userId = null; var userFound = await userManager.FindByIdAsync(model.resetPassword.UserId); if (userFound != null) { userId = userFound.Id; var code = await userManager.GeneratePasswordResetTokenAsync(userFound); var result = await userManager.ResetPasswordAsync(userFound, code, model.resetPassword.Password); if (result.Succeeded) { alertService.Success("Fjalëkalimi u resetua me sukses", true); return(RedirectToAction("Edit", new { id = userFound.Id })); } else { alertService.Information("Fjalëkalimi nuk është ndryshuar", true); return(RedirectToAction("Edit", new { id = userFound.Id })); } } if (!string.IsNullOrEmpty(userId)) { return(RedirectToAction("Edit", new { id = userId })); } else { return(RedirectToAction("Index")); } }
public async Task <IActionResult> EditAsync(PerdoruesiEditViewModel model) { if (ModelState.IsValid) { try { var userFound = await userManager.FindByIdAsync(model.Id); if (userFound == null) { ViewBag.ErrorTitle = $"Përdoruesi me këtë id { model.Id } nuk mund të gjendet."; return(View("_NotFound")); } var roleFound = await roleManager.FindByIdAsync(model.RoleId); if (roleFound.Name == "HR") { if (!model.KompaniaId.HasValue) { alertService.Information("Plotesoni te dhenat obligative"); ViewBag.RoleId = await LoadRoles(null, "User"); ViewBag.KompaniaId = await kompaniaRepository.KompaniaSelectList(null, false, false); return(View(model)); } } else { model.KompaniaId = null; } userFound.FirstName = model.FirstName; userFound.LastName = model.LastName; userFound.Email = model.Email; userFound.Address = model.Address; userFound.PhoneNumber = model.PhoneNumber; userFound.KompaniaId = model.KompaniaId; var userRoles = await userManager.GetRolesAsync(userFound); var role = await roleManager.FindByNameAsync(userRoles.FirstOrDefault()); if (role.Id != model.RoleId) { await userManager.RemoveFromRolesAsync(userFound, userRoles); role = await roleManager.FindByIdAsync(model.RoleId); await userManager.AddToRoleAsync(userFound, role.Name); } var result = await userManager.UpdateAsync(userFound); if (result.Succeeded) { alertService.Success("Të dhënat e përdoruesit u modifikuan me sukses", true); return(RedirectToAction("Edit", new { id = userFound.Id })); } } catch { ViewBag.RoleId = await LoadRoles(model.RoleId, "User"); return(View()); } } IEnumerable <string> allErrors = ModelState.Values.SelectMany(v => v.Errors.Select(b => b.ErrorMessage)); foreach (var item in allErrors) { alertService.Information(item, true); } ViewBag.RoleId = await LoadRoles(model.RoleId, "User"); return(View(model)); }