예제 #1
0
        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);
 }