コード例 #1
0
        private async void btnQuery_Click(object sender, System.EventArgs e)
        {
            string queryString = txtQuery.Text;

            if (string.IsNullOrEmpty(queryString))
            {
                return;
            }

            ClearResults();

            string message = await Query.query(queryString);

            //JavaScriptSerializer jss = new JavaScriptSerializer();
            //Results ro = jss.Deserialize<Results>(message);

            Results ro = JsonConvert.DeserializeObject <Results>(message);

            if (ro.total == 0)
            {
                flpCurrent = flpItems.NoResults;
                //MessageBox.Show("No results found for \"" + queryString + "\"", "No results", MessageBoxButtons.OK);
                UpdateSourceLabel("No results for \"" + queryString + "\"");
            }
            else
            {
                flpCurrent = flpItems.Search;
                UpdateSourceLabel("Query results for \"" + queryString + "\"");
                PopulateResults(ro.GetFoods(), false, false);
            }
        }
コード例 #2
0
        private void btnShowCustom_Click(object sender, EventArgs e)
        {
            List <Food> customFood = CustomForm.GetCustomFood(JsonFunctions.GetFilepath(CustomForm.foodFile));

            PopulateResults(customFood, false, true);

            flpCurrent = flpItems.Custom;
            UpdateSourceLabel();
        }
コード例 #3
0
        private async void btnSuggest_Click(object sender, EventArgs e)
        {
            //Filters f = new Filters(500, 100, 100, 100, 500);
            Filters f  = new Filters(currentUser.CalRemain(), currentUser.SugarLeft(), currentUser.SodiumLeft(), currentUser.TotalFatLeft(), currentUser.CholesterolLeft());
            Filters f2 = new Filters(currentUser.CalRemain() / 2, currentUser.SugarLeft(), currentUser.SodiumLeft(), currentUser.TotalFatLeft(), currentUser.CholesterolLeft());
            Filters f3 = new Filters(currentUser.CalRemain() / 3, currentUser.SugarLeft(), currentUser.SodiumLeft(), currentUser.TotalFatLeft(), currentUser.CholesterolLeft());

            ClearResults();

            string message = await Query.query(f);

            string message2 = await Query.query(f2);

            string message3 = await Query.query(f3);

            Results ro  = JsonConvert.DeserializeObject <Results>(message);
            Results ro2 = JsonConvert.DeserializeObject <Results>(message2);
            Results ro3 = JsonConvert.DeserializeObject <Results>(message3);

            if (ro.total + ro2.total + ro3.total == 0)
            {
                flpCurrent = flpItems.NoResults;
                UpdateSourceLabel("No suggestions for foods");
            }
            else
            {
                flpCurrent = flpItems.Search;
                UpdateSourceLabel("Food suggestions");

                List <Food> randomFoods = new List <Food>();
                List <Food> allFoods    = (ro.GetFoods().Union(ro2.GetFoods()).ToList()).Union(ro3.GetFoods()).ToList();

                int        times    = Math.Min(allFoods.Count(), 10);
                Random     r        = new Random();
                List <int> usedNums = new List <int>();

                for (int i = 0; i < times; i++)
                {
                    int rand = r.Next(allFoods.Count());
                    while (usedNums.Contains(rand))
                    {
                        rand = r.Next(allFoods.Count());
                    }
                    usedNums.Add(rand);

                    randomFoods.Add(allFoods[rand]);
                }
                PopulateResults(randomFoods, false, false);
            }
        }
コード例 #4
0
        private void btnEaten_Click(object sender, EventArgs e)
        {
            if (currentUser.eaten_cal == 0)
            {
                ClearResults();
            }

            PopulateResults(GetFoodEaten(currentUser), true, true);

            txtQuery.Clear();

            flpCurrent = flpItems.Eaten;
            UpdateSourceLabel();
        }