コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public async Task <IActionResult> EditAdminByid(editAdministrator adminCreationModel)
 {
     return(await AddItemResponseHandler(async() => await service.EditAdminById(adminCreationModel)));
 }