Beispiel #1
0
        public async Task <DefaultResponseModel> AddCreditCardAsync(string token, CreditCardData creditCardData)
        {
            DefaultResponseModel response = new DefaultResponseModel {
                IsSuccessful = false, Message = string.Empty
            };
            ClientData client = await sessionHandler.GetClientAsync(token);

            if (client == null)
            {
                response.Message = "Unauthorized user";
                return(response);
            }
            CreditCardData cardInDatabase = await creditCardRepository.GetByNumberAsync(creditCardData.Number);

            if (cardInDatabase != null)
            {
                response.Message = "This card already registered in the database";
                return(response);
            }
            creditCardData.ClientId = client.Id;
            creditCardData          = await creditCardRepository.AddAsync(creditCardData);

            if (creditCardData.Id > 0)
            {
                response.IsSuccessful = true;
            }
            return(response);
        }
        public async Task <CreditCardResponse> SaveAsync(int userId, CreditCard creditCard)
        {
            var existingUser = await userRepository.FindById(userId);

            if (existingUser == null)
            {
                return(new CreditCardResponse("User not found"));
            }

            try
            {
                creditCard.UserId = userId;
                await creditCardRepository.AddAsync(creditCard);

                await unitOfWork.CompleteAsync();

                return(new CreditCardResponse(creditCard));
            }
            catch (Exception ex)
            {
                return(new CreditCardResponse($"An error ocurred while saving the credit card: {ex.Message}"));
            }
        }
Beispiel #3
0
        public async Task AddAsync(CreditCardAddModel model)
        {
            await _creditCardRepository.AddAsync(CreditCardFactory.Create(model, _userId));

            await _unitOfWork.SaveChangesAsync();
        }