示例#1
0
 public static string ToJson(this GetFoodsNutrientsJsonResults self) => JsonConvert.SerializeObject(self, DAL.API.FoodNutritionConverter.Settings);
示例#2
0
        ///////////////////////////////////////////


        public async Task <Nutrition> GetNutritionsByName(string search)
        {
            List <Parameter> body = new List <Parameter> {
                new DataParameter("applicationSecret", "136102bad14d027d885ecd731f5a92d0"),
                new DataParameter("foodDescription", search),
                new DataParameter("applicationId", "4d8b69d2")
            };


            /*  List<Parameter> body = new List<Parameter> {
             *
             * new DataParameter("applicationSecret", "12707924c854726c16ec685b23b25d5e"),
             * new DataParameter("foodDescription", search),
             * new DataParameter("applicationId", "7dc87896")
             *
             * };*/


            /*  List<Parameter> body = new List<Parameter> {
             *
             * new DataParameter("applicationSecret", "f4b41ced83da477aae9ac35d1ff77a24"),
             * new DataParameter("foodDescription", search),
             * new DataParameter("applicationId", "650bd306")
             *
             * };*/

            // nutrition Nutritions = new nutrition();
            List <Nutrition> nutritionArr = new List <Nutrition>();

            try
            {
                if (!check_con())
                {
                    throw new Exception("ERROR Connecting To Internet. Please Connect To Internet!");
                }

                var temp = await RapidApi.Call("Nutritionix", "getFoodsNutrients", body.ToArray());

                if (temp.TryGetValue("success", out object payload))
                {
                    var getFoodsNutrientsJsonResults = GetFoodsNutrientsJsonResults.FromJson(JsonConvert.SerializeObject(temp));
                    foreach (var item in getFoodsNutrientsJsonResults.Success[0].Foods)
                    {
                        nutritionArr.Add(
                            new Nutrition(
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfCalories,
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfTotalCarbohydrate,
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfTotalFat,
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfProtein,
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfSodium,
                                getFoodsNutrientsJsonResults.Success[0].Foods[0].NfSugars

                                )
                            );
                    }



                    if (nutritionArr.Count > 0)
                    {
                        foreach (PropertyInfo p in nutritionArr[0].GetType().GetProperties())
                        {
                            if (p.GetValue(nutritionArr[0]) == null)
                            {
                                p.SetValue(nutritionArr[0], 0.00, null);
                            }
                        }
                    }
                }
                else
                {
                    JObject jObject  = JObject.Parse(json: JsonConvert.SerializeObject(temp));
                    var     error    = jObject.SelectToken("error");
                    var     errorMsg = jObject.SelectToken("error").First.First;
                    throw new Exception("Error,\n API problem: " + errorMsg.ToString() + ",\n Please contact the technician man.");
                }
                return(nutritionArr[0]);
            }
            catch (RapidAPIServerException e)
            {
                throw new Exception(e.Message);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }