예제 #1
0
        private IQueryable<Viaggio> AddTappaSearchFilter(IQueryable<Viaggio> viaggiToBeFiltered, GeoLocation locationFilter, TipoSearch tipoSearch, TipoTappa tipoTappa)
        {
            try
            {
                IQueryable<Viaggio> viaggiFiltered = null;

                if (tipoSearch == null)
                    tipoSearch = TipoSearch.Città;

                switch (tipoSearch)
                {
                    case TipoSearch.Città:
                        viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.City.Equals(locationFilter.City)));
                        break;
                    case TipoSearch.Provincia:
                        viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Province.Equals(locationFilter.Province)));
                        break;
                    case TipoSearch.Regione:
                        viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Region.Equals(locationFilter.Region)));
                        break;
                    case TipoSearch.Nazione:
                        viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Nation.Equals(locationFilter.Nation)));
                        break;
                    default:
                        throw new Exception("TipoSearch sconosciuto: " + Enum.GetName(typeof(TipoSearch), tipoSearch));

                }

                return viaggiFiltered;
            }
            catch (Exception ex)
            {
                string msg = String.Format("Errore nell'aggiunta del filtro per tappa/destinazione");
                logger.ErrorException(msg, ex);
                throw new Exception(msg, ex);
            }
        }
예제 #2
0
        private IQueryable <Viaggio> AddTappaSearchFilter(IQueryable <Viaggio> viaggiToBeFiltered, GeoLocation locationFilter, TipoSearch tipoSearch, TipoTappa tipoTappa)
        {
            try
            {
                IQueryable <Viaggio> viaggiFiltered = null;

                if (tipoSearch == null)
                {
                    tipoSearch = TipoSearch.Città;
                }

                switch (tipoSearch)
                {
                case TipoSearch.Città:
                    viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.City.Equals(locationFilter.City)));
                    break;

                case TipoSearch.Provincia:
                    viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Province.Equals(locationFilter.Province)));
                    break;

                case TipoSearch.Regione:
                    viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Region.Equals(locationFilter.Region)));
                    break;

                case TipoSearch.Nazione:
                    viaggiFiltered = viaggiToBeFiltered.Where(v => v.Tappe.Any(t => t.IdTipo == (int)tipoTappa && t.Location.Nation.Equals(locationFilter.Nation)));
                    break;

                default:
                    throw new Exception("TipoSearch sconosciuto: " + Enum.GetName(typeof(TipoSearch), tipoSearch));
                }


                return(viaggiFiltered);
            }
            catch (Exception ex)
            {
                string msg = String.Format("Errore nell'aggiunta del filtro per tappa/destinazione");
                logger.ErrorException(msg, ex);
                throw new Exception(msg, ex);
            }
        }