/// <summary>
        /// Wypełnia TabItem1 danymi o spożyciu kalorii, daty, sumę kalorii i rysuje wykres interpolowany na tych wartościach
        /// </summary>
        /// <param name="listBox"></param>
        public void ViewCalories(ListBox listBox)
        {
            Consumed = GetConsumed();
            var q = GetCalories().Select(x => new { Date = x.Key, Kcall = x.Value }).ToList();
            for (int i = 0; i < q.Count; i++)
                listBox.Items.Add(i + 1 + "\t" + q[i].Date + "\t" + q[i].Kcall);


            var fx = q.Select(x => x.Kcall).ToList();

            Nodes nodes = new Nodes(fx);

            OxyPlotModel.DrawSeries("Spożyte kalorie", nodes.X, nodes.Y, "Dni", "Kalorie");
            OxyPlotModel.PlotModel.InvalidatePlot(true);
        }
        /// <summary>
        /// Wypełnia TabItem2 rankingiem spożycia zestawów i rysuje wykres interpolowany na tych wartościach
        /// </summary>
        /// <param name="listBox"></param>
        public void ViewFavourites(ListBox listBox)
        {
            listBox.Items.Clear();
            var favouriteName = GetFavouriteCount().Select(x => new { Name = x.Key, Value = x.Value }).ToList();

            for (int i = 0; i < favouriteName.Count; i++)
                listBox.Items.Add(i + 1 + "\t" + favouriteName[i].Name + "\t ilość = " + favouriteName[i].Value);

            var fx = GetFavouriteCount().Select(x => x.Value).ToList();

            Nodes nodes = new Nodes(fx);

            OxyPlotModel.DrawSeries("Ulubione zestawy", nodes.X, nodes.Y, "Zestawy", "Ranking");
            OxyPlotModel.PlotModel.InvalidatePlot(true);

        }
        /// <summary>
        /// Wypełnia TabItem4 wartościami odżywczymi wybranego składnika posiłku i rysuje wykres interpolowany na tych wartościach
        /// </summary>
        /// <param name="listBox"></param>
        public void ViewNutritionalValues(ListBox listBox)
        {
            listBox.Items.Clear();
            var meal = Meals.Where(x => x.MealName == SelectedMeal)
                .OrderBy(x => x)
                .First();

            listBox.Items.Add("1. Kalorie = " + meal.Calories + "\n"
                + "2. Tłuszcze = " + meal.Fat + "\n"
                + "3. Węglowodany = " + meal.CarboHydrates + "\n"
                + "4. Białko = " + meal.Protein);

            var values = new List<double>()
            {
                meal.Calories,
                meal.Fat,
                meal.CarboHydrates,
                meal.Protein
            };
            Nodes nodes = new Nodes(values);

            OxyPlotModel.DrawSeries("Wartości odżywcze", nodes.X, nodes.Y, "Składniki", "Ilość na 100/g");
            OxyPlotModel.PlotModel.InvalidatePlot(true);

        }
        /// <summary>
        /// Wypełnia TabItem3 danymi na temat ilości użytych składników zestawu i rysuje wykres interpolowany na tych wartościach
        /// </summary>
        /// <param name="listbox"></param>
        public void ViewComponents(ListBox listbox)
        {
            listbox.Items.Clear();

            var q = Consumed.Select(x => x.Favorite)
                .Where(y => y.FavoriteName == SelectedFavourite)
                .First()
                .FavoriteCompontents
                .Select(x => new { Name = x.Meal.MealName, Quantity = x.Quantity }).ToList();

            for (int i = 0; i < q.Count; i++)
                listbox.Items.Add(i + 1 + "\t" + q[i].Name + "\t ilość = " + q[i].Quantity + "gram");

            Nodes nodes = new Nodes(q.Select(x => Convert.ToDouble(x.Quantity)).ToList());

            OxyPlotModel.DrawSeries("Składniki zestawu", nodes.X, nodes.Y, "Składniki", "Ilość gram");
            OxyPlotModel.PlotModel.InvalidatePlot(true);

            Meals = GetMeals();
        }