Esempio n. 1
0
        public static List <CaveModel> GetCavesByFilters(CaveTypeModel caveTypeModel, List <CaveDistrictModel> pickedDistricts, List <CaveRegionModel> pickedRegions, List <CaveSiteModel> pickedSites)
        {
            List <CaveModel> resultCaves = new List <CaveModel>(kuchaContainer.Caves);   //Clone them to not access the full list

            if (caveTypeModel != null)
            {
                resultCaves.RemoveAll(cave => cave.caveTypeID != caveTypeModel.caveTypeID);
            }

            if (pickedDistricts?.Count > 0)
            {
                resultCaves.RemoveAll(cave => !pickedDistricts.Any(district => cave.districtID == district.districtID));
            }

            if (pickedRegions?.Count > 0)
            {
                resultCaves.RemoveAll(cave => !pickedRegions.Any(region => cave.regionID == region.regionID));
            }

            if (pickedSites?.Count > 0)
            {
                resultCaves.RemoveAll(cave => !pickedSites.Any(site => cave.siteID == site.siteID));
            }
            return(resultCaves);
        }
Esempio n. 2
0
        public static string GetCaveTypeSketchByID(int id)
        {
            CaveTypeModel c = kuchaContainer.CaveTypes.Find(x => x.caveTypeID == id);

            if (c == null)
            {
                return(String.Empty);
            }
            return(c.sketchName);
        }
Esempio n. 3
0
        private void SearchButton_Clicked(object sender, EventArgs e)
        {
            string        selectedCaveTypeName = caveFilterPicker.Items[caveFilterPicker.SelectedIndex];
            CaveTypeModel caveTypeModel        = caveTypeDictionary[selectedCaveTypeName];

            List <CaveModel>  caves         = Kucha.GetCavesByFilters(caveTypeModel, pickedDistricts, pickedRegions, pickedSites);
            List <CaveFilter> searchHistory = Settings.CaveSearchHistorySetting ?? new List <CaveFilter>();
            CaveFilter        caveFilter    = new CaveFilter
            {
                caveTypeModel      = caveTypeModel,
                pickedDistricts    = pickedDistricts,
                pickedRegions      = pickedRegions,
                pickedSites        = pickedSites,
                FoundResultsString = "Results: " + caves.Count,
                SearchTimeString   = "At " + DateTime.UtcNow.ToString()
            };

            searchHistory.Add(caveFilter);
            Settings.CaveSearchHistorySetting = searchHistory.OrderByDescending(x => x.SearchTimeString).ToList();

            Navigation.PushAsync(new CaveSearchResultUI(caves), true);
        }