コード例 #1
0
        public async Task SendNotification(AddInterventoCommand intervento)
        {
            var sintesi = _getSintesiRichiestaByCodice.GetSintesi(intervento.Chiamata.Codice);

            var SediDaNotificare = _getGerarchiaToSend.Get(sintesi.CodSOCompetente);

            Parallel.ForEach(SediDaNotificare, sede =>
            {
                var boxRichiesteQuery = new BoxRichiesteQuery
                {
                    CodiciSede = new string[] { sede }
                };
                var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste;

                var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery()
                {
                    CodiciSedi = new string[] { sede }
                };
                var listaSintesiMarker = (List <SintesiRichiestaMarker>)_sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker;

                _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi);
                _notificationHubContext.Clients.Group(sede).SendAsync("SaveAndNotifySuccessChiamata", sintesi);
                _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == intervento.Chiamata.Codice));
            });
        }
コード例 #2
0
        public async Task SendNotification(UpDateInterventoCommand intervento)
        {
            var SintesiRichiesta = _getSintesiById.GetSintesi(intervento.Chiamata.Codice);

            intervento.Chiamata = SintesiRichiesta;

            var SediDaNotificare = _getGerarchiaToSend.Get(intervento.Chiamata.CodSOCompetente, SintesiRichiesta.CodSOAllertate.ToArray());

            foreach (var sede in SediDaNotificare)
            {
                var boxRichiesteQuery = new BoxRichiesteQuery()
                {
                    CodiciSede = new string[] { sede }
                };

                var boxInterventi = _boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste;

                var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery()
                {
                    CodiciSedi = new string[] { sede }
                };

                var listaSintesiMarker = (List <SintesiRichiestaMarker>) this._sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker;
                await _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", intervento);

                await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetBoxInterventi", boxInterventi);

                await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyGetRichiestaUpDateMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == intervento.Chiamata.Codice)).ConfigureAwait(false);
            }
        }
コード例 #3
0
ファイル: ChiamataController.cs プロジェクト: somaliz/sovvf
        public async Task <IActionResult> Add([FromBody] Intervento chiamata)
        {
            var codiceSede = Request.Headers["codicesede"];
            var idUtente   = Request.Headers["IdUtente"];

            var command = new AddInterventoCommand()
            {
                Chiamata   = chiamata,
                CodiceSede = codiceSede,
                CodUtente  = idUtente
            };

            try
            {
                this._Addhandler.Handle(command);
                return(Ok(_getSintesiRichiestaByCodice.GetSintesi(command.Chiamata.Codice)));
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains(Costanti.UtenteNonAutorizzato))
                {
                    return(StatusCode(403, Costanti.UtenteNonAutorizzato));
                }
                return(BadRequest());
            }
        }
コード例 #4
0
        public async Task <IActionResult> Add([FromBody] Intervento chiamata)
        {
            var codiceSede = Request.Headers["codicesede"];
            var idUtente   = Request.Headers["IdUtente"];

            var command = new AddInterventoCommand()
            {
                Chiamata   = chiamata,
                CodiceSede = codiceSede.ToString().Split(',', StringSplitOptions.RemoveEmptyEntries)[0],
                CodUtente  = idUtente
            };

            try
            {
                _Addhandler.Handle(command);
                return(Ok(_getSintesiRichiestaByCodice.GetSintesi(command.Chiamata.Codice)));
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains(Costanti.UtenteNonAutorizzato))
                {
                    return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato }));
                }
                return(BadRequest(new { message = ex.Message }));
            }
        }
