Example #1
0
 /// <summary>
 ///   Costruttore della classe
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public ArrivoSulPosto(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte, "ArrivoSulPosto")
 {
 }
Example #2
0
        public void UnaRichiestaConM1PartitoEdM2ArrivatoRestituisceIDueStatiCorrettamente()
        {
            var richiesta = new RichiestaAssistenza();

            new ComposizionePartenze(richiesta, DateTime.Now, "fonte", false)
            {
                Componenti = new HashSet <ComponentePartenza>()
                {
                    new ComponentePartenza("XXX", "M1"),
                    new ComponentePartenza("YYY", "M2"),
                }
            };
            new UscitaPartenza(richiesta, "M1", DateTime.Now, "fonte");
            new UscitaPartenza(richiesta, "M2", DateTime.Now, "fonte");
            new ArrivoSulPosto(richiesta, "M2", DateTime.Now, "fonte");

            var mezziCoinvolti = richiesta.MezziCoinvolti;

            Assert.Multiple(() =>
            {
                Assert.That(mezziCoinvolti, Has.Count.EqualTo(2));
                Assert.That(mezziCoinvolti["M1"], Is.InstanceOf <SO115App.API.Models.Classi.Soccorso.Mezzi.StatiMezzo.InViaggio>());
                Assert.That(mezziCoinvolti["M2"], Is.InstanceOf <SO115App.API.Models.Classi.Soccorso.Mezzi.StatiMezzo.SulPosto>());
            });
        }
Example #3
0
 /// <summary>
 ///   Costruttore della classe.
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public PartenzaInRientro(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte)
 {
 }
Example #4
0
 /// <summary>
 ///   Costruttore della classe. A seguito della chiamata, la richiesta risulta aperta.
 /// </summary>
 /// <param name="richiesta">La richiesta alla quale l'evento deve essere aggiunto</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public RichiestaPresidiata(
     RichiestaAssistenza richiesta,
     DateTime istante,
     string codiceFonte) : base(richiesta, istante, codiceFonte, "RichiestaPresidiata")
 {
     richiesta.IstanteChiusura = null;
 }
Example #5
0
 /// <summary>
 ///   Costruttore della classe
 /// </summary>
 /// <param name="richiesta">La richiesta a cui appartiene l'evento</param>
 /// <param name="codiceMezzo">Il codice mezzo relativo all'evento</param>
 /// <param name="istante">L'istante in cui l'evento si verifica</param>
 /// <param name="codiceFonte">La fonte informativa dell'evento</param>
 public RevocaPerFuoriServizio(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte)
 {
 }
Example #6
0
 /// <summary>
 ///   Costruttore della classe.
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public UscitaPartenza(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte, "UscitaPartenza")
 {
 }
        public void Handle(MessaInLavorazioneCommand command)
        {
            RichiestaAssistenza richiesta = _getRichiestaById.Get(command.IdRichiesta);
            Utente         utente         = _getUtenteById.GetUtenteById(command.IdUtente);
            AttivitaUtente attivita       = new AttivitaUtente();

            attivita.IdUtente           = utente.Id;
            attivita.Nominativo         = utente.Nome + " " + utente.Cognome;
            attivita.DataInizioAttivita = DateTime.UtcNow;

            if (richiesta.ListaUtentiInLavorazione != null)
            {
                richiesta.ListaUtentiInLavorazione.Add(attivita);
            }
            else
            {
                richiesta.ListaUtentiInLavorazione = new List <AttivitaUtente>();
                richiesta.ListaUtentiInLavorazione.Add(attivita);
            }

            if (command.Chiamata.ListaUtentiInLavorazione != null)
            {
                command.Chiamata.ListaUtentiInLavorazione.Add(attivita);
            }
            else
            {
                command.Chiamata.ListaUtentiInLavorazione = new List <AttivitaUtente>();
                command.Chiamata.ListaUtentiInLavorazione.Add(attivita);
            }

            richiesta.Id = richiesta.Codice;

            this._upDateRichiestaAssistenza.UpDate(richiesta);
        }
