/// <summary> /// Il metodo accetta in firma il command, e aggiorna i dati relativi alla conferma della partenza /// </summary> /// <param name="command">il command in ingresso</param> /// <returns>ConfermaPartenze</returns> public ConfermaPartenze Update(ConfermaPartenzeCommand command) { var conferma = new ConfermaPartenze(); _updateRichiesta.UpDate(command.ConfermaPartenze.richiesta); var tipologia = _getTipologieByCodice.Get(command.ConfermaPartenze.richiesta.Tipologie)[0]; foreach (var partenza in command.ConfermaPartenze.Partenze) { var dataMovintazione = DateTime.UtcNow; //_setMovimentazione.Set(partenza.Mezzo.Codice, DateTime.UtcNow, command.ConfermaPartenze.IdRichiesta, tipologia.Codice, tipologia.Descrizione); //TODO IMPLEMENTARE CON GAC _setStatoOperativoMezzo.Set(command.ConfermaPartenze.CodiceSede, partenza.Mezzo.Codice, Costanti.MezzoInViaggio, command.ConfermaPartenze.IdRichiesta); foreach (var squadra in partenza.Squadre) { _setStatoSquadra.SetStato(squadra.Codice, command.ConfermaPartenze.IdRichiesta, Costanti.MezzoInViaggio, command.ConfermaPartenze.CodiceSede); } } conferma.CodiceSede = command.ConfermaPartenze.CodiceSede; conferma.IdRichiesta = command.ConfermaPartenze.IdRichiesta; conferma.richiesta = command.ConfermaPartenze.richiesta; return(conferma); }
/// <summary> /// Il metodo accetta in firma il command, e in seguito al cambio di stato di uno o più /// mezzi aggiorna le informazioni relative alla richiesta a cui quel mezzo è associato /// </summary> /// <param name="command">il command in ingresso</param> public void Update(AggiornaStatoMezzoCommand command) { _setStatoOperativoMezzo.Set(command.CodiceSede, command.IdMezzo, command.StatoMezzo, command.Richiesta.Codice); foreach (var partenza in command.Richiesta.Partenze) { foreach (var squadra in partenza.Partenza.Squadre) { _setStatoSquadra.SetStato(squadra.Codice, command.Richiesta.Id, command.StatoMezzo, command.CodiceSede); } } }
/// <summary> /// Il metodo accetta in firma il command, e in seguito al cambio di stato di uno o più /// mezzi aggiorna le informazioni relative alla richiesta a cui quel mezzo è associato /// </summary> /// <param name="command">il command in ingresso</param> public void Update(AggiornaStatoMezzoCommand command) { _upDateRichiesta.UpDate(command.Richiesta); var codiceSedeMezzo = command.CodiciSede.First(); _setStatoOperativoMezzo.Set(codiceSedeMezzo, command.IdMezzo, command.StatoMezzo, command.Richiesta.Codice); var dataMovintazione = DateTime.Now; var dataIntervento = command.Richiesta.ListaEventi.OfType <Telefonata>().FirstOrDefault(p => p.CodiceRichiesta.Equals(command.Richiesta.Codice)).Istante; foreach (var partenza in command.Richiesta.Partenze.Where(c => c.Partenza.Mezzo.Codice == command.IdMezzo)) { foreach (var squadra in partenza.Partenza.Squadre) { _setStatoSquadra.SetStato(squadra.Codice, command.Richiesta.Id, command.StatoMezzo, codiceSedeMezzo, command.IdMezzo); } if (!partenza.Partenza.Mezzo.Stato.Equals(Costanti.MezzoInUscita)) { if (partenza.Partenza.Mezzo.Stato.Equals(Costanti.MezzoInSede) || partenza.Partenza.Mezzo.Stato.Equals(Costanti.MezzoRientrato)) { var dataRientro = command.Richiesta.ListaEventi.OfType <PartenzaRientrata>().FirstOrDefault(p => p.CodicePartenza.Equals(partenza.Partenza.Codice)).Istante; _setRientroMezzo.Set(new RientroGAC() { targa = partenza.Partenza.Mezzo.Codice.Split('.')[1], tipoMezzo = partenza.Partenza.Mezzo.Codice.Split('.')[0], idPartenza = partenza.Partenza.Codice.ToString(), numeroIntervento = command.Richiesta.CodRichiesta, dataIntervento = dataIntervento, dataRientro = dataRientro, autista = "" }); } else if (partenza.Partenza.Mezzo.Stato.Equals(Costanti.MezzoInViaggio)) { var dataUscita = command.Richiesta.ListaEventi.OfType <ComposizionePartenze>().FirstOrDefault(p => p.Partenza.Codice.Equals(partenza.Partenza.Codice)).Istante; _setUscitaMezzo.Set(new UscitaGAC() { targa = partenza.Partenza.Mezzo.Codice.Split('.')[1], tipoMezzo = partenza.Partenza.Mezzo.Codice.Split('.')[0], idPartenza = partenza.Partenza.Codice.ToString(), numeroIntervento = command.Richiesta.CodRichiesta, dataIntervento = dataIntervento, dataUscita = dataUscita, autista = "", tipoUscita = new TipoUscita() { codice = "", descrizione = "Servizio" }, comune = new ComuneGAC() { codice = "", descrizione = command.Richiesta.Localita.Citta, }, provincia = new Models.Classi.Gac.ProvinciaGAC() { codice = "", descrizione = command.Richiesta.Localita.Provincia }, localita = command.Richiesta.Localita.Citta, latitudine = command.Richiesta.Localita.Coordinate.Latitudine.ToString(), longitudine = command.Richiesta.Localita.Coordinate.Longitudine.ToString() }); } } } }
/// <summary> /// Il metodo accetta in firma il command, e aggiorna i dati relativi alla conferma della partenza /// </summary> /// <param name="command">il command in ingresso</param> /// <returns>ConfermaPartenze</returns> public ConfermaPartenze Update(ConfermaPartenzeCommand command) { var conferma = new ConfermaPartenze(); _updateRichiesta.UpDate(command.ConfermaPartenze.richiesta); var codiceSede = command.ConfermaPartenze.CodiceSede.Split(",", StringSplitOptions.RemoveEmptyEntries)[0]; foreach (var partenza in command.ConfermaPartenze.Partenze) { var dataMovintazione = DateTime.UtcNow; _setStatoOperativoMezzo.Set(codiceSede, partenza.Mezzo.Codice, partenza.Mezzo.Stato, command.ConfermaPartenze.richiesta.Codice); foreach (var squadra in partenza.Squadre) { _setStatoSquadra.SetStato(squadra.Codice, command.ConfermaPartenze.IdRichiesta, partenza.Mezzo.Stato, codiceSede, partenza.Mezzo.Codice); } var dataIntervento = command.Richiesta.ListaEventi.OfType <Telefonata>().FirstOrDefault(p => p.CodiceRichiesta.Equals(command.Richiesta.Codice)).Istante; //GAC USCITA/ENTRATA if (!partenza.Mezzo.Stato.Equals(Costanti.MezzoInUscita)) { if (partenza.Mezzo.Stato.Equals(Costanti.MezzoInSede) || partenza.Mezzo.Stato.Equals(Costanti.MezzoRientrato)) { var dataRientro = command.Richiesta.ListaEventi.OfType <PartenzaRientrata>().FirstOrDefault(p => p.CodicePartenza.Equals(partenza.Codice)).Istante; _setRientroMezzo.Set(new RientroGAC() { targa = partenza.Mezzo.Codice.Split('.')[1], tipoMezzo = partenza.Mezzo.Codice.Split('.')[0], idPartenza = partenza.Codice.ToString(), numeroIntervento = command.Richiesta.CodRichiesta, dataIntervento = dataIntervento, dataRientro = dataRientro, autista = "" }); } else if (partenza.Mezzo.Stato.Equals(Costanti.MezzoInViaggio)) { var dataUscita = command.Richiesta.ListaEventi.OfType <ComposizionePartenze>().FirstOrDefault(p => p.Partenza.Codice.Equals(partenza.Codice)).Istante; _setUscitaMezzo.Set(new UscitaGAC() { targa = partenza.Mezzo.Codice.Split('.')[1], tipoMezzo = partenza.Mezzo.Codice.Split('.')[0], idPartenza = partenza.Codice.ToString(), numeroIntervento = command.Richiesta.CodRichiesta, dataIntervento = dataIntervento, dataUscita = dataUscita, autista = "", tipoUscita = new TipoUscita() { codice = "", descrizione = "Servizio" }, comune = new ComuneGAC() { codice = "", descrizione = command.Richiesta.Localita.Citta, }, provincia = new Models.Classi.Gac.ProvinciaGAC() { codice = "", descrizione = command.Richiesta.Localita.Provincia }, localita = command.Richiesta.Localita.Citta, latitudine = command.Richiesta.Localita.Coordinate.Latitudine.ToString(), longitudine = command.Richiesta.Localita.Coordinate.Longitudine.ToString(), }); } } } conferma.CodiceSede = command.ConfermaPartenze.CodiceSede; conferma.IdRichiesta = command.ConfermaPartenze.IdRichiesta; conferma.richiesta = command.ConfermaPartenze.richiesta; return(conferma); }