public List <SchedaContattoMarker> Get(AreaMappa area, string codSede) { var ListaSchede = _getSchedeContatto.ListaSchedeContatto(codSede); return(GetListaSchedeMarker(area, ListaSchede)); }
/// <summary> /// il metodo la classe recupera le informazioni dei mezzi e la loro posizione georeferenziata. /// </summary> /// <param name="filtroAreaMappa">un area mappa</param> /// <returns>Lista di MezziMarker</returns> public List <MezzoMarker> GetListaMezziMarker(AreaMappa filtroAreaMappa) { var listaMezziFilter = new List <MezzoMarker>(); var listaMezzi = _getMezziUtilizzabili.Get(filtroAreaMappa.CodiceSede).Result; var listaMezziMarker = new List <MezzoMarker>(); foreach (var mezzo in listaMezzi) { var mezzoMarker = new MezzoMarker() { Mezzo = mezzo, InfoRichiesta = _getInfoRichiesta.GetInfoRichiestaFromIdRichiestaMezzo(mezzo.IdRichiesta) }; listaMezziMarker.Add(mezzoMarker); } if (filtroAreaMappa.BottomLeft == null) { return(listaMezziMarker); } listaMezziFilter.AddRange(listaMezziMarker.Where(mezzo => mezzo.Mezzo.Coordinate.Latitudine >= filtroAreaMappa.BottomLeft.Latitudine && mezzo.Mezzo.Coordinate.Latitudine <= filtroAreaMappa.TopRight.Latitudine && mezzo.Mezzo.Coordinate.Longitudine >= filtroAreaMappa.BottomLeft.Longitudine && mezzo.Mezzo.Coordinate.Longitudine <= filtroAreaMappa.TopRight.Longitudine)); var listaMezziMarkerRaggruppata = new List <MezzoMarker>(); var listaMezziFiltrataPerStato = new List <MezzoMarker>(); var listaMezziFitrataPerStatoEGenere = new List <MezzoMarker>(); var listaMezziFiltrataPerGenere = new List <MezzoMarker>(); if (filtroAreaMappa.FiltroMezzi.Stato.Any()) { foreach (var stato in filtroAreaMappa.FiltroMezzi.Stato) { listaMezziFiltrataPerStato.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Stato.Equals(stato))); } if (!filtroAreaMappa.FiltroMezzi.Tipologia.Any()) { listaMezziFilter = listaMezziFiltrataPerStato; } } if (filtroAreaMappa.FiltroMezzi.Tipologia.Any()) { foreach (var genere in filtroAreaMappa.FiltroMezzi.Tipologia) { listaMezziFiltrataPerGenere.AddRange(listaMezziFilter.FindAll(x => x.Mezzo.Genere.Equals(genere))); } if (!filtroAreaMappa.FiltroMezzi.Stato.Any()) { listaMezziFilter = listaMezziFiltrataPerGenere; } } if (filtroAreaMappa.FiltroMezzi.Tipologia.Any() && filtroAreaMappa.FiltroMezzi.Stato.Any()) { listaMezziFilter = listaMezziFiltrataPerStato.FindAll(x => listaMezziFiltrataPerGenere.Contains(x)); } return(listaMezziFilter); //return GroupListaMezziMarker.Group(listaMezziFilter); //TODO da integrare con la clusterizzazione. }