public async void DeleteBill(int id) { await BillService.DeleteAsync(id); var item = Bills.Single(b => b.Id == id); Bills.Remove(item); StateHasChanged(); }
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (!BillMenuOpened) { ListBox list = (ListBox)sender; if (list.SelectedIndex > -1) { BillMenuOpened = true; DBConnection.Bill BillItem = (DBConnection.Bill)list.SelectedItem; Bill_Overview BO = new Bill_Overview(_DBConnection, BillItem); BO.Owner = this; BO.ShowDialog(); switch (BO.HasChanges) { case BillCloseOption.Cancel: break; case BillCloseOption.Delete: Bills.Remove(BillItem); _DBConnection.DB_RemoveBill(BillItem.Id); RefreshBillListItems(); CalculateReviews(); _DBConnection.RefreshTemplates(); break; case BillCloseOption.Save: _DBConnection.DB_UpdateBill(BO.Bill); for (int i = 0; i < Bills.Count; i++) { if (Bills[i] == BillItem) { Bills[i] = BO.Bill; break; } } RefreshBillListItems(); CalculateReviews(); _DBConnection.RefreshTemplates(); break; } list.SelectedIndex = -1; } } else { BillMenuOpened = !BillMenuOpened; } }
public async void DeleteBill() { var response = await Dal.DeleteAsync(RestUrl + _selectedBill.IdBill); if (response.IsSuccessStatusCode) { Revenue -= _selectedBill.Car.Price - _selectedBill.Discount; RaisePropertyChanged("Revenue"); Bills.Remove(_selectedBill); RaisePropertyChanged("Calculate"); RaisePropertyChanged("DeleteBill"); SelectedBill = new Bill(); } }
public void DeleteBill(int billId) { var billingItems = BillingItems.Where(b => b.BillId == billId).ToList(); if (!billingItems.Any()) { BillingItems.RemoveRange(billingItems); } var bill = Bills.Single(b => b.BillId == billId); if (bill == null) { throw new Exception($"Not able find the bill for billId {billId}"); } Bills.Remove(bill); SaveChanges(); }
/// <summary> /// Withdraw an amount of money from the register. /// </summary> /// <param name="amount">Amount of money to be withdrawn.</param> /// <returns>Response message for display to user.</returns> public Response Withdraw(int amount) { Response response = new Response(); if (amount > 0) { // amount = 100 * (amount / 100) + 50 * (amount / 50) + 20 * (amount / 20) + 10 * (amount / 10) + 5 * (amount / 5) + 1 * (amount / 1) List <BillBase> sieve = Bills.OrderByDescending(item => item.Value).ToList(); if (sieve.Count == 0) { response.Message += "\n"; response.Message += "Failure: Insufficient Funds"; response.Message += "\n"; return(response); } int remainingAmount = amount; List <BillBase> withdraw = new List <BillBase>(); while (remainingAmount != 0) { BillBase biggestBill = sieve.FirstOrDefault(); if (biggestBill != null) { if (remainingAmount - biggestBill.Value < 0) { sieve.RemoveAll(item => item.Code == biggestBill.Code); } else { withdraw.Add(biggestBill); sieve.Remove(biggestBill); remainingAmount -= biggestBill.Value; } } else { response.Message += "\n"; response.Message += "Failure: Insufficient Funds"; response.Message += "\n"; return(response); } } if (remainingAmount == 0) { response.Message += "\n"; response.Message += "Success: Dispensed $" + Convert.ToString(amount); response.Message += "\n"; foreach (BillBase bill in withdraw) { Bills.Remove(bill); } response.Message += FullInventory().Message; } } return(response); }