Пример #1
0
        public IHttpActionResult EditCreditCard([FromBody] EditedCreditCard editedCreditCard)
        {
            var result = this.serviceHandler.CreditCardService.UpdateCreditCard(editedCreditCard, this.repositoriesHandler, this.serviceHandler.PasswordService, this.resourcesProvider);

            if (result.Success)
            {
                return(Ok(result.SuccessMessage));
            }
            else
            {
                return(Content(HttpStatusCode.ExpectationFailed, result.Error));
            }
        }
Пример #2
0
        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);
            }
        }