public CashDispenseResultNewViewModel() { Task.Run(async() => { var cashDispenseResult = new CashDispenseResult(); cashDispenseResult.CashDispenseDue = await base.CashDispenseDueCloudDataStore.GetItemAsync(); cashDispenseResult.CashHandedOver = new Cash(); cashDispenseResult.CashHandedOver.Denomination = cashDispenseResult.CashDispenseDue.AmountOwed.Denomination; this.NewCashDispenseResult = cashDispenseResult; }); }
private static decimal Calc(decimal number, string denomination, CashDispenseResult cashDispenseResult, decimal runningDifference) { var randNoteResults = runningDifference / number; if (randNoteResults >= 1) { ChangeResult changeResult = new ChangeResult(); changeResult.Cash = new Cash(); changeResult.Cash.Denomination = denomination; changeResult.Cash.Number = number.ToString(); changeResult.Quantity = (short)(Math.Abs(randNoteResults)); cashDispenseResult.ChangeResults.Add(changeResult); runningDifference -= (decimal)changeResult.Quantity * number; } return(runningDifference); }
public async Task <bool> AddItemAsync(CashDispenseResult item) { if (item == null || !CrossConnectivity.Current.IsConnected) { return(false); } JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings(); jsonSerializerSettings.ObjectCreationHandling = ObjectCreationHandling.Replace; jsonSerializerSettings.TypeNameHandling = TypeNameHandling.All; jsonSerializerSettings.TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple; jsonSerializerSettings.Formatting = Formatting.Indented; jsonSerializerSettings.FloatFormatHandling = FloatFormatHandling.String; var serializedItem = JsonConvert.SerializeObject(item, item.GetType(), jsonSerializerSettings); var response = await client.PostAsync($"api/CashDispenseResult", new StringContent(serializedItem, Encoding.UTF8, "application/json")); return(response.IsSuccessStatusCode ? true : false); }
public IActionResult PostCashDispenseResult([FromBody] CashDispenseResult cashDispenseResult) { if (decimal.Parse(cashDispenseResult.CashHandedOver.Number) < decimal.Parse(cashDispenseResult.CashDispenseDue.AmountOwed.Number)) { return(BadRequest("The amount you are paying is less than the amount owed")); } //CashDispenseResult cashDispenseResult = new CashDispenseResult(); var difference = decimal.Parse(cashDispenseResult.CashHandedOver.Number) - decimal.Parse(cashDispenseResult.CashDispenseDue.AmountOwed.Number); var runningDifference = difference; if (runningDifference > 0) { runningDifference = Calc(100.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(50.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(20.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(10.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(5.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(2.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(1.00m, "R", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(0.50m, "cents", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(0.20m, "cents", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(0.25m, "cents", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(0.10m, "cents", cashDispenseResult, runningDifference); } if (runningDifference > 0) { runningDifference = Calc(0.05m, "cents", cashDispenseResult, runningDifference); } _cashDispenseResultRepository.Add(cashDispenseResult); return(Ok(cashDispenseResult)); }