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}")); } }
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); }
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); }