public async Task <CreditCardResponse> DeleteAsync(int id)
        {
            var existingCreditCard = await creditCardRepository.FindById(id);

            if (existingCreditCard == null)
            {
                return(new CreditCardResponse("Credit card not found"));
            }

            try
            {
                creditCardRepository.Remove(existingCreditCard);
                await unitOfWork.CompleteAsync();

                return(new CreditCardResponse(existingCreditCard));
            }
            catch (Exception ex)
            {
                return(new CreditCardResponse($"An error ocurred while deleting the credit card: {ex.Message}"));
            }
        }
Esempio n. 2
0
        public async Task <DefaultResponseModel> RemoveCreditCardAsync(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);
            }
            IReadOnlyCollection <CreditCardData> storedCards = await creditCardRepository.GetByClientAsync(client.Id);

            if (!storedCards.Any((card) => card.Number == creditCardData.Number))
            {
                response.Message = "Client doesn`t have this card";
                return(response);
            }
            creditCardRepository.Remove(creditCardData);
            response.IsSuccessful = true;
            return(response);
        }
Esempio n. 3
0
        public async Task <ResultModel> Remove(int id, int userId)
        {
            var result = new ResultModel();
            var card   = (await _creditCardRepository.GetSome(new BaseFilter()
            {
                UserId = userId
            })).FirstOrDefault(p => p.Id == id);

            if (card is null)
            {
                result.AddNotification(ValidatorMessages.NotFound("Cartão de Crédito"));
                return(result);
            }

            if (_creditCardRepository.HasPayments(id).Result)
            {
                result.AddNotification(ValidatorMessages.CreditCard.BindedWithPayments);
                return(result);
            }

            await _creditCardRepository.Remove(id);

            return(result);
        }