Example #8
0
 /// <summary>
 ///   Costruttore della classe.
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public PartenzaRientrata(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte, "MezzoRientrato")
 {
 }
        public void UnMezzoRientratoEPoiDiNuovoUscitoRestituisceLoStatoInViaggio()
        {
            var processoreStato = new ProcessoreStato();
            var richiesta1      = new RichiestaAssistenza();
            var richiesta2      = new RichiestaAssistenza();
            var eventi          = new IPartenza[]
            {
                new ComposizionePartenze(richiesta1, DateTime.Now, "fonte", false)
                {
                    Componenti = new HashSet <ComponentePartenza>()
                    {
                        new ComponentePartenza("XXX", "M1")
                    }
                },
                new UscitaPartenza(richiesta1, "M1", DateTime.Now, "fonte"),
                new ArrivoSulPosto(richiesta1, "M1", DateTime.Now, "fonte"),
                new PartenzaInRientro(richiesta1, "M1", DateTime.Now, "fonte"),
                new PartenzaRientrata(richiesta1, "M1", DateTime.Now, "fonte"),
                new ComposizionePartenze(richiesta2, DateTime.Now, "fonte", false)
                {
                    Componenti = new HashSet <ComponentePartenza>()
                    {
                        new ComponentePartenza("YYY", "M1")
                    }
                },
                new UscitaPartenza(richiesta2, "M1", DateTime.Now, "fonte")
            };

            var stato = processoreStato.ProcessaEventi(eventi).Stato;

            Assert.That(stato, Is.InstanceOf <InViaggio>());
        }
Example #10
0
        public void UnMezzoAssegnatoRestituisceIlCodiceDellaRichiesta()
        {
            var processoreStato = new ProcessoreStato();
            var richiesta       = new RichiestaAssistenza();

            richiesta.Codice = "C1234";
            var eventi = new IPartenza[]
            {
                new ComposizionePartenze(richiesta, DateTime.Now, "fonte", false)
                {
                    Componenti = new HashSet <ComponentePartenza>()
                    {
                        new ComponentePartenza("XXX", "M1")
                    }
                }
            };

            var stato = processoreStato.ProcessaEventi(eventi).Stato;

            Assert.Multiple(() =>
            {
                Assert.That(stato.AssegnatoARichiesta, Is.True);
                Assert.That(stato, Is.InstanceOf <IStatoMezzoAssegnatoARichiesta>());
                Assert.That(((IStatoMezzoAssegnatoARichiesta)stato).CodiceRichiesta, Is.EqualTo("C1234"));
            });
        }
Example #11
0
        private RichiestaAssistenza CreaRichiestaContenenteUnicoEventoDiComposizione(out SituazioneMezzo expected)
        {
            var richiestaConUnicoEventoDiAssegnazione = new RichiestaAssistenza()
            {
                Codice = "R1",
            };
            var componentePartenza = new ComponentePartenza("CF1", "M1");
            var istanteEvento      = DateTime.Now.AddMinutes(-10);
            var eventoComposizione = new ComposizionePartenze(richiestaConUnicoEventoDiAssegnazione, istanteEvento, "Fonte", false)
            {
                Componenti = new HashSet <ComponentePartenza>()
                {
                    componentePartenza
                }
            };

            expected = new SituazioneMezzo()
            {
                Codice      = "M1",
                CodiceStato = new Assegnato(istanteEvento, "R1").Codice,
                CodiceRichiestaAssistenza = "R1",
                IstanteAggiornamentoStato = istanteEvento
            };
            return(richiestaConUnicoEventoDiAssegnazione);
        }
Example #12
0
 /// <summary>
 ///   Costruttore della classe
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codice">
 ///   E' l'identificativo univoco della telefonata, utilizzabile anche a scopi
 ///   giuridici/amministrativi. Potrebbe essere un codice del tipo AX554HN.
 /// </param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public Telefonata(
     RichiestaAssistenza richiesta,
     string codice,
     DateTime istante,
     string codiceFonte) : base(richiesta, codice, istante, codiceFonte, "Telefonata")
 {
 }
Example #13
0
        private List <AttivitaUtente> MapUtenteAttivita(RichiestaAssistenza richiesta, string Tipo)
        {
            List <AttivitaUtente> ListaAttivita = new List <AttivitaUtente>();

            if (Tipo.Equals("P"))
            {
                foreach (var presaInCarico in richiesta.UtPresaInCarico)
                {
                    AttivitaUtente attivita = new AttivitaUtente()
                    {
                        Nominativo = presaInCarico.Replace(".", " ")
                    };
                    ListaAttivita.Add(attivita);
                }
                ;
            }
            else
            {
                foreach (var lavorazione in richiesta.UtInLavorazione)
                {
                    AttivitaUtente attivita = new AttivitaUtente()
                    {
                        Nominativo = lavorazione.Replace(".", " ")
                    };
                    ListaAttivita.Add(attivita);
                }
                ;
            }

            return(ListaAttivita);
        }
