public async void AddBasketToDB(BDE bdeChosen, BaseMetroDialog dialog) { var totalPrice = TotalPrice; var key = DateTime.Now.ToString().GetHashCode().ToString("x"); var u = Singleton <User> .GetInstance(); var ticket = new Ticket(key, new DateTime(), bdeChosen, BasketItems, u, u.Account, reductionQuantity * 0.2f); persistance.AddTicket(ticket); await dialogCoordinator.HideMetroDialogAsync(this, dialog); await main.ShowMessageAsync("Encaissement Réussi", $"Un montant de {totalPrice.ToString("C2")} a été encaissé au {bdeChosen.Name} avec le ticket {key}"); ClearBasket(); }
private async void addBasketToDB(BDE bdeChosen) { var totalPrice = baskets.Sum(items => items.quantity * items.ItemProduct.Price); var key = DateTime.Now.ToString().GetHashCode().ToString("x"); var u = Singleton <User> .GetInstance(); var ticket = new Ticket(key, new DateTime(), bdeChosen, baskets, u, u.Account, reduction); persistance.AddTicket(ticket); await dialog.HideCurrentDialog(); var mySettings = new MetroDialogSettings() { AffirmativeButtonText = "Deconnexion", NegativeButtonText = "Retour au vente", AnimateShow = true, AnimateHide = true, }; var controller = await main.ShowProgressAsync("Encaissement Réussi", $"\nUn montant de {ticket.TotalPaid} a été encaissé au {bdeChosen.Name} avec le ticket {key}\n\nAppuyez sur 'Retour au vente'. Sinon dans 10 seconds, vous allez etre deconnecter.", settings : mySettings); controller.SetCancelable(true); double i = 0.0; while (i < 100.0) { double val = (i / 100.0); controller.SetProgress(val); int seconds = (100 - Convert.ToInt32(i)) / 20; controller.SetMessage($"\nUn montant de {ticket.TotalPaid} a été encaissé au {bdeChosen.Name} avec le ticket {key}\n\nRetour au vente dans {seconds} seconds."); if (controller.IsCanceled) { break; //canceled progressdialog auto closes. } i += 1.0; await Task.Delay(50); } await controller.CloseAsync(); Singleton <Event> .GetInstance()?.InvolveClearBasket(); Singleton <Event> .GetInstance()?.InvolveUpdateProduct(); }