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); }
async public void OnDelete(object sender, EventArgs e) { var mi = ((MenuItem)sender); FoodPerDay toDelete = mi.CommandParameter as FoodPerDay; await viewModel.DeleteItem(toDelete); }
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); } }
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); }
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 }); }
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)))); }
public LogDetailPage() { InitializeComponent(); var item = new FoodPerDay { MealType = (int)MealType.BreakFast }; viewModel = new LogDetailViewModel(item); BindingContext = viewModel; }
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); }
public LogAddToDayPage() { InitializeComponent(); FoodPerDay entry = new FoodPerDay(); entry.Food = new FoodModels.Food() { Name = "Paprika" }; LogAddToDayModel model = new LogAddToDayModel(entry); viewModel = model; BindingContext = viewModel; }
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); }
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; }
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)); }
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); }
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); }
public LogDetailViewModel(FoodPerDay item = null) { Item = item; Title = Item.Food?.Name; }
public LogAddToDayModel(FoodPerDay foodEntry) { FoodEntry = foodEntry; FoodEntry.Amount = 100; }
public async Task <int> SaveFoodForDay(FoodPerDay foodPerDay) { var dbm = ConvertToDb(foodPerDay); return(await foodDatabase.SaveFoodForDay(dbm)); }
public Task <int> DeleteFoodForDay(FoodPerDay foodPerDay) { throw new NotImplementedException(); }
public async Task <int> DeleteFoodForDay(FoodPerDay foodPerDay) { var entry = ConvertToDb(foodPerDay); return(await foodDatabase.DeleteFoodForDay(entry)); }