private void _printBooking(XpsDocument xpsDoc) { Logger.Log("Démarrage de l'impression"); Thread printThread = new Thread(() => { try { string outDir = ConfigurationManager.AppSettings["XpsOutDir"]; PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue(); string jobName = $"Facture - {_clientEntity.FirstName} {_clientEntity.LastName} - {_clientEntity.BirthDate:dd/MM/yyyy}"; PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(jobName, $"{outDir}flowDocument.xps", false); Logger.Log("Impression terminée"); PromptViewModel successPromptVM = new PromptViewModel("Succés", "L'impression a été effectuée.", false); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(successPromptVM); } catch (PrintJobException pje) { Logger.Log(pje); } }); printThread.SetApartmentState(ApartmentState.STA); printThread.Start(); }
private async Task _saveClient(ClientViewModel clientVM) { try { if (clientVM == null || clientVM.ClientEntity == null) { throw new ArgumentException("L'argument ne peut être null et sa propriété ClientEntity non plus", nameof(clientVM)); } await ClientRepository.Save(clientVM.ClientEntity.Client); string action = "créé"; if (clientVM.ClientEntity.Id != 0) { action = "mis à jour"; } PromptViewModel promptVM = new PromptViewModel("Action réussie", $"Le client {clientVM.ClientEntity.FirstName} {clientVM.ClientEntity.LastName} a été {action}.", false ); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(promptVM); } catch (Exception ex) { Logger.Log(ex); } }
private async Task _saveBooking(SumUpViewModel sumUpVM) { try { bool isNew = _booking.Id == 0; Logger.Log($"Enregistrement de la {(isNew ? "nouvelle " : "")}réservation: {(isNew ? "" : _booking.Id.ToString())}"); bool paymentSet = false; if (_hasPayment && !_hadPayment) { sumUpVM._booking.Payment.Date = DateTime.Now; paymentSet = true; } await BookingRepository.Save(sumUpVM._booking); Logger.Log("Enregistrement de réservation : réussi"); _unlockEditIfNeeded(); if (paymentSet) { _saveBookingCommand.ChangeCanExecute(); } DateRange todayRange = new DateRange { Start = DateTime.Now.Date, End = DateTime.Now.Date.AddDays(1.0d) }; Logger.Log("Enregistrement de réservation : Récupération des chambres disponibles"); List <Room> availableRoomsToday = await RoomRepository.GetAvailablesBetweenAsync(todayRange); if (availableRoomsToday.Count < 5) { Logger.Log("Enregistrement de réservation : Alerte -5 chambres disponibles"); await Mailer.SendAsync("Il y a moins de 5 chambres disponibles"); } PromptViewModel successPromptVM = new PromptViewModel("Succés", "La commande a réussi", false); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(successPromptVM); } catch (Exception ex) { Logger.Log(ex); } }
private async Task _cancelBooking(object arg) { Logger.Log("Annulation de réservation"); try { int bookingPosition = _clientBookingsView.CurrentPosition; if (bookingPosition != -1) { BookingEntity selectedBookingEntity = _clientBookingsView.CurrentItem as BookingEntity; Logger.Log($"Annulation de réservation: ({selectedBookingEntity.Booking.Id})"); selectedBookingEntity.TerminatedDate = DateTime.Now.Date; await BookingRepository.Save(selectedBookingEntity.Booking); Logger.Log($"Annulation de réservation: réussie ({selectedBookingEntity.Booking.Id})"); bool refunded = selectedBookingEntity.State == BookingState.FullyCancelled; if (refunded) { Logger.Log($"Annulation de réservation: remboursement complet ({selectedBookingEntity.Booking.Id})"); PromptViewModel successPromptVM = new PromptViewModel("Succés", "La réservation a été annulée.", false); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(successPromptVM); } else { Logger.Log($"Annulation de réservation: pas de remboursement ({selectedBookingEntity.Booking.Id})"); string complement = selectedBookingEntity.Payment.Ammount > 0d ? "ne sera pas remboursée" : "reste due"; PromptViewModel successPromptVM = new PromptViewModel("Succés", $"La réservation a été annulée, mais {complement}.", false); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(successPromptVM); } } } catch (Exception ex) { Logger.Log(ex); } }
private bool _checkRoomCapacityWithBabies(BookingViewModel bookingVM) { bool success = false; if (_clientEntity.Bookings != null && _clientEntity.Bookings.Count > 0) { int babiesRooms, totalAdultCapacity; _countBabiesAndAdultsCapacity(out babiesRooms, out totalAdultCapacity); if (babiesRooms < _booking.BabiesCount || totalAdultCapacity < _booking.AdultsCount) { PromptViewModel insufficientRoomsPromptVM = new PromptViewModel("Erreur", $"Il n'y a pas assez de chambre pour accueillir {_booking.BabiesCount} bébés et {_booking.AdultsCount} adultes.", false ); ViewDriverProvider.ViewDriver.ShowView <PromptViewModel>(insufficientRoomsPromptVM); } else { success = true; } } return(success); }
private void _printBooking(XpsDocument xpsDoc) { Logger.Log("Démarrage de l'impression"); Thread printThread = new Thread(() => { try { string outDir = ConfigurationManager.AppSettings["XpsOutDir"]; PrintQueue defaultPrintQueue = LocalPrintServer.GetDefaultPrintQueue(); string jobName = $"Facture - {_clientEntity.FirstName} {_clientEntity.LastName} - {_clientEntity.BirthDate:dd/MM/yyyy}"; PrintSystemJobInfo xpsPrintJob = defaultPrintQueue.AddJob(jobName, $"{outDir}flowDocument.xps", false); Logger.Log("Impression terminée"); PromptViewModel successPromptVM = new PromptViewModel("Succés", "L'impression a été effectuée.", false); ViewDriverProvider.ViewDriver.ShowView<PromptViewModel>(successPromptVM); } catch (PrintJobException pje) { Logger.Log(pje); } }); printThread.SetApartmentState(ApartmentState.STA); printThread.Start(); }
private async Task _saveBooking(SumUpViewModel sumUpVM) { try { bool isNew = _booking.Id == 0; Logger.Log($"Enregistrement de la {(isNew ? "nouvelle " : "")}réservation: {(isNew ? "" : _booking.Id.ToString())}"); bool paymentSet = false; if (_hasPayment && !_hadPayment) { sumUpVM._booking.Payment.Date = DateTime.Now; paymentSet = true; } await BookingRepository.Save(sumUpVM._booking); Logger.Log("Enregistrement de réservation : réussi"); _unlockEditIfNeeded(); if (paymentSet) { _saveBookingCommand.ChangeCanExecute(); } DateRange todayRange = new DateRange { Start = DateTime.Now.Date, End = DateTime.Now.Date.AddDays(1.0d) }; Logger.Log("Enregistrement de réservation : Récupération des chambres disponibles"); List<Room> availableRoomsToday = await RoomRepository.GetAvailablesBetweenAsync(todayRange); if(availableRoomsToday.Count < 5) { Logger.Log("Enregistrement de réservation : Alerte -5 chambres disponibles"); await Mailer.SendAsync("Il y a moins de 5 chambres disponibles"); } PromptViewModel successPromptVM = new PromptViewModel("Succés", "La commande a réussi", false); ViewDriverProvider.ViewDriver.ShowView<PromptViewModel>(successPromptVM); } catch(Exception ex) { Logger.Log(ex); } }
private async Task _cancelBooking(object arg) { Logger.Log("Annulation de réservation"); try { int bookingPosition = _clientBookingsView.CurrentPosition; if (bookingPosition != -1) { BookingEntity selectedBookingEntity = _clientBookingsView.CurrentItem as BookingEntity; Logger.Log($"Annulation de réservation: ({selectedBookingEntity.Booking.Id})"); selectedBookingEntity.TerminatedDate = DateTime.Now.Date; await BookingRepository.Save(selectedBookingEntity.Booking); Logger.Log($"Annulation de réservation: réussie ({selectedBookingEntity.Booking.Id})"); bool refunded = selectedBookingEntity.State == BookingState.FullyCancelled; if (refunded) { Logger.Log($"Annulation de réservation: remboursement complet ({selectedBookingEntity.Booking.Id})"); PromptViewModel successPromptVM = new PromptViewModel("Succés", "La réservation a été annulée.", false); ViewDriverProvider.ViewDriver.ShowView<PromptViewModel>(successPromptVM); } else { Logger.Log($"Annulation de réservation: pas de remboursement ({selectedBookingEntity.Booking.Id})"); string complement = selectedBookingEntity.Payment.Ammount > 0d ? "ne sera pas remboursée" : "reste due"; PromptViewModel successPromptVM = new PromptViewModel("Succés", $"La réservation a été annulée, mais {complement}.", false); ViewDriverProvider.ViewDriver.ShowView<PromptViewModel>(successPromptVM); } } } catch (Exception ex) { Logger.Log(ex); } }
private bool _checkRoomCapacityWithBabies(BookingViewModel bookingVM) { bool success = false; if (_clientEntity.Bookings != null && _clientEntity.Bookings.Count > 0) { int babiesRooms, totalAdultCapacity; _countBabiesAndAdultsCapacity(out babiesRooms, out totalAdultCapacity); if (babiesRooms < _booking.BabiesCount || totalAdultCapacity < _booking.AdultsCount) { PromptViewModel insufficientRoomsPromptVM = new PromptViewModel("Erreur", $"Il n'y a pas assez de chambre pour accueillir {_booking.BabiesCount} bébés et {_booking.AdultsCount} adultes.", false ); ViewDriverProvider.ViewDriver.ShowView<PromptViewModel>(insufficientRoomsPromptVM); } else { success = true; } } return success; }