private List <ComposizioneMezzi> GetComposizioneMezziPrenotati(List <ComposizioneMezzi> composizioneMezzi, string codiceSede) { SetMezzoPrenotatoCommand command = new SetMezzoPrenotatoCommand(); var mezziPrenotati = _getMezziPrenotati.Get(codiceSede); bool AggiornaListaMezziPrenotati = false; foreach (var mezzo in mezziPrenotati) { if (mezzo.IstantePrenotazione != null) { var differenza = DateTime.Now - mezzo.IstantePrenotazione; if (differenza.Value.TotalSeconds > 15) { command.MezzoPrenotato = mezzo; command.MezzoPrenotato.SbloccaMezzo = true; _setMezzoPrenotato.Set(command); AggiornaListaMezziPrenotati = true; } } } if (AggiornaListaMezziPrenotati) { mezziPrenotati = _getMezziPrenotati.Get(codiceSede); } foreach (var composizione in composizioneMezzi) { if (mezziPrenotati.Find(x => x.CodiceMezzo.Equals(composizione.Mezzo.Codice)) != null) { composizione.IstanteScadenzaSelezione = mezziPrenotati.Find(x => x.CodiceMezzo.Equals(composizione.Mezzo.Codice)).IstanteScadenzaSelezione; if (composizione.Mezzo.Stato.Equals("In Sede")) { composizione.Mezzo.Stato = mezziPrenotati.Find(x => x.CodiceMezzo.Equals(composizione.Mezzo.Codice)).StatoOperativo; } composizione.Mezzo.IdRichiesta = mezziPrenotati.Find(x => x.CodiceMezzo.Equals(composizione.Mezzo.Codice)).CodiceRichiesta; } } return(composizioneMezzi); }
/// <summary> /// Metodo della classe che si occupa di settare il mezzo come prenotato /// </summary> /// <param name="command">l'oggetto mezzo prenotato</param> public void Handle(SetMezzoPrenotatoCommand command) { _setMezzoPrenotato.Set(command); }