Example #1
0
        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);
        }
Example #2
0
        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;
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }