public async Task WithdrawBalance() { BonusCardBalanceMovementApiModel bonusCardBalanceMovement = new BonusCardBalanceMovementApiModel(); bonusCardBalanceMovement.CardNumber = CardNumber; bonusCardBalanceMovement.NewBalance = Convert.ToDecimal(AmountWithdraw); bonusCardBalanceMovement.WithdrawBalance = true; try { FullInfoBonusCard = await _apiHelper.CardBalanceMovement(bonusCardBalanceMovement); await LoadProducts(); } catch (Exception) { // ErrorMessage = ex.Message; } }
public async Task <FullInfoBonusCardModel> CardBalanceMovement(BonusCardBalanceMovementApiModel newBalance) { using (HttpResponseMessage response = await apiClient.PutAsJsonAsync(ApiRoutes.UpdateCardBalance, newBalance).ConfigureAwait(false)) { var result = await response.Content.ReadAsAsync <FullInfoBonusCard>(); if (response.IsSuccessStatusCode && result.ErrorMessage == null) { _fullInfoBonusCardModel.CardNumber = result.CardNumber; _fullInfoBonusCardModel.Balance = result.Balance; _fullInfoBonusCardModel.ExpirationDate = result.ExpirationDate; _fullInfoBonusCardModel.FirstName = result.FirstName; _fullInfoBonusCardModel.LastName = result.LastName; _fullInfoBonusCardModel.PhoneNumber = result.PhoneNumber; return(_fullInfoBonusCardModel); } else { throw new Exception(response.ReasonPhrase); } } }
public async Task <FullInfoBonusCard> CardBalanceMovement([FromBody] BonusCardBalanceMovementApiModel newBalance) { // Make sure we have a number if (newBalance?.NewBalance == null) { return new FullInfoBonusCard() { ErrorMessage = "Nothing to change" } } ; var errors = new List <string>(); // Get the current bonus card var bonusCard = Context.Clients.Include(p => p.BonusCard).FirstOrDefault(p => p.BonusCard.CardNumber.Equals(newBalance.CardNumber)); // If we have no card if (bonusCard == null) { return new FullInfoBonusCard() { ErrorMessage = "Card not found" } } ; if (!newBalance.WithdrawBalance) { //add to balance bonusCard.BonusCard.Balance += newBalance.NewBalance; bonusCard.BonusCard.ExpirationDate = bonusCard.BonusCard.ExpirationDate.AddMonths(6); } else { if (bonusCard.BonusCard.Balance == null || bonusCard.BonusCard.Balance == 0) { return new FullInfoBonusCard() { ErrorMessage = "Bonus Card has no balance" } } ; if (bonusCard.BonusCard.Balance < newBalance.NewBalance) { return new FullInfoBonusCard() { ErrorMessage = "Bonus Card don't have enought cash for withdraw" } } ; //withwraw from balance bonusCard.BonusCard.Balance -= newBalance.NewBalance; } await Context.SaveChangesAsync(); return(new FullInfoBonusCard() { FirstName = bonusCard.FirstName, LastName = bonusCard.LastName, CardNumber = bonusCard.BonusCard.CardNumber, Balance = bonusCard.BonusCard.Balance, ExpirationDate = bonusCard.BonusCard.ExpirationDate }); } } }