コード例 #1
0
        private void MealDetails()
        {
            MapMealUnit mealUnitmap = (MapMealUnit)unitPicker.SelectedItem;
            double      counter     = ((Counter)counter1Picker.SelectedItem).Value + ((Counter)counter2Picker.SelectedItem).Value;

            Calories.Text    = (counter * mealUnitmap.Calories).ToString();
            Fats.Text        = (counter * mealUnitmap.Fat).ToString();
            UnSatFats.Text   = (counter * mealUnitmap.UnSatFat).ToString();
            SatFats.Text     = (counter * mealUnitmap.UnSatFat).ToString();
            SatFats.Text     = (counter * mealUnitmap.UnSatFat).ToString();
            Protein.Text     = (counter * mealUnitmap.Protein).ToString();
            Fiber.Text       = (counter * mealUnitmap.Fiber).ToString();
            Natrium.Text     = (counter * mealUnitmap.Natrium).ToString();
            Potassium.Text   = (counter * mealUnitmap.Potassium).ToString();
            Carbs.Text       = (counter * mealUnitmap.UnSatFat).ToString();
            Cholesterol.Text = (counter * mealUnitmap.Cholesterol).ToString();
            Sugars.Text      = (counter * mealUnitmap.Sugar).ToString();
            Points.Text      = PointSystem.PointCalculate(counter * mealUnitmap.Calories).ToString();
        }
コード例 #2
0
        void OnUnitChosen(object sender, SelectedItemChangedEventArgs e)
        {
            MapMealUnit mapmeal = e.SelectedItem as MapMealUnit;

            double perc     = SelMapMealUnit.Calories / mapmeal.Calories;
            double dekadika = perc * ((Counter)counter2Picker.SelectedItem).Value;
            int    count1   = (int)((Counter)counter1Picker.SelectedItem).Value;
            double result   = dekadika + (perc * count1);

            counter1Picker.ItemSelected -= OnCount1Chosen;
            counter1Picker.SelectedItem  = DicCount1[(int)Math.Floor(result)];
            counter1Picker.ItemSelected += OnCount1Chosen;
            counter1Picker.ScrollTo(counter1Picker.SelectedItem, ScrollToPosition.Center, true);

            dekadika = (result - Math.Truncate(result));

            Tuple <double, Counter> bestMatch = null;

            foreach (var ec in DicCount2)
            {
                var dif = Math.Abs(ec.Value - dekadika);
                if (bestMatch == null || dif < bestMatch.Item1)
                {
                    bestMatch = Tuple.Create(dif, ec);
                }
            }

            counter2Picker.ItemSelected -= OnCount2Chosen;
            counter2Picker.SelectedItem  = bestMatch.Item2;
            counter2Picker.ItemSelected -= OnCount2Chosen;
            counter2Picker.ScrollTo(counter2Picker.SelectedItem, ScrollToPosition.Center, true);

            SelMapMealUnit = mapmeal;

            MealDetails();
        }
コード例 #3
0
        public void CalcUnits(int IDMealSelected, UserMeal usermeal = null)
        {
            // int IDMealSelected = 0;
            SelMapMealUnit = null;
            this.usermeal  = usermeal;
            recordsUnits.Clear();
            // if (usermeal != null)
            // {
            //      IDMealSelected = conn.Get<MealUnit>(usermeal.IDMealUnit).IDMeal;
            //  }
            // DicUnit.Clear();
            IEnumerable <MapMealUnit> mlUnit = conn.Query <MapMealUnit>("SELECT M.IdMealUnit as IdMealUnit , U.Name as UName, M.calories as Calories, M.protein as Protein, M.Carb as Carb, M.fat as Fat, M.satfat as Satfat, M.unsatfat as Unsatfat, M.cholesterol as Cholesterol, M.sugar as Sugar, M.natrium as Natrium, M.potassium as Potassium, M.fiber as Fiber FROM MealUnit as M  JOIN Unit as U ON M.idUnit = U.idUnit WHERE M.IDMeal=" + IDMealSelected);

            SelMapMealUnit = mlUnit.First();


            foreach (MapMealUnit mealunit in mlUnit)
            {
                if (usermeal != null && mealunit.IdMealUnit == usermeal.IDMealUnit)
                {
                    SelMapMealUnit = mealunit;
                }
                recordsUnits.Add(mealunit);
            }

            ClearDetail();
            unitPicker.ItemSelected -= OnUnitChosen;
            unitPicker.SelectedItem  = SelMapMealUnit;
            unitPicker.ItemSelected += OnUnitChosen;
            if (usermeal != null)
            {
                counter1Picker.ItemSelected -= OnCount1Chosen;
                int count = (int)usermeal.Qty;
                counter1Picker.SelectedItem  = DicCount1[count];
                counter1Picker.ItemSelected += OnCount1Chosen;
                counter1Picker.ScrollTo(counter1Picker.SelectedItem, ScrollToPosition.Center, true);

                double dekadika = (usermeal.Qty - Math.Truncate(usermeal.Qty));
                Tuple <double, Counter> bestMatch = null;
                foreach (var ec in DicCount2)
                {
                    var dif = Math.Abs(ec.Value - dekadika);
                    if (bestMatch == null || dif < bestMatch.Item1)
                    {
                        bestMatch = Tuple.Create(dif, ec);
                    }
                }
                counter2Picker.ItemSelected -= OnCount2Chosen;
                counter2Picker.SelectedItem  = bestMatch.Item2;
                counter2Picker.ItemSelected += OnCount2Chosen;
                counter2Picker.ScrollTo(counter2Picker.SelectedItem, ScrollToPosition.Center, true);
                MealDetails();
            }
            else
            {
                counter1Picker.ItemSelected -= OnCount1Chosen;
                counter1Picker.SelectedItem  = DicCount1[0];
                counter1Picker.ItemSelected += OnCount1Chosen;
                counter1Picker.ScrollTo(counter1Picker.SelectedItem, ScrollToPosition.Center, true);
                counter2Picker.ItemSelected -= OnCount2Chosen;
                counter2Picker.SelectedItem  = DicCount2[0];
                counter2Picker.ItemSelected += OnCount2Chosen;
                counter2Picker.ScrollTo(counter2Picker.SelectedItem, ScrollToPosition.Center, true);
            }
        }