Exemple #1
0
        public IEnumerable <RichiestaAssistenza> Genera()
        {
            var getUnitaOperativaRadice                  = new GetUnitaOperativaRadice_Con_Dir_Com_Dist();
            var espandiPinNodoSuOrganigramma             = new EspandiPinNodoSuOrganigramma(getUnitaOperativaRadice);
            var getMezziInServizioPerUnitaOperativa_Fake = new GetMezziInServizioPerUnitaOperativa_Fake(espandiPinNodoSuOrganigramma);
            var generatoreCoordinateIntervento           = new GeneratoreCoordinateInterventoPerUO();

            foreach (var codiceUo in this.codiciUnitaOperative)
            {
                var generatoreFakeRichieste = new GeneratoreRichiesteFake.GeneratoreRichieste(
                    codiceUo,
                    getMezziInServizioPerUnitaOperativa_Fake,
                    DateTime.UtcNow.AddDays(this.giorniIndietro),
                    DateTime.UtcNow,
                    50,
                    45 * 60,
                    15 * 60,
                    50 * 60,
                    25 * 60,
                    new[] { 0.70f, 0.23f, 0.05f, 0.02f },
                    generatoreCoordinateIntervento
                    );

                var richieste = generatoreFakeRichieste.Genera();
                foreach (var richiesta in richieste)
                {
                    yield return(richiesta);
                }
            }
        }
Exemple #2
0
        /// <summary>
        ///   Questo metodo utilizza la classe <see cref="GeneratoreRichieste" /> per generare una
        ///   serie di interventi fake.
        /// </summary>
        /// <param name="args">Inutilizzato</param>
        private static void Main(string[] args)
        {
            ConfigureLog();

            var getUnitaOperativaRadice                  = new GetUnitaOperativaRadice_Con_Dir_Com_Dist();
            var espandiPinNodoSuOrganigramma             = new EspandiPinNodoSuOrganigramma(getUnitaOperativaRadice);
            var getMezziInServizioPerUnitaOperativa_Fake = new GetMezziInServizioPerUnitaOperativa_Fake(espandiPinNodoSuOrganigramma);
            var generatoreCoordinateIntervento           = new GeneratoreCoordinateInterventoPerUO();
            var generatoreFakeRichieste                  = new GeneratoreRichieste(
                "TO.1000",
                getMezziInServizioPerUnitaOperativa_Fake,
                DateTime.UtcNow.AddDays(-5),
                DateTime.UtcNow,
                50,
                45 * 60,
                15 * 60,
                50 * 60,
                25 * 60,
                new[] { 0.70f, 0.23f, 0.05f, 0.02f },
                generatoreCoordinateIntervento
                );

            var richieste = generatoreFakeRichieste.Genera().ToArray();

            Log.Debug(JsonConvert.SerializeObject(richieste));
        }
        public void TraIMezziCheNonSonoDelComandCiEUnaEdUnaSolaAps()
        {
            var generatore = new GetMezziInServizioPerUnitaOperativa_Fake(this.espandiPinNodoSuOrganigramma_mock);

            const string codice = "RM.1001";
            var          mezzi  = generatore.Get(new[] { new PinNodo(codice, false) });

            var numeroAPS = mezzi.Count(m => m.Genere == "APS");

            Assert.That(numeroAPS, Is.EqualTo(1));
        }
        public void TraIMezziDelComandoCiEAlmenoUnaApsUnaEdUnaSolaAbEUnaEdUnaSolaAs()
        {
            var generatore = new GetMezziInServizioPerUnitaOperativa_Fake(this.espandiPinNodoSuOrganigramma_mock);

            const string codice = "RM.1000";
            var          mezzi  = generatore.Get(new[] { new PinNodo(codice, false) });

            var numeroAPS = mezzi.Count(m => m.Genere == "APS");
            var numeroAB  = mezzi.Count(m => m.Genere == "AB");
            var numeroAS  = mezzi.Count(m => m.Genere == "AS");

            Assert.Multiple(() =>
            {
                Assert.That(numeroAPS, Is.GreaterThanOrEqualTo(1));
                Assert.That(numeroAB, Is.EqualTo(1));
                Assert.That(numeroAS, Is.EqualTo(1));
            });
        }
Exemple #5
0
        /// <summary>
        ///   Questo metodo utilizza la classe <see cref="GeneratoreRichieste" /> per generare una
        ///   serie di interventi fake.
        /// </summary>
        /// <param name="args">Inutilizzato</param>
        private static void Main(string[] args)
        {
            ConfigureLog();

            var DBContext   = new DbContext("mongodb://localhost:27017", "sovvf");
            var Salvataggio = new SaveRichiesta(DBContext);

            var getUnitaOperativaRadice                  = new GetUnitaOperativaRadice_Con_Dir_Com_Dist();
            var espandiPinNodoSuOrganigramma             = new EspandiPinNodoSuOrganigramma(getUnitaOperativaRadice);
            var getMezziInServizioPerUnitaOperativa_Fake = new GetMezziInServizioPerUnitaOperativa_Fake(espandiPinNodoSuOrganigramma);
            var generatoreCoordinateIntervento           = new GeneratoreCoordinateInterventoPerUO();
            var generatoreFakeRichieste                  = new GeneratoreRichieste(
                "RM.1000",
                getMezziInServizioPerUnitaOperativa_Fake,
                DateTime.UtcNow.AddDays(-5),
                DateTime.UtcNow,
                50,
                45 * 60,
                15 * 60,
                50 * 60,
                25 * 60,
                new[] { 0.70f, 0.23f, 0.05f, 0.02f },
                generatoreCoordinateIntervento
                );

            var richieste = generatoreFakeRichieste.Genera().ToArray();

            int indice = 00000;
            int anno   = DateTime.Now.Year;

            foreach (var richiesta in richieste)
            {
                if (richiesta.Partenze.Count > 0)
                {
                    int    ultimeDueCifreAnno = anno % 100;
                    int    maxNumero          = indice;
                    string returnFormatString = string.Format("{0}{1}{2:D5}", richiesta.CodSOCompetente.Split('.')[0], ultimeDueCifreAnno, maxNumero);
                    string codiceMezzo        = "";
                    string codiceFonte        = "";

                    if (richiesta.Eventi.ToList().Find(x => x is UscitaPartenza) != null)
                    {
                        codiceMezzo = ((UscitaPartenza)richiesta.Eventi.ToList().Find(x => x is UscitaPartenza)).CodiceMezzo;
                    }
                    if (richiesta.Eventi.ToList().Find(x => x is InizioPresaInCarico) != null)
                    {
                        codiceFonte = ((InizioPresaInCarico)richiesta.Eventi.ToList().Find(x => x is InizioPresaInCarico)).CodiceFonte;
                    }
                    if (!string.IsNullOrWhiteSpace(codiceFonte))
                    {
                        richiesta.UtPresaInCarico = new List <string> {
                            codiceFonte
                        }
                    }
                    ;

                    foreach (var evento in richiesta.Eventi)
                    {
                        if (evento is ComposizionePartenze)
                        {
                            ((ComposizionePartenze)evento).Partenza   = generatoreFakeRichieste.GeneraListaPartenze(richiesta.CodSOCompetente.Split('.')[0], codiceMezzo).First();
                            ((ComposizionePartenze)evento).Componenti = new List <ComponentePartenza>().ToHashSet();
                        }
                    }

                    richiesta.CodRichiesta = returnFormatString;
                }

                Salvataggio.Save(richiesta);
                indice++;
            }

            //Log.Debug(JsonConvert.SerializeObject(richieste));
        }