public PlanConsumableViewModel(IConsumableViewModel consumable) { Consumable = consumable; Quantity = 1; consumable.PropertyChanged += (sender, args) => { switch (args.PropertyName) { case "Calories": OnPropertyChanged("Calories"); return; case "Cholesterol": OnPropertyChanged("Cholesterol"); return; case "Sodium": OnPropertyChanged("Sodium"); return; case "Protein": OnPropertyChanged("Protein"); return; case "FatTotal": OnPropertyChanged("FatTotal"); return; case "CarbohydrateTotal": OnPropertyChanged("CarbohydrateTotal"); return; } }; }
private void InitializeEquipmentAndConsumableViewModels() { this.ModificationContext = new ModificationContext(); this.LoadedEquipments = new ObservableCollection <IEquipmentViewModel>(); this.LoadedConsumables = new ObservableCollection <IConsumableViewModel>(); this.AvailableEquipments = this.Tank.AvailableEquipments.ToDictionary(p => p.Value, p => (IEquipmentViewModel) new EquipmentViewModel(this.CommandBindings, p.Value, this)); this.AvailableConsumables = this.Tank.AvailableConsumables.ToDictionary(p => p.Value, p => (IConsumableViewModel) new ConsumableViewModel(this.CommandBindings, p.Value, this)); _removeEquipmentViewModel = new RemoveEquipmentViewModel(this.CommandBindings, this); _removeConsumableViewModel = new RemoveConsumableViewModel(this.CommandBindings, this); _emptyEquipmentViewModel = new EmptyEquipmentViewModel(this.CommandBindings, this); _emptyConsumableViewModel = new EmptyConsumableViewModel(this.CommandBindings, this); for (int i = 0; i < MaxEquipmentCount; ++i) { this.LoadedEquipments.Add(_emptyEquipmentViewModel); } for (int i = 0; i < MaxConsumableCount; ++i) { this.LoadedConsumables.Add(_emptyConsumableViewModel); } this.HandleEquipmentsChangeEvents(); this.HandleConsumablesChangeEvents(); }
internal void EquipConsumable(IConsumableViewModel consumable) { if (this.CurrentConsumableSlotIndex.HasValue) { this.EquipConsumable(this.CurrentConsumableSlotIndex.Value, consumable); this.CurrentConsumableSlotIndex = null; } }
private void loadDay(PlanDayViewModel day, PlanDaySaveModel save, Dictionary <string, ConsumableViewModel> foods, Dictionary <string, RecipeViewModel> recipes) { day.Meals.Clear(); if (save == null) { return; } foreach (PlanMealSaveModel saveMeal in save.Meals) { PlanMealViewModel model = new PlanMealViewModel(mainViewModel, this, day) { Name = saveMeal.Name, Hour = saveMeal.Hour, Min = saveMeal.Min }; foreach (PlanItemSaveModel item in saveMeal.Items) { IConsumableViewModel consumable = null; if (item.IsRecipe) { if (recipes.ContainsKey(item.Id)) { consumable = recipes[item.Id]; } } else { if (foods.ContainsKey(item.Id)) { consumable = foods[item.Id]; } } if (consumable == null) { continue; } var viewModel = new PlanConsumableViewModel(consumable) { Quantity = item.Quantity }; model.Consumables.Add(viewModel); } day.Meals.Add(model); } }
internal void RemoveConsumable(IConsumableViewModel consumable) { if (consumable == _emptyConsumableViewModel) { return; } var index = this.LoadedConsumables.IndexOf(consumable); if (index >= 0) { this.RemoveConsumable(index); } }
internal void EquipConsumable(int index, IConsumableViewModel consumable) { if (consumable.IncompatibleTags != null) { for (int i = 0; i < this.LoadedConsumables.Count; ++i) { foreach (var tag in this.LoadedConsumables[i].Tags) { if (consumable.IncompatibleTags.Contains(tag)) { this.RemoveConsumable(this.LoadedConsumables[i]); } } } } this.LoadedConsumables[index] = consumable; }