/// <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); }
public async Task <IActionResult> Post(ConfermaPartenze conferma) { conferma.CodiceSede = Request.Headers["codicesede"]; conferma.IdOperatore = Request.Headers["IdUtente"]; var command = new ConfermaPartenzeCommand() { ConfermaPartenze = conferma }; try { handler.Handle(command); return(Ok()); } catch (Exception ex) { ex = ex.GetBaseException(); if (ex.Message.Contains(Costanti.UtenteNonAutorizzato)) { return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato })); } else { return(BadRequest(new { message = ex.Message })); } } }
public async Task <IActionResult> Post(ConfermaPartenze conferma) { var codiceSede = Request.Headers["codicesede"]; conferma.CodiceSede = codiceSede; var command = new ConfermaPartenzeCommand() { ConfermaPartenze = conferma, }; try { handler.Handle(command); return(Ok()); } catch (Exception ex) { return(BadRequest()); } }
public async Task SendNotification(ModificaPartenzaCommand command) { var SediDaNotificare = new List <string>(); if (command.Richiesta.CodSOAllertate != null) { SediDaNotificare = _getGerarchiaToSend.Get(command.Richiesta.CodSOCompetente, command.Richiesta.CodSOAllertate.ToArray()); } else { SediDaNotificare = _getGerarchiaToSend.Get(command.Richiesta.CodSOCompetente); } var confermaPartenza = new ConfermaPartenze() { CodiceSede = command.CodSede.First(), IdOperatore = command.IdOperatore, IdRichiesta = command.Richiesta.Id, Chiamata = _mapperSintesi.Map(command.Richiesta), Partenze = command.Richiesta.lstPartenze, richiesta = command.Richiesta }; Parallel.ForEach(SediDaNotificare, sede => { var boxInterventi = _boxRichiesteHandler.Handle(new BoxRichiesteQuery() { CodiciSede = new string[] { sede } }).BoxRichieste; var boxMezzi = _boxMezziHandler.Handle(new BoxMezziQuery() { CodiciSede = new string[] { sede } }).BoxMezzi; var boxPersonale = _boxPersonaleHandler.Handle(new BoxPersonaleQuery() { CodiciSede = new string[] { sede } }).BoxPersonale; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi); _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxMezzi", boxMezzi); _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxPersonale", boxPersonale); _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", confermaPartenza); foreach (var partenza in command.Richiesta.lstPartenze) { _notificationHubContext.Clients.Group(sede).SendAsync("NotifyUpdateMezzoInServizio", new MezzoInServizio() { Mezzo = new MezzoMarker() { Mezzo = partenza.Mezzo, InfoRichiesta = new InfoRichiesta() { CodiceRichiesta = command.Richiesta.Codice, Indirizzo = command.Richiesta.Localita.Indirizzo } }, Squadre = partenza.Squadre }); } }); }
public void Update(AggiornaStatoMezzoCommand command) { string filepath = "Fake/ListaRichiesteAssistenza.json"; string filePathMezzi = "Fake/MezziComposizione.json"; string filePathSquadre = "Fake/SquadreComposizione.json"; string json; string jsonMezzi; string jsonSquadre; using (StreamReader r = new StreamReader(filepath)) { json = r.ReadToEnd(); } using (StreamReader r = new StreamReader(filePathMezzi)) { jsonMezzi = r.ReadToEnd(); } using (StreamReader r = new StreamReader(filePathSquadre)) { jsonSquadre = r.ReadToEnd(); } RichiestaAssistenzaDTO richiestaDTO = new RichiestaAssistenzaDTO(); ConfermaPartenze conferma = new ConfermaPartenze(); RichiestaAssistenzaDTO richiestaNew = new RichiestaAssistenzaDTO(); List <RichiestaAssistenzaDTO> ListaRichieste = JsonConvert.DeserializeObject <List <RichiestaAssistenzaDTO> >(json); List <ComposizioneMezzi> ListaMezzi = JsonConvert.DeserializeObject <List <ComposizioneMezzi> >(jsonMezzi); List <ComposizioneSquadre> ListaSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(jsonSquadre); if (ListaRichieste != null) { List <RichiestaAssistenza> ListaRichiesteNew = new List <RichiestaAssistenza>(); richiestaDTO = ListaRichieste.Where(x => x.Codice == command.Richiesta.Codice).FirstOrDefault(); ListaRichieste.Remove(richiestaDTO); foreach (RichiestaAssistenzaDTO richiesta in ListaRichieste) { ListaRichiesteNew.Add(MapperDTO.MapRichiestaDTOtoRichiesta(richiesta)); } ListaRichiesteNew.Add(command.Richiesta); string jsonListaPresente = JsonConvert.SerializeObject(ListaRichiesteNew); System.IO.File.WriteAllText(@"Fake/ListaRichiesteAssistenza.json", jsonListaPresente); } else { List <RichiestaAssistenza> ListaRichiesteNew = new List <RichiestaAssistenza>(); ListaRichiesteNew.Add(command.Richiesta); string jsonNew = JsonConvert.SerializeObject(ListaRichiesteNew); System.IO.File.WriteAllText(@"Fake/ListaRichiesteAssistenza.json", jsonNew); } foreach (ComposizionePartenze composizione in command.Richiesta.Partenze) { foreach (ComposizioneMezzi composizioneMezzo in ListaMezzi) { if (composizioneMezzo.Mezzo.Codice == composizione.Partenza.Mezzo.Codice) { composizioneMezzo.Mezzo.Stato = composizione.Partenza.Mezzo.Stato; } } foreach (ComposizioneSquadre composizioneSquadra in ListaSquadre) { foreach (Squadra squadra in composizione.Partenza.Squadre) { if (composizioneSquadra.Squadra.Id == squadra.Id) { composizioneSquadra.Squadra.Stato = squadra.Stato; } } } } string jsonListaMezzi = JsonConvert.SerializeObject(ListaMezzi); System.IO.File.WriteAllText(@"Fake/MezziComposizione.json", jsonListaMezzi); string jsonListaSquadre = JsonConvert.SerializeObject(ListaSquadre); System.IO.File.WriteAllText(@"Fake/SquadreComposizione.json", jsonListaSquadre); }
/// <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 filepath = CostantiJson.ListaRichiesteAssistenza; var filePathMezzi = CostantiJson.Mezzo; var filePathSquadre = CostantiJson.SquadreComposizione; string json; string jsonMezzi; string jsonSquadre; using (var r = new StreamReader(filepath)) { json = r.ReadToEnd(); } using (var r = new StreamReader(filePathMezzi)) { jsonMezzi = r.ReadToEnd(); } using (var r = new StreamReader(filePathSquadre)) { jsonSquadre = r.ReadToEnd(); } var richiestaDTO = new RichiestaAssistenzaDTO(); var conferma = new ConfermaPartenze(); var listaRichieste = JsonConvert.DeserializeObject <List <RichiestaAssistenzaDTO> >(json); var listaMezzi = JsonConvert.DeserializeObject <List <Mezzo> >(jsonMezzi); var listaSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(jsonSquadre); var listaRichiesteNew = new List <RichiestaAssistenza>(); if (listaRichieste != null) { richiestaDTO = listaRichieste.Find(x => x.Cod == command.ConfermaPartenze.richiesta.Codice); listaRichieste.Remove(richiestaDTO); foreach (var richiesta in listaRichieste) { listaRichiesteNew.Add(MapperDTO.MapRichiestaDTOtoRichiesta(richiesta)); } listaRichiesteNew.Add(command.ConfermaPartenze.richiesta); var jsonListaPresente = JsonConvert.SerializeObject(listaRichiesteNew); System.IO.File.WriteAllText(CostantiJson.ListaRichiesteAssistenza, jsonListaPresente); } else { listaRichiesteNew = new List <RichiestaAssistenza> { command.ConfermaPartenze.richiesta }; var jsonNew = JsonConvert.SerializeObject(listaRichiesteNew); System.IO.File.WriteAllText(CostantiJson.ListaRichiesteAssistenza, jsonNew); } foreach (var composizione in command.ConfermaPartenze.richiesta.Partenze) { foreach (var mezzo in listaMezzi) { if (mezzo.Codice != composizione.Partenza.Mezzo.Codice) { continue; } mezzo.Stato = Costanti.MezzoInViaggio; mezzo.IdRichiesta = command.ConfermaPartenze.IdRichiesta; } foreach (var composizioneSquadra in listaSquadre) { foreach (var squadra in composizione.Partenza.Squadre) { if (composizioneSquadra.Squadra.Id == squadra.Id) { composizioneSquadra.Squadra.Stato = Squadra.StatoSquadra.InViaggio; } } } } var jsonListaMezzi = JsonConvert.SerializeObject(listaMezzi); File.WriteAllText(CostantiJson.Mezzo, jsonListaMezzi); var jsonListaSquadre = JsonConvert.SerializeObject(listaSquadre); File.WriteAllText(CostantiJson.SquadreComposizione, jsonListaSquadre); 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 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); }
/// <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) { var filepath = CostantiJson.ListaRichiesteAssistenza; var filePathMezzi = CostantiJson.Mezzo; var filePathSquadre = CostantiJson.SquadreComposizione; string json; string jsonMezzi; string jsonSquadre; using (var r = new StreamReader(filepath)) { json = r.ReadToEnd(); } using (var r = new StreamReader(filePathMezzi)) { jsonMezzi = r.ReadToEnd(); } using (var r = new StreamReader(filePathSquadre)) { jsonSquadre = r.ReadToEnd(); } var conferma = new ConfermaPartenze(); var richiestaNew = new RichiestaAssistenzaDTO(); var listaRichieste = JsonConvert.DeserializeObject <List <RichiestaAssistenzaDTO> >(json); var listaMezzi = JsonConvert.DeserializeObject <List <Mezzo> >(jsonMezzi); var listaSquadre = JsonConvert.DeserializeObject <List <ComposizioneSquadre> >(jsonSquadre); if (listaRichieste != null) { var listaRichiesteNew = new List <RichiestaAssistenza>(); var richiestaDTO = listaRichieste.FirstOrDefault(x => x.Cod == command.Richiesta.Codice); listaRichieste.Remove(richiestaDTO); foreach (var richiesta in listaRichieste) { listaRichiesteNew.Add(MapperDTO.MapRichiestaDTOtoRichiesta(richiesta)); } listaRichiesteNew.Add(command.Richiesta); var jsonListaPresente = JsonConvert.SerializeObject(listaRichiesteNew); System.IO.File.WriteAllText(CostantiJson.ListaRichiesteAssistenza, jsonListaPresente); } else { var listaRichiesteNew = new List <RichiestaAssistenza> { command.Richiesta }; string jsonNew = JsonConvert.SerializeObject(listaRichiesteNew); System.IO.File.WriteAllText(CostantiJson.ListaRichiesteAssistenza, jsonNew); } foreach (var composizione in command.Richiesta.Partenze) { foreach (var mezzo in listaMezzi.Where(mezzo => mezzo.Codice == composizione.Partenza.Mezzo.Codice)) { mezzo.Stato = composizione.Partenza.Mezzo.Stato; } foreach (var composizioneSquadra in listaSquadre) { foreach (var squadra in composizione.Partenza.Squadre.Where(squadra => composizioneSquadra.Squadra.Id == squadra.Id)) { composizioneSquadra.Squadra.Stato = squadra.Stato; } } } var jsonListaMezzi = JsonConvert.SerializeObject(listaMezzi); System.IO.File.WriteAllText(CostantiJson.Mezzo, jsonListaMezzi); var jsonListaSquadre = JsonConvert.SerializeObject(listaSquadre); System.IO.File.WriteAllText(CostantiJson.SquadreComposizione, jsonListaSquadre); }