public ReplacementItemViewModel(ReplacementItem replacementItem, Factories factories, IList<InsulinCircumstanceViewModel> allCircumstances, IEnumerable<MealNameViewModel> names, MealNameViewModel defaultName, Navigator navigator, Action save, Action<IList<PatternViewModel>> showAlternatives) { ReplacementItem = replacementItem; Func<Pattern, bool, PatternViewModel> createPatternViewModel = (pattern, hasAlternatives) => new PatternViewModel(pattern, factories, allCircumstances: allCircumstances, hasAlternatives: hasAlternatives, names: names, defaultName: defaultName, navigator: navigator, save: save, showAlternatives: ShowAlternatives); Pattern = createPatternViewModel(replacementItem.Pattern, replacementItem.Alternatives.Any()); Alternatives = replacementItem.Alternatives .Select(pattern => createPatternViewModel(pattern, false)) .ToList(); this.showAlternatives = showAlternatives; }
public PatternViewModel(Pattern pattern, Factories factories, IList<InsulinCircumstanceViewModel> allCircumstances, bool hasAlternatives, IEnumerable<MealNameViewModel> names, MealNameViewModel defaultName, Navigator navigator, Action save, Action showAlternatives) { Pattern = pattern; Match = new MealItemViewModel(pattern.Match, factories); From = new MealViewModel(pattern.From, factories); From.Names = names; From.DefaultName = defaultName; Insulin = new InsulinViewModel(pattern.Insulin, factories, allCircumstances: allCircumstances); Before = new SugarViewModel(pattern.Before, factories); After = pattern.After .Select(sugar => new SugarViewModel(sugar, factories)) .ToList(); For = new MealItemViewModel(pattern.For, factories); HasAlternatives = hasAlternatives; this.navigator = navigator; this.save = save; this.showAlternatives = showAlternatives; }
private void MakeDefaultName() { var defaultEntities = factories.DefaultEntities; var model = defaultEntities.MealName; defaultName = new MealNameViewModel(model, factories); }
private void LoadNames() { var models = factories.MealNames; var unsortedViewModels = new ObservableCollection<MealNameViewModel>(); foreach (var model in models) { var viewModel = new MealNameViewModel(model, factories); unsortedViewModels.Add(viewModel); } if (sortNames) { var sortedViewModels = unsortedViewModels.OrderBy(mealName => mealName.Name); names = new ObservableCollection<MealNameViewModel>(); foreach (var viewModel in sortedViewModels) { names.Add(viewModel); } } else { names = unsortedViewModels; } }
private void SetName(MealNameViewModel value) { Meal.NameId = value.Id; isNameCached = false; OnPropertyChanged("Name"); OnPropertyChanged("VisibleWhenIsNewerAndHasName"); OnPropertyChanged("VisibleWhenIsNewerAndHasNoName"); }