public ActionResult <Dish> DishByID(string dishID) { var dish = _mongoDBConnector.GetDishById(dishID); if (dish is null) { return(NotFound("Dish not found")); } return(new JsonResult(dish)); }
public ActionResult GetGastronomyByNutrient(string nutrientID) { List <MergedGastronomy> list = new List <MergedGastronomy>(); var dishesContainingNutrient = _mongoDBConnector.GetDishesByNutrient(nutrientID); var dishesIDContainingNutrient = dishesContainingNutrient.Select(x => x.ID).ToList(); foreach (var dish in dishesContainingNutrient) { var gastronomies = _mongoDBConnector.GetGastronomiesByDishId(dish.ID.ToString()); foreach (var g in gastronomies) { var openDataGastronomy = _openDataHupConnector.GetGastronomyByID(g.ForeignID); JObject openDataGastronomyJson = (JObject)JsonConvert.DeserializeObject(openDataGastronomy); MergedGastronomy mergedGastronomy = mapper.Map <MergedGastronomy>(g); mergedGastronomy.Name = openDataGastronomyJson["Detail"]["en"]["Title"].ToString(); mergedGastronomy.ZipCode = openDataGastronomyJson["ContactInfos"]["en"]["Address"].ToString(); mergedGastronomy.ZipCode = openDataGastronomyJson["ContactInfos"]["en"]["ZipCode"].ToString(); if (openDataGastronomyJson["ImageGallery"] != null && openDataGastronomyJson["ImageGallery"].Count() > 0) { mergedGastronomy.ImageUrl = openDataGastronomyJson["ImageGallery"].FirstOrDefault()["ImageUrl"].ToString(); } mergedGastronomy.Position = new Position() { Altitude = Convert.ToInt32(openDataGastronomyJson["Altitude"]), Latitude = Convert.ToDouble(openDataGastronomyJson["Latitude"]), Longitude = Convert.ToDouble(openDataGastronomyJson["Longitude"]) }; mergedGastronomy.DishesContainingNutrient = new List <string>(); foreach (var id in mergedGastronomy.Dishes) { if (dishesIDContainingNutrient.Contains(id)) { mergedGastronomy.DishesContainingNutrient.Add(_mongoDBConnector.GetDishById(id.ToString()).Name); } } list.Add(mergedGastronomy); } } return(new JsonResult(list)); }