public ActionResult <IEnumerable <CaisseSimpleMv> > Get() { // Construction element de retour. List <CaisseSimpleMv> caisseSimpleMvItems = new List <CaisseSimpleMv>(); // On charge les caisses. IEnumerable <CaisseItem> caisses = _caissesService.DonneCaisses().Result; // On parcours les caisses. foreach (CaisseItem caisseItem in caisses) { // Chargement session de caisse en cours. CaisseSessionItem caisseSessionItem = caisseItem.Sessions .Where(x => x.DateFermeture == DateTime.MinValue) .SingleOrDefault(); // Lecture. string strEtatCaisse = ""; string strClientEnCours = ""; if (caisseSessionItem != null) { // Etat de la caisse. if (caisseSessionItem.DateFermeture != DateTime.MinValue) { strEtatCaisse = "Ferme"; } else if (caisseSessionItem.DateDernierClient != DateTime.MinValue) { strEtatCaisse = "Dernier client"; } else if (caisseSessionItem.DateOuverture != DateTime.MinValue) { strEtatCaisse = "Ouverte"; } // Client en cours. CaisseClientItem caisseClientItem = caisseSessionItem.Clients .Where(x => x.DateFinClient == DateTime.MinValue) .SingleOrDefault(); if (caisseClientItem != null) { strClientEnCours = caisseClientItem.NomClient; } } // Ajout à la liste des résultats. caisseSimpleMvItems.Add(new CaisseSimpleMv() { Numero = caisseItem.Numero, Etat = strEtatCaisse, ClientEnCours = strClientEnCours }); } // Retour. return(Ok(caisseSimpleMvItems)); }
public IActionResult Post([FromBody] CaisseClientItem value) { CaisseClientEvent evenement = new CaisseClientEvent() { dateEvenement = value.dateEvenement, evenementClientTypeCourant = value.evenementClientTypeCourant, nomClient = value.nomClient, numero = value.numero }; _busEvenement.Publier(evenement); return(Ok()); }
public async Task Handle(CaisseClientEvent @event) { // On recherche si la caisse existe. CaisseItem caisseItem = _caisseService.RechercherCaisseUniqueAvecNumero(@event.numero).Result; // La caisse n'existe pas : on la creer. if (caisseItem == null) { caisseItem = new CaisseItem() { Numero = @event.numero }; _caisseService.AjouterCaisse(caisseItem); } // Recherche de la session en cours. long lgTicks = long.Parse(@event.dateEvenement); CaisseSessionItem caisseSessionItem = caisseItem.Sessions .Where(x => x.DateFermeture == DateTime.MinValue) .SingleOrDefault(); // Mise à jour de l'état de la caisse suivant le cas. if (@event.evenementClientTypeCourant == "DebutClient") { CaisseClientItem caisseClientItem = new CaisseClientItem() { NomClient = @event.nomClient, DateDebutClient = new DateTime(lgTicks) }; caisseSessionItem.Clients.Add(caisseClientItem); } if (@event.evenementClientTypeCourant == "FinClient") { CaisseClientItem caisseClientItem = caisseSessionItem.Clients .Where(x => x.DateFinClient == DateTime.MinValue) .SingleOrDefault(); caisseClientItem.DateFinClient = new DateTime(lgTicks); } // Sauvegarde. await _caisseService.MajCaisse(caisseItem); }