public async Task <IActionResult> GetMezzi(AreaMappa filtroCentroMappa) { filtroCentroMappa.CodiceSede = new List <string> { Request.Headers["codiceSede"].ToString() }; try { var query = new MezziMarkerQuery() { Filtro = filtroCentroMappa }; return(Ok(this._mezziMarkerHandler.Handle(query).ListaMezziMarker)); } catch (Exception ex) { if (ex.Message.Contains(Costanti.UtenteNonAutorizzato)) { return(StatusCode(403, Costanti.UtenteNonAutorizzato)); } else if (ex.Message.Contains("404")) { return(StatusCode(404, "Servizio non raggiungibile. Riprovare più tardi")); } else { return(BadRequest()); } } }
public async Task <IActionResult> GetMezzi([FromBody] AreaMappa filtroCentroMappa) { try { var query = new MezziMarkerQuery() { Filtro = filtroCentroMappa }; return(Ok(this._mezziMarkerHandler.Handle(query).ListaMezziMarker)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task SendNotification(AggiornaStatoMezzoCommand intervento) { const bool notificaChangeState = true; var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery(); var listaSintesi = _sintesiRichiesteAssistenzahandler.Handle(sintesiRichiesteAssistenzaQuery).SintesiRichiesta; var boxRichiesteQuery = new BoxRichiesteQuery(); var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste; var boxMezziQuery = new BoxMezziQuery(); var boxMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi; var boxPersonaleQuery = new BoxPersonaleQuery(); var boxPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale; var listaMezziInServizioQuery = new ListaMezziInServizioQuery { IdSede = intervento.CodiceSede }; var listaMezziInServizio = _listaMezziInServizioHandler.Handle(listaMezziInServizioQuery).ListaMezzi; var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery(); var listaSintesiMarker = _sintesiRichiesteAssistenzaMarkerhandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; intervento.Chiamata = listaSintesi.LastOrDefault(richiesta => richiesta.Id == intervento.Chiamata.Id); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("ModifyAndNotifySuccess", intervento); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("ChangeStateSuccess", notificaChangeState); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxInterventi", boxInterventi); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxMezzi", boxMezzi); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxPersonale", boxPersonale); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetListaMezziInServizio", listaMezziInServizio); await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetRichiestaUpDateMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == intervento.Chiamata.Codice)); var queryListaMezzi = new MezziMarkerQuery(); var listaMezziMarker = _listaMezziMarkerHandler.Handle(queryListaMezzi).ListaMezziMarker; await _notificationHubContext.Clients.Group(intervento.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetMezzoUpDateMarker", listaMezziMarker.LastOrDefault(marker => marker.Mezzo.IdRichiesta == intervento.Chiamata.Codice)); }
public async Task SendNotification(AnnullaPartenzaCommand 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); } Parallel.ForEach(SediDaNotificare, sede => { Task.Factory.StartNew(() => { var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery { Filtro = new FiltroRicercaRichiesteAssistenza { idOperatore = command.IdOperatore, PageSize = 99 }, CodiciSede = new string[] { sede } }; var listaSintesi = _sintesiRichiesteAssistenzahandler.Handle(sintesiRichiesteAssistenzaQuery).SintesiRichiesta; command.Chiamata = listaSintesi.LastOrDefault(richiesta => richiesta.Id == command.IdRichiesta); var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery() { CodiciSedi = new string[] { sede } }; var listaSintesiMarker = _sintesiRichiesteAssistenzaMarkerhandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaUpDateMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == command.Chiamata.Codice)); return(command.Chiamata); }).ContinueWith(chiamata => _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", command)); Task.Factory.StartNew(() => { var boxRichiesteQuery = new BoxRichiesteQuery() { CodiciSede = new string[] { sede } }; var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi); }); Task.Factory.StartNew(() => { var boxMezziQuery = new BoxMezziQuery() { CodiciSede = new string[] { sede } }; var boxMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxMezzi", boxMezzi); }); Task.Factory.StartNew(() => { var boxPersonaleQuery = new BoxPersonaleQuery() { CodiciSede = new string[] { sede } }; var boxPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxPersonale", boxPersonale); }); Task.Factory.StartNew(() => { var listaMezziInServizioQuery = new ListaMezziInServizioQuery { CodiciSede = new string[] { sede }, IdOperatore = command.IdOperatore }; var listaMezziInServizio = _listaMezziInServizioHandler.Handle(listaMezziInServizioQuery).DataArray; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetListaMezziInServizio", listaMezziInServizio); }); Task.Factory.StartNew(() => { var areaMappa = new AreaMappa() { CodiceSede = new List <string>() { sede }, FiltroMezzi = new Models.Classi.Filtri.FiltroMezzi() { FiltraPerAreaMappa = false } }; var queryListaMezzi = new MezziMarkerQuery() { Filtro = areaMappa, }; var listaMezziMarker = _listaMezziMarkerHandler.Handle(queryListaMezzi).ListaMezziMarker; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetMezzoUpDateMarker", listaMezziMarker.LastOrDefault(marker => marker.Mezzo.IdRichiesta == command.Chiamata.Codice)); }); _notificationHubContext.Clients.Group(sede).SendAsync("ChangeStateSuccess", true); }); }
public async Task SendNotification(AggiornaStatoMezzoCommand intervento) { var SediDaNotificare = intervento.CodiciSede.ToList(); if (intervento.Richiesta.CodSOAllertate != null) { SediDaNotificare.AddRange(_getGerarchiaToSend.Get(intervento.Richiesta.CodSOCompetente, intervento.Richiesta.CodSOAllertate.ToArray())); } else { SediDaNotificare.AddRange(_getGerarchiaToSend.Get(intervento.Richiesta.CodSOCompetente)); } var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery { Filtro = new FiltroRicercaRichiesteAssistenza { idOperatore = intervento.IdUtente, PageSize = 99, IncludiRichiesteChiuse = true }, CodiciSede = SediDaNotificare.ToArray() }; var listaSintesi = _sintesiRichiesteAssistenzahandler.Handle(sintesiRichiesteAssistenzaQuery).SintesiRichiesta; intervento.Chiamata = listaSintesi.LastOrDefault(richiesta => richiesta.Codice == intervento.CodRichiesta); Task.Factory.StartNew(() => { var listaMezziInServizioQuery = new ListaMezziInServizioQuery { CodiciSede = intervento.CodiciSede, IdOperatore = intervento.IdUtente }; var listaMezziInServizio = _listaMezziInServizioHandler.Handle(listaMezziInServizioQuery).DataArray; var mezzo = listaMezziInServizio.Find(x => x.Mezzo.Mezzo.Codice.Equals(intervento.IdMezzo)); foreach (var sede in listaMezziInServizioQuery.CodiciSede) { _notificationHubContext.Clients.Group(sede).SendAsync("NotifyUpdateMezzoInServizio", mezzo); } }); Parallel.ForEach(SediDaNotificare.Distinct(), sede => { _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", intervento); _notificationHubContext.Clients.Group(sede).SendAsync("ChangeStateSuccess", true); Task.Factory.StartNew(() => { var boxMezziQuery = new BoxMezziQuery() { CodiciSede = new string[] { sede } }; var boxMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxMezzi", boxMezzi); }); Task.Factory.StartNew(() => { var boxRichiesteQuery = new BoxRichiesteQuery() { CodiciSede = new string[] { sede } }; var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi); }); Task.Factory.StartNew(() => { var boxPersonaleQuery = new BoxPersonaleQuery() { CodiciSede = new string[] { sede } }; var boxPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxPersonale", boxPersonale); }); if (intervento.Chiamata != null) { Task.Factory.StartNew(() => { var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery() { CodiciSedi = new string[] { sede } }; var listaSintesiMarker = _sintesiRichiesteAssistenzaMarkerhandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaUpDateMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == intervento.Chiamata.Codice)); }); Task.Factory.StartNew(() => { var queryListaMezzi = new MezziMarkerQuery() { Filtro = new AreaMappa() { CodiceSede = new List <string>() { sede }, FiltroMezzi = new Models.Classi.Filtri.FiltroMezzi() { FiltraPerAreaMappa = false } } }; var listaMezziMarker = _listaMezziMarkerHandler.Handle(queryListaMezzi).ListaMezziMarker; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetMezzoUpDateMarker", listaMezziMarker.LastOrDefault(marker => marker.Mezzo.IdRichiesta == intervento.Chiamata.Codice)); }); } }); }