public Result UpdateCustomer(EditedCustomer editedCustomer, IRepositoriesHandler repositoriesHandler, IPasswordService passwordService, IResourcesProvider resourcesProvider) { var result = new Result(); var isLoginExist = repositoriesHandler.СustomerRepository.GetCollection().Any(x => x.Login == editedCustomer.Login && x.CustomerID != editedCustomer.CustomerID); if (isLoginExist) { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("LogExist"); return(result); } if (editedCustomer.CustomerID == 0) { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("CusIdNull"); return(result); } if (!IsCutomerDataValid(editedCustomer.Login, editedCustomer.CurrentPassword)) { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("NoLogPass"); return(result); } var storedCustomer = repositoriesHandler.СustomerRepository.GetById(editedCustomer.CustomerID); if (passwordService.ComparePasswords(editedCustomer.CurrentPassword, storedCustomer.Password)) { storedCustomer.CustomerID = editedCustomer.CustomerID; storedCustomer.FirstName = editedCustomer.FirstName; storedCustomer.LastName = editedCustomer.LastName; storedCustomer.Login = editedCustomer.Login; storedCustomer.Password = string.IsNullOrEmpty(editedCustomer.NewPassword) ? storedCustomer.Password : passwordService.HashPassword(editedCustomer.NewPassword); repositoriesHandler.СustomerRepository.Update(storedCustomer); result.Success = true; result.SuccessMessage = resourcesProvider.GetGeneralResource("CusUpdt"); return(result); } else { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("PassDontMatch"); return(result); } }
public async Task <AccountJwtToken> LoginAccount(AccountSignIn accountSignIn) { var accountRepo = _unitOfWork.GetRepository <Models.Entities.Account>(); //Check how many login attempts ip have var count = await CountLoginAttempt(accountSignIn); //TODO Config instead of value if (count <= 6) { //Get account by username var account = await accountRepo.GetFirstOrDefaultAsync(predicate : a => a.UserName == accountSignIn.UserName); if (account == null) { //If account did not exists try to get with email account = await accountRepo.GetFirstOrDefaultAsync( predicate : a => a.Email == accountSignIn.UserName); } //Check if account is verified if (account.Verified) { //Compare account password with database if (_passwordService.ComparePasswords(accountSignIn.Password, account.Password, account.Salt)) { //Return the created token for account return(CreateJwtToken(account)); } } //Create login attempt await CreateLoginAttempt(accountSignIn); return(null); } //Create login attempt await CreateLoginAttempt(accountSignIn); return(null); }
public async Task <SessionKey> AuthenticateUser(CustomerSignin request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } Customer cust; try { //check if customer exists and fetch it if it does cust = await customerRepo.FindAsync(request.email).ConfigureAwait(true); } catch (Exception) { throw; } if (cust == null) { throw new ArgumentException($"a customer with the email {request.email} does not exist"); } SessionKey key = null; try { //check if customer password matches if (passwordService.ComparePasswords(request.password, cust.GetPassword(), cust.GetSalt())) { //create new session key and return it to the requestee key = await sessionKeyRepo.InsertAsync(new SessionKeyParams(request.email)).ConfigureAwait(true); } } catch (Exception) { throw; } return(key); }
public Result UpdateCreditCard(EditedCreditCard editedCreditCard, IRepositoriesHandler repositoriesHandler, IPasswordService passwordService, IResourcesProvider resourcesProvider) { var result = new Result(); var isCardNumExist = repositoriesHandler.СreditCardRepository.GetCollection().Any(x => x.CardNumber == editedCreditCard.CardNumber && x.CreditCardID != editedCreditCard.CreditCardID); if (isCardNumExist) { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("CCNumExist"); return(result); } if (!IsCreditCardDataValid(editedCreditCard.CardNumber, editedCreditCard.CurrentPIN)) { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("NoNumPin"); return(result); } var storedCreditCard = repositoriesHandler.СreditCardRepository.GetById(editedCreditCard.CreditCardID); if (passwordService.ComparePasswords(editedCreditCard.CurrentPIN, storedCreditCard.PIN)) { storedCreditCard.CardNumber = editedCreditCard.CardNumber; storedCreditCard.Amount = editedCreditCard.Amount; storedCreditCard.PIN = string.IsNullOrEmpty(editedCreditCard.NewPIN) ? storedCreditCard.PIN : passwordService.HashPassword(editedCreditCard.NewPIN); repositoriesHandler.СreditCardRepository.Update(storedCreditCard); result.Success = true; result.SuccessMessage = resourcesProvider.GetGeneralResource("CCUpdt"); return(result); } else { result.Success = false; result.Error = resourcesProvider.GetGeneralResource("PinsDontMatch"); return(result); } }