public async Task SendNotification(UpDateStatoRichiestaCommand richiesta) { const bool notificaChangeState = true; var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery(); var listaSintesi = (List <SintesiRichiesta>) this._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 sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery(); var listaSintesiMarker = (List <SintesiRichiestaMarker>)_sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; richiesta.Chiamata = listaSintesi.LastOrDefault(sintesi => sintesi.Id == richiesta.IdRichiesta); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("ModifyAndNotifySuccess", richiesta); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("ChangeStateSuccess", notificaChangeState); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxInterventi", boxInterventi); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxMezzi", boxMezzi); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetBoxPersonale", boxPersonale); await _notificationHubContext.Clients.Group(richiesta.Chiamata.Operatore.Sede.Codice).SendAsync("NotifyGetRichiestaUpDateMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == richiesta.Chiamata.Codice)); }
public async Task SendNotification(UpDateStatoRichiestaCommand richiesta) { const bool notificaChangeState = true; var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery { Filtro = new FiltroRicercaRichiesteAssistenza { idOperatore = richiesta.IdOperatore }, CodiciSede = new string[] { richiesta.CodiceSede } }; var boxRichiesteQuery = new BoxRichiesteQuery() { CodiciSede = new string[] { richiesta.CodiceSede } }; var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste; var boxMezziQuery = new BoxMezziQuery() { CodiciSede = new string[] { richiesta.CodiceSede } }; var boxMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi; var boxPersonaleQuery = new BoxPersonaleQuery() { CodiciSede = new string[] { richiesta.CodiceSede } }; var boxPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale; var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery() { CodiciSedi = new string[] { richiesta.CodiceSede } }; var listaSintesiMarker = (List <SintesiRichiestaMarker>)_sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; var ChamataUpd = listaSintesiMarker.LastOrDefault(sintesi => sintesi.Id == richiesta.IdRichiesta); var SintesiRichiesta = _getSintesiById.GetSintesi(ChamataUpd.Codice); richiesta.Chiamata = SintesiRichiesta; await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("ModifyAndNotifySuccess", richiesta); await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("ChangeStateSuccess", notificaChangeState); await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("NotifyGetBoxInterventi", boxInterventi); await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("NotifyGetBoxMezzi", boxMezzi); await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("NotifyGetBoxPersonale", boxPersonale); await _notificationHubContext.Clients.Group(richiesta.CodiceSede).SendAsync("NotifyGetRichiestaUpDateMarker", ChamataUpd); }
/// <summary> /// Query che estrae tutti i parametri iniziali della Home Page /// </summary> /// <param name="query">Filtri utilizzati per l'estrazione</param> /// <returns>Tutti i parametri iniziali della Home Page</returns> public WelcomeResult Handle(WelcomeQuery query) { var boxMezziQuery = new BoxMezziQuery() { CodiceSede = query.CodiceSede }; var boxPersonaleQuery = new BoxPersonaleQuery() { CodiceSede = query.CodiceSede }; var boxRichiesteQuery = new BoxRichiesteQuery() { CodiceSede = query.CodiceSede }; var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery() { CodiceSede = query.CodiceSede }; var listaQuery = new ListaChiamateInCorsoMarkerQuery() { CodiceSede = query.CodiceSede }; var centroMappaQuery = new CentroMappaMarkerQuery() { CodiceSede = query.CodiceSede }; var listaFiltriQuery = new FiltriQuery(); var listaSchedeContattoQuery = new ListaSchedeContattoQuery() { CodiceSede = query.CodiceSede }; var welcome = new SO115App.Models.Classi.Condivise.Welcome() { BoxListaInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste, BoxListaMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi, BoxListaPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale, ListaChiamateInCorso = (List <ChiamateInCorso>)_listaChiamateInCorsoMarkerHandler.Handle(listaQuery).ListaChiamateInCorsoMarker, ListaSintesi = (List <SintesiRichiesta>)_sintesiRichiesteAssistenzaHandler.Handle(sintesiRichiesteAssistenzaQuery).SintesiRichiesta, CentroMappaMarker = _centroMappaMarkerHandler.Handle(centroMappaQuery).CentroMappaMarker, ListaFiltri = _filtriHandler.Handle(listaFiltriQuery).Filtri, ListaSchedeContatto = _listaSchedeContatto.Handle(listaSchedeContattoQuery).SchedeContatto }; return(new WelcomeResult() { WelcomeRes = welcome }); }
public async Task <IActionResult> Get() { var headerValues = Request.Headers["HubConnectionId"]; string ConId = headerValues.FirstOrDefault(); try { var BoxMezziquery = new BoxMezziQuery(); BoxMezzi boxMezzi = new BoxMezzi(); boxMezzi = (BoxMezzi)this._BoxMezzihandler.Handle(BoxMezziquery).BoxMezzi; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetBoxMezzi", boxMezzi); var BoxPersonalequery = new BoxPersonaleQuery(); BoxPersonale boxPersonale = new BoxPersonale(); boxPersonale = (BoxPersonale)this._BoxPersonalehandler.Handle(BoxPersonalequery).BoxPersonale; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetBoxPersonale", boxPersonale); var BoxRichiestequery = new BoxRichiesteQuery(); BoxInterventi boxInterventi = new BoxInterventi(); boxInterventi = (BoxInterventi)this._BoxRichiestehandler.Handle(BoxRichiestequery).BoxRichieste; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetBoxInterventi", boxInterventi); var SintesiMezziMarkerquery = new SintesiMezziMarkerQuery(); List <SintesiMezzoMarker> listaMezzi = new List <SintesiMezzoMarker>(); listaMezzi = (List <SintesiMezzoMarker>) this._SintesiMezziMarkerhandler.Handle(SintesiMezziMarkerquery).SintesiMezziMarker; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetListaMezziMarker", listaMezzi); var SintesiRichiesteAssistenzaquery = new SintesiRichiesteAssistenzaQuery(); List <SintesiRichiesta> listaSintesi = new List <SintesiRichiesta>(); listaSintesi = (List <SintesiRichiesta>) this._SintesiRichiesteAssistenzahandler.Handle(SintesiRichiesteAssistenzaquery).SintesiRichiesta; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetListaRichieste", listaSintesi); var query = new SintesiRichiesteAssistenzaMarkerQuery(); List <SintesiRichiestaMarker> listaSintesiMarker = new List <SintesiRichiestaMarker>(); listaSintesiMarker = (List <SintesiRichiestaMarker>) this._SintesiRichiesteAssistenzaMarkerhandler.Handle(query).SintesiRichiestaMarker; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetListaRichiesteMarker", listaSintesiMarker); var SintesiSediMarkerquery = new SintesiSediMarkerQuery(); List <SintesiSedeMarker> listaSintesiSediMarker = new List <SintesiSedeMarker>(); listaSintesiSediMarker = (List <SintesiSedeMarker>) this._SintesiSediMarkerhandler.Handle(SintesiSediMarkerquery).SintesiSediMarker; await _NotificationHubContext.Clients.Client(ConId).SendAsync("NotifyGetListaSediMarker", listaSintesiSediMarker); return(Ok()); } catch { return(BadRequest()); } }
public async Task SendNotification(ConfermaPartenzeCommand conferma) { var mapper = new MapperRichiestaAssistenzaSuSintesi(_mapper); const bool notificaChangeState = true; var richiesta = conferma.ConfermaPartenze.richiesta; var sintesi = mapper.Map(richiesta); sintesi.Motivazione = sintesi.Descrizione; var boxRichiesteQuery = new BoxRichiesteQuery(); var boxMezziQuery = new BoxMezziQuery(); var boxPersonaleQuery = new BoxPersonaleQuery(); var sintesiRichiesteQuery = new SintesiRichiesteAssistenzaQuery(); var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery(); var boxInterventi = _boxRichiestehandler.Handle(boxRichiesteQuery).BoxRichieste; var boxMezzi = _boxMezzihandler.Handle(boxMezziQuery).BoxMezzi; var boxPersonale = _boxPersonalehandler.Handle(boxPersonaleQuery).BoxPersonale; var sintesiRichieste = _sintesiRichiesteHandler.Handle(sintesiRichiesteQuery).SintesiRichiesta; var listaSintesiMarker = _sintesiRichiesteAssistenzaMarkerhandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; conferma.ConfermaPartenze.Chiamata = sintesi; await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("ModifyAndNotifySuccess", conferma.ConfermaPartenze); if (conferma.ConfermaPartenze.IdRichiestaDaSganciare != null) { conferma.ConfermaPartenze.Chiamata = sintesiRichieste.LastOrDefault(x => x.Codice == conferma.ConfermaPartenze.IdRichiesta); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("ModifyAndNotifySuccess", conferma.ConfermaPartenze); conferma.ConfermaPartenze.Chiamata = sintesiRichieste.LastOrDefault(x => x.Codice == conferma.ConfermaPartenze.IdRichiestaDaSganciare); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("ModifyAndNotifySuccess", conferma.ConfermaPartenze); } await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("ChangeStateSuccess", notificaChangeState); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("NotifyGetBoxInterventi", boxInterventi); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("NotifyGetBoxMezzi", boxMezzi); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("NotifyGetBoxPersonale", boxPersonale); await _notificationHubContext.Clients.Group(conferma.ConfermaPartenze.CodiceSede).SendAsync("NotifyGetRichiestaMarker", listaSintesiMarker.LastOrDefault(marker => marker.CodiceRichiesta == sintesi.CodiceRichiesta)); }
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(ConfermaPartenzeCommand conferma) { //Sedi gerarchicamente superiori alla richiesta che dovanno ricevere la notifica var SediDaNotificare = new List <string>(); if (conferma.Richiesta.CodSOAllertate != null) { SediDaNotificare = _getGerarchiaToSend.Get(conferma.Richiesta.CodSOCompetente, conferma.Richiesta.CodSOAllertate.ToArray()); } else { SediDaNotificare = _getGerarchiaToSend.Get(conferma.Richiesta.CodSOCompetente); } //Sedi dei mezzi in partenza che dovranno ricevere la notifica SediDaNotificare.AddRange(conferma.ConfermaPartenze.Partenze.Select(c => c.Mezzo.Distaccamento.Codice)); SediDaNotificare = SediDaNotificare.Distinct().ToList(); var listaMezziInServizio = Task.Factory.StartNew(() => _getListaMezzi.Get(SediDaNotificare.ToArray())); var sintesi = Task.Factory.StartNew(() => _mapperSintesi.Map(conferma.Richiesta)).ContinueWith(sintesi => { sintesi.Result.Competenze = MapCompetenze(conferma.Richiesta.CodUOCompetenza); conferma.ConfermaPartenze.Chiamata = sintesi.Result; sintesi.Result.Motivazione = sintesi.Result.Descrizione; return(sintesi.Result); }); Parallel.ForEach(SediDaNotificare, sede => { var CodSede = new string[] { sede }; _notificationHubContext.Clients.Group(sede).SendAsync("ChangeStateSuccess", true); 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 sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery() { CodiciSedi = new string[] { sede } }; var listaSintesiMarker = _sintesiRichiesteAssistenzaMarkerhandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaMarker", listaSintesiMarker.LastOrDefault(marker => marker.CodiceRichiesta == sintesi.Result.CodiceRichiesta)); }); Task.Factory.StartNew(() => { foreach (var partenze in conferma.ConfermaPartenze.Partenze) { _notificationHubContext.Clients.Group(sede).SendAsync("NotifyUpdateMezzoInServizio", listaMezziInServizio.Result.Find(x => x.Mezzo.Mezzo.Codice.Equals(partenze.Mezzo.Codice))); } }); conferma.ConfermaPartenze.Chiamata = sintesi.Result; _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", conferma.ConfermaPartenze); if (conferma.ConfermaPartenze.IdRichiestaDaSganciare != null) { Task.Factory.StartNew(() => { var sintesiSganciata = _mapperSintesi.Map(conferma.RichiestaDaSganciare); sintesiSganciata.Competenze = MapCompetenze(conferma.Richiesta.CodUOCompetenza); conferma.ConfermaPartenze.Chiamata = sintesiSganciata; _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", conferma.ConfermaPartenze); }); } }); }
public async Task SendNotification(UpDateStatoRichiestaCommand richiesta) { var Richiesta = _getRichiestaAssistenzaById.GetById(richiesta.IdRichiesta); var SediDaNotificare = new List <string>(); if (Richiesta.CodSOAllertate != null) { SediDaNotificare = _getGerarchiaToSend.Get(Richiesta.CodSOCompetente, Richiesta.CodSOAllertate.ToArray()); } else { SediDaNotificare = _getGerarchiaToSend.Get(Richiesta.CodSOCompetente); } const bool notificaChangeState = true; foreach (var sede in SediDaNotificare) { var sintesiRichiesteAssistenzaQuery = new SintesiRichiesteAssistenzaQuery { Filtro = new FiltroRicercaRichiesteAssistenza { idOperatore = richiesta.IdOperatore }, CodiciSede = new string[] { sede } }; var boxRichiesteQuery = new BoxRichiesteQuery() { CodiciSede = new string[] { sede } }; var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste; var boxMezziQuery = new BoxMezziQuery() { CodiciSede = new string[] { sede } }; var boxMezzi = _boxMezziHandler.Handle(boxMezziQuery).BoxMezzi; var boxPersonaleQuery = new BoxPersonaleQuery() { CodiciSede = new string[] { sede } }; var boxPersonale = _boxPersonaleHandler.Handle(boxPersonaleQuery).BoxPersonale; var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery() { CodiciSedi = new string[] { sede } }; var listaSintesiMarker = (List <SintesiRichiestaMarker>)_sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker; var ChamataUpd = listaSintesiMarker.LastOrDefault(sintesi => sintesi.Id == richiesta.IdRichiesta); var SintesiRichiesta = _getSintesiById.GetSintesi(ChamataUpd.Codice); richiesta.Chiamata = SintesiRichiesta; await _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", richiesta); await _notificationHubContext.Clients.Group(sede).SendAsync("ChangeStateSuccess", notificaChangeState); await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi); await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxMezzi", boxMezzi); await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxPersonale", boxPersonale); await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaUpDateMarker", ChamataUpd); } }
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)); }); } }); }