コード例 #5
0
        public async Task SendNotification(AllertaAltreSediCommand command)
        {
            var sintesi = _getSintesiById.GetSintesi(command.CodiceRichiesta);

            var SediDaNotificare = new List <string>();

            if (sintesi.CodSOAllertate != null)
            {
                SediDaNotificare = _getGerarchiaToSend.Get(sintesi.CodSOCompetente, sintesi.CodSOAllertate.ToArray());
            }
            else
            {
                SediDaNotificare = _getGerarchiaToSend.Get(sintesi.CodSOCompetente);
            }

            command.Chiamata = sintesi;
            //Invio la notifica alle competenze della richiesta
            foreach (var sede in SediDaNotificare)
            {
                if (!sede.Equals(sintesi.CodSOCompetente))
                {
                    await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyAllertaAltreSedi", sintesi);
                }

                await _notificationHubContext.Clients.Group(sede).SendAsync("ModifyAndNotifySuccess", command);
            }

            if (command.CodSediAllertateOld != null)
            {
                foreach (var sede in command.CodSediAllertateOld)
                {
                    await _notificationHubContext.Clients.Group(sede).SendAsync("NotifyDeleteAllertaAltreSedi", command.CodiceRichiesta);
                }
            }
        }
コード例 #6
0
        public async Task SendNotification(FonogrammaCommand command)
        {
            var richiesta = _getRichiestaById.GetById(command.Fonogramma.IdRichiesta);
            var sintesi   = _getSintesiRichiestaAssistenzaByCodice.GetSintesi(richiesta.Codice);

            command.Chiamata = sintesi;

            await _notificationHubContext.Clients.All.SendAsync("ModifyAndNotifySuccess", command);
        }
コード例 #7
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);
        }
コード例 #8
0
        /// <summary>
        ///   Metodi di esecuzione della query
        /// </summary>
        /// <param name="query">Il DTO di ingresso della query</param>
        /// <returns>Il DTO di uscita della query</returns>
        public GetSintesiRichiestaAssistenzaResult Handle(GetSintesiRichiestaAssistenzaQuery query)
        {
            Log.Debug("Inizio elaborazione Sintesi Richiesta by Codice Richiesta Handler");

            // estrae la richieste di assistenza indicata
            var sintesiAssistenza = _getRichiestaAssistenzaById.GetSintesi(query.CodiceRichiesta);

            Log.Debug("Fine elaborazione Sintesi Richiesta by Codice Richiesta Handler");

            return(new GetSintesiRichiestaAssistenzaResult()
            {
                SintesiRichiesta = sintesiAssistenza
            });
        }
コード例 #9
0
        public void Notify(AddInterventoCommand command)
        {
            var sintesi = _getSintesiRichiestaByCodice.GetSintesi(command.Chiamata.Codice);

            _sender.SendNotification(command);

            var messaggio  = $"E' stato richiesto un intervento in {sintesi.Localita.Indirizzo}. Codice Intervento: {sintesi.Codice}";
            var infoMatrix = new MessageMatrix()
            {
                Messaggio = messaggio,
                CodSede   = sintesi.CodSOCompetente.Split('.')[0]
            };

            _callMatrix.SendMessage(infoMatrix);
        }
コード例 #10
0
        public async Task SendNotification(AddInterventoCommand intervento)
        {
            var boxRichiesteQuery = new BoxRichiesteQuery
            {
                CodiciSede = new string[] { intervento.CodiceSede }
            };
            var boxInterventi = (BoxInterventi)this._boxRichiesteHandler.Handle(boxRichiesteQuery).BoxRichieste;

            var sintesiRichiesteAssistenzaMarkerQuery = new SintesiRichiesteAssistenzaMarkerQuery()
            {
                CodiciSedi = new string[] { intervento.CodiceSede }
            };
            var listaSintesiMarker = (List <SintesiRichiestaMarker>) this._sintesiRichiesteAssistenzaMarkerHandler.Handle(sintesiRichiesteAssistenzaMarkerQuery).SintesiRichiestaMarker;

            var sintesi = _getSintesiRichiestaByCodice.GetSintesi(intervento.Chiamata.Codice);

            await _notificationHubContext.Clients.Group(intervento.CodiceSede).SendAsync("SaveAndNotifySuccessChiamata", sintesi);

            await _notificationHubContext.Clients.Group(intervento.CodiceSede).SendAsync("NotifyGetBoxInterventi", boxInterventi);

            await _notificationHubContext.Clients.Group(intervento.CodiceSede).SendAsync("NotifyGetRichiestaMarker", listaSintesiMarker.LastOrDefault(marker => marker.Codice == intervento.Chiamata.Codice));
        }
コード例 #11
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);
            }
        }