Beispiel #1
0
        private async Task TestNutritionixGetCalories(string description, int expectedRes)
        {
            var res = expectedRes;

            if (_useNutritionixInTests)
            {
                res = await NutritionixUtils.GetCaloriesIntAsync("62031f66", "aa0049adb09f7397e00c630db7952cf6", description);
            }
            Assert.Equal(res, expectedRes);
        }
Beispiel #2
0
        private async Task <string> ValidateMealAsync(User apiUser, Meal meal)
        {
            //Console.WriteLine($"# # # ValidateMeal: meal.UserId={meal.UserId} apiUser.Id={apiUser.Id}");
            if (meal.UserId < 1)
            {
                meal.UserId = apiUser.Id;
            }
            else if (_context.Users.Find(meal.UserId) == null)
            {
                return($"Invalid UserId={meal.UserId}");
            }
            if (meal.Date.IsDefault() && meal.Time.IsDefault())
            {
                meal.Date = meal.Time = DateTime.Now;
            }
            else if (meal.Time.IsDefault())
            {
                meal.Time = meal.Date;
            }
            else if (meal.Date.IsDefault())
            {
                meal.Date = meal.Time;
            }
            else if (meal.Time.Date != meal.Date.Date)
            {
                meal.Time = meal.Date.Date + meal.Time.TimeOfDay;
            }
            meal.Date = meal.Date.Date;
            meal.Time = meal.Time.TruncToSecond();

            if (meal.Description == null || meal.Description.Trim().Length < 1)
            {
                meal.Description = null;
            }
            if (meal.Calories < 1)
            {
                if (string.IsNullOrEmpty(meal.Description))
                {
                    return("Description must be set if calories are unset");
                }
                var xAppId  = _configuration.GetValue <string>("Nutritionix:x-app-id");
                var xAppKey = _configuration.GetValue <string>("Nutritionix:x-app-key");

                meal.Calories = await NutritionixUtils.GetCaloriesIntAsync(xAppId, xAppKey, meal.Description);

                if (meal.Calories < 1)
                {
                    return("Calorie Service request failed, please enter calories or simplify description");
                }
            }
            return(null);
        }