public List <SintesiRichiestaMarker> MapRichiesteSuMarkerSintesi(List <RichiestaAssistenza> listaRichieste) { List <SintesiRichiestaMarker> ListaSintesi = new List <SintesiRichiestaMarker>(); foreach (RichiestaAssistenza elemento in listaRichieste) { SintesiRichiestaMarker sintesi = new SintesiRichiestaMarker(); string statoRichiesta = DecodifcaStatoRichiesta(elemento.StatoRichiesta); sintesi.Id = elemento.Id; sintesi.Localita = elemento.Localita; sintesi.Tipologia = elemento.Tipologie; sintesi.Label = elemento.Descrizione; sintesi.Priorita = elemento.PrioritaRichiesta; sintesi.Stato = statoRichiesta; sintesi.Rilevanza = DateTime.Now; ListaSintesi.Add(sintesi); } return(ListaSintesi); }
public List <SintesiRichiestaMarker> GetListaRichiesteMarker(SintesiRichiesteAssistenzaMarkerQuery query) { var listaSintesiRichieste = new List <RichiestaAssistenza>(); var pinNodi = new List <PinNodo>(); foreach (var sede in query.CodiciSedi) { pinNodi.Add(new PinNodo(sede, true)); } query.Filtro = new API.Models.Servizi.Infrastruttura.GestioneSoccorso.RicercaRichiesteAssistenza.FiltroRicercaRichiesteAssistenza { UnitaOperative = pinNodi.ToHashSet() }; var listaSediAlberate = _getAlberaturaUnitaOperative.ListaSediAlberata(); foreach (var figlio in listaSediAlberate.GetSottoAlbero(query.Filtro.UnitaOperative)) { listaSintesiRichieste.AddRange(_dbContext.RichiestaAssistenzaCollection.Find(Builders <RichiestaAssistenza> .Filter.Eq(x => x.CodSOCompetente, figlio.Codice)).ToList()); } var listaSintesiRichiesteMarker = new List <SintesiRichiestaMarker>(); foreach (RichiestaAssistenza richiesta in listaSintesiRichieste) { SintesiRichiestaMarker sintesi = new SintesiRichiestaMarker() { Aperta = richiesta.Aperta, Chiusa = richiesta.Chiusa, Codice = richiesta.Codice, CodiceRichiesta = richiesta.CodRichiesta, Descrizione = richiesta.Descrizione, Id = richiesta.Id, InAttesa = richiesta.InAttesa, IstantePrimaAssegnazione = richiesta.IstantePrimaAssegnazione, Localita = richiesta.Localita, Presidiata = richiesta.Presidiata, PrioritaRichiesta = richiesta.PrioritaRichiesta, RilevanteGrave = richiesta.RilevanteGrave, RilevanteStArCu = richiesta.RilevanteStArCu, Sospesa = richiesta.Sospesa, Tipologie = _getTipologie.Get(richiesta.Tipologie) }; listaSintesiRichiesteMarker.Add(sintesi); } List <SintesiRichiestaMarker> listaSintesiRichiestaMarkers; if (listaSintesiRichiesteMarker == null) { return(null); } switch (query.FiltroCentroMappa) { case null: return(listaSintesiRichiesteMarker); default: listaSintesiRichiestaMarkers = listaSintesiRichiesteMarker.Where(richiesta => (richiesta.Localita.Coordinate.Latitudine >= query.FiltroCentroMappa.BottomLeft.Latitudine) && (richiesta.Localita.Coordinate.Latitudine <= query.FiltroCentroMappa.TopRight.Latitudine) && (richiesta.Localita.Coordinate.Longitudine >= query.FiltroCentroMappa.BottomLeft.Longitudine) && (richiesta.Localita.Coordinate.Longitudine <= query.FiltroCentroMappa.TopRight.Longitudine)) .ToList(); break; } if (query.FiltroCentroMappa.FiltroRichieste == null) { return(listaSintesiRichiestaMarkers); } var listaRichiesteFiltrate = new List <SintesiRichiestaMarker>(); if (!query.FiltroCentroMappa.FiltroRichieste.Stato.Any()) { return(query.FiltroCentroMappa.FiltroRichieste.Priorita == null ? listaSintesiRichiestaMarkers : listaSintesiRichiestaMarkers.FindAll(x => x.PrioritaRichiesta >= query.FiltroCentroMappa.FiltroRichieste.Priorita)); } ; foreach (var statoRichiesta in query.FiltroCentroMappa.FiltroRichieste.Stato) { if (statoRichiesta == Costanti.RichiestaAssegnata) { listaRichiesteFiltrate.AddRange( listaSintesiRichiesteMarker.FindAll(x => x.Stato == Costanti.RichiestaAssegnata)); } if (statoRichiesta == Costanti.RichiestaPresidiata) { listaRichiesteFiltrate.AddRange( listaSintesiRichiesteMarker.FindAll(x => x.Stato == Costanti.RichiestaPresidiata)); } if (statoRichiesta == Costanti.Chiamata) { listaRichiesteFiltrate.AddRange( listaSintesiRichiesteMarker.FindAll(x => x.Stato == Costanti.Chiamata)); } if (statoRichiesta == Costanti.RichiestaSospesa) { listaRichiesteFiltrate.AddRange( listaSintesiRichiesteMarker.FindAll(x => x.Stato == Costanti.RichiestaSospesa)); } } return(query.FiltroCentroMappa.FiltroRichieste.Priorita == null ? listaRichiesteFiltrate : listaRichiesteFiltrate.FindAll(x => x.PrioritaRichiesta >= query.FiltroCentroMappa.FiltroRichieste.Priorita)); }