コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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
            });
        }
コード例 #4
0
        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());
            }
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
                    });
                }
            });
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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);
            });
        }
コード例 #10
0
        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));
                    });
                }
            });
        }