public IEnumerable <AuthorizationResult> Authorize(ChiamataInCorsoMarkerCommand command) { var username = _currentUser.Identity.Name; var user = _findUserByUsername.FindUserByUs(username); var Competenze = _getCompetenze.GetCompetenzeByCoordinateIntervento(command.AddChiamataInCorso.Localita.Coordinate).ToHashSet(); if (_currentUser.Identity.IsAuthenticated) { if (user == null) { yield return(new AuthorizationResult(Costanti.UtenteNonAutorizzato)); } var listaPin = _getPinNodoByCodSede.GetListaPin(Competenze.ToArray()); FiltroRicercaRichiesteAssistenza filtro = new FiltroRicercaRichiesteAssistenza() { IndirizzoIntervento = command.AddChiamataInCorso.Localita, SearchKey = "0", UnitaOperative = listaPin.ToHashSet() }; var richiesteEsistenti = _getListaSintesi.GetListaSintesiRichieste(filtro); if (richiesteEsistenti.Count > 0) { _notificationDoubleChiamataInCorso.SendNotification(command); } } else { yield return(new AuthorizationResult(Costanti.UtenteNonAutorizzato)); } }
public BoxInterventi Get(ISet <PinNodo> listaPin) { var interventi = new BoxInterventi(); var filtro = new FiltroRicercaRichiesteAssistenza { UnitaOperative = listaPin, IncludiRichiesteChiuse = true }; var listaSintesi = _getListaSintesi.GetListaSintesiRichieste(filtro); if (listaSintesi.Count > 0) { interventi.Assegnati = listaSintesi.Count(x => x.Partenze.Count > 0 && !x.Partenze.All(c => c.Partenza.Terminata || c.Partenza.PartenzaAnnullata || c.Partenza.Sganciata) && !x.Chiusa && !x.Presidiata && !x.Sospesa && x.Aperta); interventi.Chiamate = listaSintesi.Count(x => (x.Partenze.Count == 0 || x.Partenze.All(c => c.Partenza.Terminata || c.Partenza.PartenzaAnnullata || c.Partenza.Sganciata)) && !x.Chiusa && !x.Sospesa); interventi.Presidiati = listaSintesi.Count(x => x.Presidiata); interventi.Chiusi = listaSintesi.Count(x => x.Chiusa); interventi.TotAnnoCorrente = listaSintesi.Count(x => x.IstanteRicezioneRichiesta.Year == DateTime.Now.Year && x.Chiusa); interventi.TotTurnoCorrente = listaSintesi.Count(x => x.IstanteRicezioneRichiesta.Year == DateTime.Now.Year); interventi.TotTurnoPrecedente = 0; interventi.Totale = listaSintesi.Count(x => x.Aperta); interventi.AnnoCorrente = DateTime.Now.Year; } return(interventi); }
/// <summary> /// Metodo di esecuzione della query /// </summary> /// <param name="query">Il DTO di ingresso della query</param> /// <returns>Il DTO di uscita della query</returns> public SintesiRichiesteAssistenzaResult Handle(SintesiRichiesteAssistenzaQuery query) { var mapperSuIntervento = new MapperSintesiSuIntervento(_mapper); var listaSintesi = _iGetListaSintesi.GetListaSintesiRichieste(query.Filtro); return(new SintesiRichiesteAssistenzaResult() { SintesiRichiesta = listaSintesi }); }
public GetCountInterventiVicinanzeResult Handle(GetCountInterventiVicinanzeQuery query) { var competenze = _getCompetenze.GetCompetenzeByCoordinateIntervento(query.Coordinate); var lstPinNodo = competenze.Select(c => new PinNodo(c, true)).ToHashSet(); var result = _getListaSintesi.GetListaSintesiRichieste(new FiltroRicercaRichiesteAssistenza() { UnitaOperative = lstPinNodo }); return(new GetCountInterventiVicinanzeResult() { Count = result.Count }); }
/// <summary> /// Metodo di esecuzione della query /// </summary> /// <param name="query">Il DTO di ingresso della query</param> /// <returns>Il DTO di uscita della query</returns> public SintesiRichiesteAssistenzaResult Handle(SintesiRichiesteAssistenzaQuery query) { Log.Debug("Inizio elaborazione Lista Sintesi Richieste Assistenza Handler"); var listaSediUtenteAbilitate = _getUtenteById.GetUtenteByCodice(query.Filtro.idOperatore).ListaUnitaOperativeAbilitate.ToHashSet(); var listaSediAlberate = _getAlberaturaUnitaOperative.ListaSediAlberata(); var pinNodi = new List <PinNodo>(); foreach (var sede in query.CodiciSede) { pinNodi.Add(new PinNodo(sede, true)); } foreach (var figlio in listaSediAlberate.GetSottoAlbero(pinNodi)) { pinNodi.Add(new PinNodo(figlio.Codice, true)); } query.Filtro.UnitaOperative = pinNodi.ToHashSet(); if (query.Filtro.IncludiRichiesteAperte == false && query.Filtro.IncludiRichiesteChiuse == false) { query.Filtro.IncludiRichiesteAperte = true; query.Filtro.IncludiRichiesteChiuse = true; } var listaSintesi = _iGetListaSintesi.GetListaSintesiRichieste(query.Filtro); var listaSintesiPaginata = new List <SintesiRichiesta>(); if (query.Filtro.Page > 0 && query.Filtro.PageSize > 0) { listaSintesiPaginata = listaSintesi.Skip((query.Filtro.Page - 1) * query.Filtro.PageSize).Take(query.Filtro.PageSize).ToList(); } Log.Debug("Fine elaborazione Lista Sintesi Richieste Assistenza Handler"); return(new SintesiRichiesteAssistenzaResult() { SintesiRichiesta = (query.Filtro.Page > 0 && query.Filtro.PageSize > 0) ? listaSintesiPaginata : listaSintesi, Pagination = new Paginazione { Page = query.Filtro.Page, PageSize = query.Filtro.PageSize, TotalItems = listaSintesi.Count } }); }
public BoxInterventi Get(ISet <PinNodo> listaPin) { var interventi = new BoxInterventi(); var filtro = new FiltroRicercaRichiesteAssistenza { UnitaOperative = listaPin }; var listaSintesi = _getListaSintesi.GetListaSintesiRichieste(filtro); if (listaSintesi.Count > 0) { interventi.Assegnati = listaSintesi.Count(x => x.Partenze.Count > 0 && !x.Chiusa); interventi.Chiamate = listaSintesi.Count(x => x.Partenze.Count == 0 && !x.Chiusa && !x.Sospesa); interventi.Presidiati = listaSintesi.Count(x => x.Presidiata); interventi.Sospesi = listaSintesi.Count(x => x.Sospesa); interventi.TotAnnoCorrente = listaSintesi.Count(x => x.IstanteRicezioneRichiesta.Year == DateTime.Now.Year); interventi.TotTurnoCorrente = listaSintesi.Count(x => x.IstanteRicezioneRichiesta.Year == DateTime.Now.Year); interventi.TotTurnoPrecedente = 0; interventi.Totale = listaSintesi.Count; interventi.AnnoCorrente = DateTime.Now.Year; } return(interventi); }