Example #14
0
        /// <summary>
        ///   Costruttore della classe.
        /// </summary>
        /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
        /// <param name="istante">L'istante in cui avviene l'evento.</param>
        /// <param name="codiceFonte">Il codice della fonte informativa dell'evento.</param>
        public Evento(RichiestaAssistenza richiesta, DateTime istante, string codiceFonte, string tipoEvento, string SedeOperatore = "")
        {
            if (richiesta == null)
            {
                throw new ArgumentNullException(nameof(richiesta));
            }

            if (istante == DateTime.MinValue)
            {
                throw new ArgumentOutOfRangeException(nameof(istante));
            }

            if (string.IsNullOrWhiteSpace(codiceFonte))
            {
                throw new ArgumentException("Cannot be null or whitespace", nameof(CodiceFonte));
            }

            this.Istante            = istante;
            this.CodiceFonte        = codiceFonte;
            this.IstanteCreazione   = DateTime.UtcNow;
            this.CodiceRichiesta    = richiesta.Codice;
            this.TipoEvento         = tipoEvento;
            this.SedeOperatore      = SedeOperatore;
            this.DataOraInserimento = DateTime.Now;
            richiesta.AddEvento(this);
        }
Example #15
0
        public void UnaRichiestaConUnMezzoRientratoEPoiDiNuovoUscitoRestituisceUnSoloMezzo()
        {
            var richiesta = new RichiestaAssistenza();
            var eventi    = new IPartenza[]
            {
                new ComposizionePartenze(richiesta, DateTime.Now, "fonte", false)
                {
                    Componenti = new HashSet <ComponentePartenza>()
                    {
                        new ComponentePartenza("XXX", "M1")
                    }
                },
                new UscitaPartenza(richiesta, "M1", DateTime.Now, "fonte"),
                new ArrivoSulPosto(richiesta, "M1", DateTime.Now, "fonte"),
                new PartenzaInRientro(richiesta, "M1", DateTime.Now, "fonte"),
                new PartenzaRientrata(richiesta, "M1", DateTime.Now, "fonte"),
                new ComposizionePartenze(richiesta, DateTime.Now, "fonte", false)
                {
                    Componenti = new HashSet <ComponentePartenza>()
                    {
                        new ComponentePartenza("YYY", "M1")
                    }
                },
                new UscitaPartenza(richiesta, "M1", DateTime.Now, "fonte")
            };

            var mezziCoinvolti = richiesta.MezziCoinvolti;

            Assert.That(mezziCoinvolti, Has.Count.EqualTo(1));
        }
 /// <summary>
 ///   Costruttore della classe
 /// </summary>
 /// <param name="richiesta">La richiesta a cui appartiene l'evento</param>
 /// <param name="codiceMezzo">Il codice mezzo relativo all'evento</param>
 /// <param name="istante">L'istante in cui l'evento si verifica</param>
 /// <param name="codiceFonte">La fonte informativa dell'evento</param>
 public RevocaPerInterventoNonPiuNecessario(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte)
 {
 }
Example #17
0
 public OrdinamentoMezzi(RichiestaAssistenza Richiesta, IGetTipologieByCodice getTipologieByCodice, IConfiguration configuration, IMemoryCache memoryCache)
 {
     _Richiesta            = Richiesta;
     _getTipologieByCodice = getTipologieByCodice;
     _configuration        = configuration;
     _memoryCache          = memoryCache;
 }
Example #18
0
 /// <summary>
 ///   Costruttore della classe. A seguito della chiamata, la richiesta risulta aperta.
 /// </summary>
 /// <param name="richiesta">La richiesta alla quale l'evento deve essere aggiunto</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public RiaperturaRichiesta(
     RichiestaAssistenza richiesta,
     DateTime istante,
     string codiceFonte) : base(richiesta, istante, codiceFonte)
 {
     richiesta.IstanteChiusura = null;
 }
Example #19
0
        public void Save(RichiestaAssistenza richiestaAssistenza)
        {
            string filepath = "Fake/ListaRichiesteAssistenza.json";
            string json;

            using (StreamReader r = new StreamReader(filepath))
            {
                json = r.ReadToEnd();
            }

            List <RichiestaAssistenzaRead> ListaRichieste = JsonConvert.DeserializeObject <List <RichiestaAssistenzaRead> >(json);

            if (ListaRichieste != null)
            {
                string fileText = System.IO.File.ReadAllText(@"Fake/ListaRichiesteAssistenza.json");
                string jsonNew  = JsonConvert.SerializeObject(richiestaAssistenza);
                System.IO.File.WriteAllText(@"Fake/ListaRichiesteAssistenza.json", "[" + fileText.Substring(1, fileText.Length - 2) + "," + jsonNew + "]");
            }
            else
            {
                List <RichiestaAssistenza> ListaRichiesteNew = new List <RichiestaAssistenza>();
                ListaRichiesteNew.Add(richiestaAssistenza);

                string jsonNew = JsonConvert.SerializeObject(ListaRichiesteNew);
                System.IO.File.WriteAllText(@"Fake/ListaRichiesteAssistenza.json", jsonNew);
            }
        }
