Beispiel #1
0
 /// <summary>
 ///   Costruttore della classe
 /// </summary>
 /// <param name="codiceUnitaOperativa">
 ///   L'unità operativa con cui vengono etichettate le richieste generate
 /// </param>
 /// <param name="getMezziInServizioPerUnitaOperativa">
 ///   Servizio per il recupero dei mezzi in servizio
 /// </param>
 /// <param name="dataMin">
 ///   L'estremo inferiore dell'intervallo in cui le richieste possono essere generate
 /// </param>
 /// <param name="dataMax">
 ///   L'estremo superiore dell'intervallo in cui le richieste possono essere generate
 /// </param>
 /// <param name="richiesteMedieAlGiorno">Numero medio di richieste generate in ogni giorno</param>
 /// <param name="mediaSecondiPartenzaDallaSedeSuccessive">
 ///   Il numero medio di secondi dopo i quali una partenza ritardata (cioè successiva alle
 ///   prime immediatamente inviate) esce dalla sede
 /// </param>
 /// <param name="mediaSecondiArrivoSulPosto">
 ///   Numero medio di secondi di durata del viaggio di un mezzo verso il luogo del sinistro
 /// </param>
 /// <param name="mediaSecondiDurataIntervento">
 ///   Numero medio di secondi di durata della permanenza di un mezzo sul luogo del sinistro
 /// </param>
 /// <param name="mediaSecondiRientroInSede">
 ///   Numero medio di secondi di durata del viaggio di rientro di un mezzo verso la sede (se
 ///   non viene rediretto su altra richiesta)
 /// </param>
 /// <param name="pesiNumeroMezziPartecipanti">
 ///   Pesi del numero di mezzi partecipanti ad un intervento (per es. se i pesi sono[0.75,
 ///   0.20, 0.05] significa che al 75% un intervento ha un solo mezzo, al 20% ne ha due, al
 ///   5% ne ha tre).
 /// </param>
 /// <param name="generatoreCoordinateInterventoPerUO">
 ///   Servizio di generazione fake delle coordinate dell'intervento
 /// </param>
 public GeneratoreRichieste(
     string codiceUnitaOperativa,
     IGetMezziInServizioPerUnitaOperativa getMezziInServizioPerUnitaOperativa,
     DateTime dataMin,
     DateTime dataMax,
     int richiesteMedieAlGiorno,
     int mediaSecondiPartenzaDallaSedeSuccessive,
     int mediaSecondiArrivoSulPosto,
     int mediaSecondiDurataIntervento,
     int mediaSecondiRientroInSede,
     float[] pesiNumeroMezziPartecipanti,
     GeneratoreCoordinateInterventoPerUO generatoreCoordinateInterventoPerUO)
 {
     this.codiceUnitaOperativa = codiceUnitaOperativa;
     this.getMezziInServizioPerUnitaOperativa = getMezziInServizioPerUnitaOperativa ?? throw new ArgumentNullException(nameof(getMezziInServizioPerUnitaOperativa));
     this.dataMin = dataMin;
     this.dataMax = dataMax;
     this.richiesteMedieAlGiorno = richiesteMedieAlGiorno;
     this.mediaSecondiPartenzaDallaSedeSuccessive = mediaSecondiPartenzaDallaSedeSuccessive;
     this.mediaSecondiArrivoSulPosto          = mediaSecondiArrivoSulPosto;
     this.mediaSecondiDurataIntervento        = mediaSecondiDurataIntervento;
     this.mediaSecondiRientroInSede           = mediaSecondiRientroInSede;
     this.pesiNumeroMezziPartecipanti         = pesiNumeroMezziPartecipanti;
     this.generatoreCoordinateInterventoPerUO = generatoreCoordinateInterventoPerUO ?? throw new ArgumentNullException(nameof(generatoreCoordinateInterventoPerUO));
 }
Beispiel #2
0
        /// <summary>
        ///   Costruttore della classe
        /// </summary>
        /// <param name="numeroMezzi">Il numero dei mezzi costituente il parco</param>
        /// <param name="codiceUnitaOperativa">
        ///   L'unità operativa alla quale appartengono i mezzi (l'etichetta viene usata per creare
        ///   il codice di un mezzo)
        /// </param>
        public ParcoMezzi(IGetMezziInServizioPerUnitaOperativa getMezziInServizioPerUnitaOperativa,
                          string codiceUnitàOperativa)
        {
            var pinNodo = new PinNodo(codiceUnitàOperativa, true);
            var mezzi   = getMezziInServizioPerUnitaOperativa.Get(new[] { pinNodo });

            this.mezzi = mezzi.Select(m => new MezzoInSimulazione(m)).ToArray();
        }