public async Task <ApiResponse <bool> > EditAdminById(editAdministrator adminDto) { ApiResponse <bool> result = new ApiResponse <bool>(); try { Administrator adminValue = await unitOfWork.AdministratorsManager.GetByIdAsync(adminDto.id); if (adminValue != null) { var userdata = await unitOfWork.UserManager.FindByIdAsync(adminValue.UserId); if (adminDto.FirstName == userdata.FirstName && adminDto.LastName == userdata.LastName && adminDto.Email == userdata.Email && adminDto.PhoneNumber == userdata.PhoneNumber && adminDto.password == null && adminDto.newpassword == null) { result.Succeeded = false; result.Errors.Add("no changes Happened"); return(result); } else { userdata.FirstName = adminDto.FirstName; userdata.LastName = adminDto.LastName; userdata.Email = adminDto.Email; userdata.PhoneNumber = adminDto.PhoneNumber; if (adminDto.password == null) { adminDto.password = userdata.PasswordHash; } else if (userdata.PasswordHash != adminDto.password) { var checkPassword = await unitOfWork.UserManager.CheckPasswordAsync(userdata, adminDto.password); if (adminDto.newpassword == null) { result.Succeeded = false; result.Errors.Add("password is null"); return(result); } else { if (checkPassword) { var changePassword = await unitOfWork.UserManager.ChangePasswordAsync(userdata, adminDto.password, adminDto.newpassword); if (changePassword != null) { var hasher = new PasswordHasher <ApplicationUser>(); userdata.PasswordHash = hasher.HashPassword(userdata, adminDto.newpassword); } else { result.Succeeded = false; result.Errors.Add("change not true"); return(result); } } else { result.Succeeded = false; result.Errors.Add("check password not true"); return(result); } } } else { result.Succeeded = false; result.Errors.Add(" not true"); return(result); } var res = await unitOfWork.UserManager.UpdateAsync(userdata); if (res.Succeeded) { await unitOfWork.SaveChangesAsync(); result.Data = true; result.Succeeded = true; return(result); } else { result.Succeeded = false; result.Errors.Add("res not true"); return(result); } } } else { result.Succeeded = false; result.Errors.Add("admin Value not true"); return(result); } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); return(result); } }
public async Task <IActionResult> EditAdminByid(editAdministrator adminCreationModel) { return(await AddItemResponseHandler(async() => await service.EditAdminById(adminCreationModel))); }