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 async Task Handle(CaisseEtatEvent @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); } // Mise à jour de l'état de la caisse suivant le cas. if (@event.etatCaisseCourant == "Ouverte") { long lgTicks = long.Parse(@event.dateEvenement); CaisseSessionItem caisseSessionItem = new CaisseSessionItem() { DateOuverture = new DateTime(lgTicks) }; caisseItem.Sessions.Add(caisseSessionItem); } if (@event.etatCaisseCourant == "DernierClient") { long lgTicks = long.Parse(@event.dateEvenement); CaisseSessionItem caisseSessionItem = caisseItem.Sessions .Where(x => x.DateFermeture == DateTime.MinValue) .SingleOrDefault(); caisseSessionItem.DateDernierClient = new DateTime(lgTicks); } if (@event.etatCaisseCourant == "Ferme") { long lgTicks = long.Parse(@event.dateEvenement); CaisseSessionItem caisseSessionItem = caisseItem.Sessions .Where(x => x.DateFermeture == DateTime.MinValue) .SingleOrDefault(); caisseSessionItem.DateFermeture = new DateTime(lgTicks); } // Sauvegarde. await _caisseService.MajCaisse(caisseItem); }