public async Task <bool> CreateAdminAsync(string login, string password) { var isLoginUnavailable = _DBContext.Admins.Any(admin => admin.Login == login); if (isLoginUnavailable) { throw new BadArgumentException("This login is unavailable."); } PasswordHashHelper.CreatePasswordHash(password, out byte[] hash, out byte[] salt); AdminEntity createAdminEntity = new AdminEntity() { Login = login, PasswordHash = hash, PasswordSalt = salt }; await _DBContext.Admins.AddAsync(createAdminEntity); await _DBContext.SaveChangesAsync(); bool isAdminCreated = await _DBContext.Admins.AnyAsync(admin => admin.Login == login); return(isAdminCreated); }
public async Task <AdminDTO> UpdateAdminAsync(UpdateAdminDTO updateAdminDTO) { if (string.IsNullOrWhiteSpace(updateAdminDTO.NewLogin) && string.IsNullOrWhiteSpace(updateAdminDTO.NewPassword)) { throw new BadArgumentException("The new login and password cannot be blank at the same time. There is nothing to update."); } AdminEntity admin = await _DBContext.Admins.FirstOrDefaultAsync(a => a.Id == updateAdminDTO.Id); if (admin == null) { throw new BadArgumentException($"Admin with id {updateAdminDTO.Id} not found."); } //Подумати!!! if (!string.IsNullOrWhiteSpace(updateAdminDTO.NewLogin)) { admin.Login = updateAdminDTO.NewLogin; } if (!string.IsNullOrWhiteSpace(updateAdminDTO.NewPassword)) { PasswordHashHelper.CreatePasswordHash(updateAdminDTO.NewPassword, out var hash, out var sail); admin.PasswordHash = hash; admin.PasswordSalt = sail; } _DBContext.Admins.Update(admin); await _DBContext.SaveChangesAsync(); var updatedAdminDTO = _mapper.Map <AdminDTO>(admin); return(updatedAdminDTO); }
public async Task<ServiceResponse<int>> Register(User user, string password) { ServiceResponse<int> serviceResponse = new ServiceResponse<int>(); try { if (await UserExists(user.Username)) { serviceResponse.Success = false; serviceResponse.Message = "User alread exists."; return serviceResponse; } PasswordHashHelper.CreatePasswordHash(password, out byte[] passwordHash, out byte[] passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; await _dataContext.Users.AddAsync(user); await _dataContext.SaveChangesAsync(); serviceResponse.Data = user.Id; return serviceResponse; } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; } return serviceResponse; }
public CompanyDto CreateLoginInfo(CompanyDto compnayDto) { LoginInfoCreate loginInfo = PasswordHashHelper.CreatePasswordHash(compnayDto.Password); compnayDto.AccountDto = new AccountDto(); compnayDto.AccountDto.PasswordSalt = loginInfo.Salt; compnayDto.AccountDto.PasswordHash = loginInfo.PasswordHash; return(compnayDto); }
public bool UpdatePasswordDal(int companyId, string password) { bool bRet = false; try { var company = FirstOrDefault(x => x.CompanyId == companyId); LoginInfoCreate loginInfo = PasswordHashHelper.CreatePasswordHash(password); company.Account.passwordHash = loginInfo.PasswordHash; company.Account.passwordSalt = loginInfo.Salt; Update(company, companyId); bRet = true; } catch (Exception ee) { bRet = false; } return(bRet); }