private async Task <List <FoodViewModel> > ExecuteSearch(FoodSearchViewModel VM) { VM.Results.Clear(); List <FoodViewModel> results = new List <FoodViewModel>(); List <Food> localFoods = (List <Food>) await _foodService.Search(VM.SearchName, VM.Brand, VM.CalsMin, VM.CalsMax, VM.MacCMin, VM.MacCMax, VM.MacPMin, VM.MacPMax, VM.MacFMin, VM.MacFMax); foreach (Food f in localFoods) { results.Add(new FoodViewModel(f)); } List <FoodViewModel> APIFoods = ExecuteAPISearch(VM).Result; foreach (FoodViewModel f in APIFoods.ToList()) { //Refine search by ranges because API doesn't offer feature if (f.Cals > VM.CalsMin && f.Cals < VM.CalsMax && f.MacC > VM.MacCMin && f.MacC < VM.MacCMax && f.MacP > VM.MacPMin && f.MacP < VM.MacPMax && f.MacP > VM.MacPMin && f.MacP < VM.MacPMax) { results.Add(f); } } VM.Date = HttpContext.Session.GetString("MealDate"); return(results); }
public async Task <IActionResult> SearchClear(FoodSearchViewModel VM) { VM.SearchName = null; VM.MealType = 0; VM.Results = await ExecuteSearch(VM); VM.Date = HttpContext.Session.GetString("MealDate"); ModelState.Clear(); return(View("SearchFood", VM)); }
private async Task <List <FoodViewModel> > ExecuteAPISearch(FoodSearchViewModel VM) { VM.Results.Clear(); List <Food> results = (List <Food>) await APIHelper.SearchFood(VM.SearchName, VM.Brand); foreach (Food f in results) { VM.Results.Add(new FoodViewModel(f)); } VM.Date = HttpContext.Session.GetString("SearchMealDate"); return(VM.Results); }
public async Task <IActionResult> SearchFoodForMeal(int MealID, String date, int mealType) { //Using session instead of hidden VM vals because it can be used by multiple methods HttpContext.Session.SetInt32("MealID", MealID); HttpContext.Session.SetString("MealDate", date); HttpContext.Session.SetInt32("MealType", mealType); FoodSearchViewModel VM = new FoodSearchViewModel(); VM.Results = await ExecuteSearch(VM); VM.Date = date; VM.MealType = 0; return(View("SearchFood", VM)); }
public async Task <IIndexResponse> Index(FoodSearchViewModel item) { var model = new FoodSearch { Id = item.Id, Description = item.Description, FoodLocationId = item.FoodLocationId, FoodLocationName = item.FoodLocationName, Image = item.Image, Name = item.Name, Price = item.Price, PriceOld = item.PriceOld, Location = new GeoLocation(item.Latitude, item.Longitude), Category = item.Category, Tag = " " + item.Name.ToLower() + " " + convertToUnSign3(item.Name.ToLower()) + " ", CategoryLocation = item.CategoryLocation }; return(await _client.IndexAsync <FoodSearch>(model, i => i .Index("food") .Type("foodsearch") .Id(model.Id) .Refresh(Elasticsearch.Net.Refresh.True))); }
public async Task <IActionResult> Search(FoodSearchViewModel VM) { VM.Results = await ExecuteSearch(VM); return(View("SearchFood", VM)); }
public async Task <IDeleteResponse> Delete(FoodSearchViewModel model) { return(await _client.DeleteAsync <FoodSearch>(model.Id, d => d .Index("food") .Type("foodsearch"))); }