Example #20
0
        public void UnaRichiestaConDueMezziInRientroNonEPresidiata()
        {
            var richiesta = new RichiestaAssistenza();
            var now       = DateTime.Now;

            new ComposizionePartenze(richiesta, now, "fonte", false)
            {
                Componenti = new HashSet <ComponentePartenza>()
                {
                    new ComponentePartenza("XXX", "M1"),
                }
            };
            new ComposizionePartenze(richiesta, now.AddSeconds(10), "fonte", false)
            {
                Componenti = new HashSet <ComponentePartenza>()
                {
                    new ComponentePartenza("YYY", "M2"),
                }
            };
            new UscitaPartenza(richiesta, "M1", now.AddSeconds(15), "fonte");
            new UscitaPartenza(richiesta, "M2", now.AddSeconds(20), "fonte");
            new ArrivoSulPosto(richiesta, "M1", now.AddSeconds(25), "fonte");
            new ArrivoSulPosto(richiesta, "M2", now.AddSeconds(30), "fonte");
            new PartenzaInRientro(richiesta, "M1", now.AddSeconds(35), "fonte");
            new PartenzaInRientro(richiesta, "M2", now.AddSeconds(40), "fonte");

            var presidiato = richiesta.Presidiata;

            Assert.That(presidiato, Is.False);
        }
Example #21
0
 /// <summary>
 ///   Costruttore della classe.
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public Revoca(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte, "Revoca")
 {
 }
Example #22
0
 /// <summary>
 ///   Costruttore della classe.
 /// </summary>
 /// <param name="richiesta">E' la richiesta di assistenza a cui si aggiunge l'evento</param>
 /// <param name="codiceMezzo">Il codice del mezzo</param>
 /// <param name="istante">E' l'istante in cui si verifica l'evento</param>
 /// <param name="codiceFonte">E' la fonte informativa dell'evento</param>
 public PartenzaRientrata(
     RichiestaAssistenza richiesta,
     string codiceMezzo,
     DateTime istante,
     string codiceFonte) : base(richiesta, codiceMezzo, istante, codiceFonte)
 {
     TipoEvento = "PartenzaRientrata";
 }
        public void InAssenzaDiSegnalazioniLIstanteRichiestaENull()
        {
            var richiesta = new RichiestaAssistenza();

            var istanteRicezioneRichiesta = richiesta.IstanteRicezioneRichiesta;

            Assert.That(istanteRicezioneRichiesta, Is.Null);
        }
        public void LaPrioritaEMediaInAssenzaDiEventi()
        {
            var richiesta = new RichiestaAssistenza();

            var priorita = richiesta.PrioritaRichiesta;

            Assert.That(priorita, Is.EqualTo(RichiestaAssistenza.Priorita.Media));
        }
        public void SeLaListaDiEventiEVuotaNonCiSonoChiamate()
        {
            var richiesta = new RichiestaAssistenza();

            var chiamate = richiesta.Telefonate;

            Assert.That(chiamate.Count, Is.Zero);
        }
        public void UnaRichiestaSenzaEventiEAperta()
        {
            var richiesta = new RichiestaAssistenza();

            var aperta = !richiesta.Chiusa;

            Assert.That(aperta, Is.True);
        }
        public void FonogrammaNonNecessarioPerUnaRichiestaSenzaEventiFonogramma()
        {
            var richiesta = new RichiestaAssistenza();

            var statoInvioFonogramma = richiesta.StatoInvioFonogramma;

            Assert.That(statoInvioFonogramma, Is.InstanceOf <SO115App.API.Models.Classi.Soccorso.Fonogramma.NonNecessario>());
        }
        public void InAssenzaDiTelefonateIlCodiceSchedaNueENull()
        {
            var richiesta = new RichiestaAssistenza();

            var codiceSchedaNue = richiesta.CodiceSchedaNue;

            Assert.That(codiceSchedaNue, Is.Null);
        }
        public void InAssenzaDiAssegnazioniLIstantePrimaAssegnazioneENull()
        {
            var richiesta = new RichiestaAssistenza();

            var istantePrimaAssegnazione = richiesta.IstantePrimaAssegnazione;

            Assert.That(istantePrimaAssegnazione, Is.Null);
        }
Example #30
0
        public void UnaRichiestaVuotaNonHaMezziCoinvolti()
        {
            var richiesta = new RichiestaAssistenza();

            var mezziCoinvolti = richiesta.MezziCoinvolti;

            CollectionAssert.IsEmpty(mezziCoinvolti);
        }