Esempio n. 1
0
        public LogAddViewModel(IFoodRepository foodRepository, FoodPerDay entry)
        {
            FoodRepository = foodRepository;
            Item           = entry;

            SelectableFoods = new ObservableCollection <Food>();

            MealTypes = new ObservableCollection <MealTypeItem>();
            MealTypes.Add(new MealTypeItem()
            {
                MealType = MealType.BreakFast, Name = "Ontbijt"
            });
            MealTypes.Add(new MealTypeItem()
            {
                MealType = MealType.Lunch, Name = "Lunch"
            });
            MealTypes.Add(new MealTypeItem()
            {
                MealType = MealType.Diner, Name = "Diner"
            });
            MealTypes.Add(new MealTypeItem()
            {
                MealType = MealType.Snack, Name = "Tussendoor"
            });

            SelectedMealType = MealTypes.First(f => f.MealType == entry.MealType);
        }
Esempio n. 2
0
        async public void OnDelete(object sender, EventArgs e)
        {
            var        mi       = ((MenuItem)sender);
            FoodPerDay toDelete = mi.CommandParameter as FoodPerDay;

            await viewModel.DeleteItem(toDelete);
        }
Esempio n. 3
0
        public static void CreateItemsViewModelData(LogDayViewModel item)
        {
            var pd = new FoodPerDay()
            {
                Amount   = 12,
                Date     = DateTime.Today,
                Id       = 1,
                MealType = MealType.BreakFast,
                Time     = DateTime.Today
            };
            var food = new Food()
            {
                Id = 2, Name = "Paprika", Portion = 50, Calories = 50, Fat = 10, Protein = 5, Carbs = 2
            };

            pd.Food = food;
            try
            {
                item.BreakFast.Add(pd);
                item.BreakFast.Add(new FoodPerDay()
                {
                    Id = -1, MealType = MealType.BreakFast
                });
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        }
Esempio n. 4
0
        public void ConstructorMustConstruct()
        {
            var f = new FoodPerDay();
            var m = new LogAddToDayModel(f);

            Assert.IsNotNull(m);
            Assert.IsNotNull(m.FoodEntry);
            Assert.IsNull(m.FoodRepository);
            Assert.IsNull(m.RecipeRepository);
            Assert.AreEqual(100, m.FoodEntry.Amount);
        }
Esempio n. 5
0
 public static Models.DB.FoodDayEntry ConvertToDb(FoodPerDay foodPerDay)
 {
     return(new Models.DB.FoodDayEntry()
     {
         Id = foodPerDay.Id,
         Amount = foodPerDay.Amount,
         Date = foodPerDay.Date,
         FoodId = foodPerDay.Food.Id,
         MealType = (int)foodPerDay.MealType,
         Time = foodPerDay.Time
     });
 }
Esempio n. 6
0
        async Task AddItem(MealType mealType)
        {
            FoodPerDay entry = new FoodPerDay()
            {
                MealType = mealType,
                Date     = viewModel.Date,
                Time     = viewModel.Date
            };

            var repo = Injector.Resolve <IFoodRepository>();
            await Navigation.PushModalAsync(new NavigationPage(new LogAddPage(new LogAddViewModel(repo, entry))));
        }
Esempio n. 7
0
        public LogDetailPage()
        {
            InitializeComponent();

            var item = new FoodPerDay
            {
                MealType = (int)MealType.BreakFast
            };

            viewModel      = new LogDetailViewModel(item);
            BindingContext = viewModel;
        }
Esempio n. 8
0
        public void ConstructorMustConstruct()
        {
            var f = new FoodPerDay();
            var r = new Mock <IFoodRepository>();
            var m = new LogAddViewModel(r.Object, f);

            Assert.IsNotNull(m);
            Assert.IsNotNull(m.Item);
            Assert.IsNotNull(m.SelectableFoods);
            Assert.IsNotNull(m.FoodRepository);
            Assert.IsNull(m.RecipeRepository);
            Assert.AreEqual(MealType.BreakFast, m.SelectedMealType.MealType);
        }
Esempio n. 9
0
        public LogAddToDayPage()
        {
            InitializeComponent();
            FoodPerDay entry = new FoodPerDay();

            entry.Food = new FoodModels.Food()
            {
                Name = "Paprika"
            };
            LogAddToDayModel model = new LogAddToDayModel(entry);

            viewModel      = model;
            BindingContext = viewModel;
        }
Esempio n. 10
0
        public void ConstructorMustConstruct()
        {
            var f = new FoodPerDay();

            f.Food      = new Food();
            f.Food.Name = "Name";

            var r = new LogDetailViewModel(f);

            Assert.IsNotNull(r);
            Assert.AreEqual("Name", r.Title);
            Assert.IsNull(r.FoodRepository);
            Assert.IsNull(r.RecipeRepository);
        }
Esempio n. 11
0
        async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
        {
            var item = args.SelectedItem as FoodModels.Food;

            if (item == null)
            {
                return;
            }

            FoodPerDay entry = viewModel.Item;

            entry.Food    = item;
            entry.Food.Id = item.Id;

            await Navigation.PushAsync(new LogAddToDayPage(new LogAddToDayModel(entry)));

            // Manually deselect item.
            FoodListView.SelectedItem = null;
        }
Esempio n. 12
0
        public Task <List <FoodPerDay> > GetFoodForDay(DateTime date)
        {
            List <FoodPerDay> foodPerDays = new List <FoodPerDay>();

            var pd = new FoodPerDay()
            {
                Amount   = 12,
                Date     = DateTime.Today,
                Id       = 1,
                MealType = MealType.BreakFast,
                Time     = DateTime.Today
            };
            var food = new Food()
            {
                Id = 2, Name = "Paprika", Portion = 50, Calories = 50, Fat = 10, Protein = 5, Carbs = 2
            };

            pd.Food = food;

            foodPerDays.Add(pd);

            return(System.Threading.Tasks.Task.FromResult(foodPerDays));
        }
Esempio n. 13
0
        public async Task <List <FoodPerDay> > GetFoodForDay(DateTime date)
        {
            List <FoodPerDay> foodPerDays = new List <FoodPerDay>();

            List <Models.DB.FoodDayEntry> r = await foodDatabase.GetForDay(date);

            Dictionary <int, Food> cachedFoods = new Dictionary <int, Food>();

            foreach (Models.DB.FoodDayEntry e in r)
            {
                Food food;
                if (!cachedFoods.TryGetValue(e.FoodId, out food))
                {
                    food = await FoodById(e.FoodId);

                    cachedFoods[food.Id] = food;
                }

                FoodPerDay pd = ConvertFromDb(e, food);
                foodPerDays.Add(pd);
            }

            return(foodPerDays);
        }
Esempio n. 14
0
 public async Task DeleteItem(FoodPerDay foodPerDay)
 {
     await FoodRepository.DeleteFoodForDay(foodPerDay);
 }
        protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
        {
            FoodPerDay f = item as FoodPerDay;

            return(f.Id >= 0 ? LogFoodTemplate : AddFoodTemplate);
        }
Esempio n. 16
0
 public LogDetailViewModel(FoodPerDay item = null)
 {
     Item  = item;
     Title = Item.Food?.Name;
 }
Esempio n. 17
0
 public LogAddToDayModel(FoodPerDay foodEntry)
 {
     FoodEntry        = foodEntry;
     FoodEntry.Amount = 100;
 }
Esempio n. 18
0
        public async Task <int> SaveFoodForDay(FoodPerDay foodPerDay)
        {
            var dbm = ConvertToDb(foodPerDay);

            return(await foodDatabase.SaveFoodForDay(dbm));
        }
Esempio n. 19
0
 public Task <int> DeleteFoodForDay(FoodPerDay foodPerDay)
 {
     throw new NotImplementedException();
 }
Esempio n. 20
0
        public async Task <int> DeleteFoodForDay(FoodPerDay foodPerDay)
        {
            var entry = ConvertToDb(foodPerDay);

            return(await foodDatabase.DeleteFoodForDay(entry));
        }