/// <summary> /// Initializes a new instance of the <see cref="TagEditViewModel"/> class. /// </summary> /// <param name="dialogService">Dialog service dependency.</param> /// <param name="tagService">Tag service dependency.</param> /// <param name="tag">Tag to edit. Null means new tag creation.</param> public TagEditViewModel(DialogService dialogService, CRUDService <Tag> tagService, TagEdit?tag = null) : base(dialogService) { Tag = tag ?? new TagEdit(); Tag.PropertyChanged += Tag_PropertyChanged; AllTags = tagService.GetAll(); AddIconCommand = new AsyncDelegateCommand(AddIconAsync); }
/// <summary> /// Initializes a new instance of the <see cref="RecipeIngredientEditViewModel"/> class. /// </summary> /// <param name="dialogService">Dialog service dependency.</param> /// <param name="ingredientService">Ingredient service dependency.</param> /// <param name="measureUnitService">Provider for a list of measurement units.</param> /// <param name="ingredient">Ingredient to edit.</param> public RecipeIngredientEditViewModel(DialogService dialogService, CRUDService <Ingredient> ingredientService, CRUDService <MeasureUnit> measureUnitService, RecipeIngredientEdit ingredient) : base(dialogService) { this.dialogService = dialogService; this.ingredientService = ingredientService; Ingredient = ingredient; MeasurementUnits = measureUnitService.GetAll(); AddMultipleCommand = new DelegateCommand(AddMultiple, canExecute: CanOk); RemoveIngredientCommand = new DelegateCommand <RecipeIngredientEdit>(RemoveIngredient); CreateIngredientCommand = new AsyncDelegateCommand(CreateIngredientAsync); AllIngredients = ingredientService.GetProjected <IngredientEdit>(); }
/// <summary> /// Initializes a new instance of the <see cref="MainWindowViewModel"/> class. /// </summary> /// <param name="localization">Localization provider dependency.</param> /// <param name="tagService">Tag service dependency. Used for menu items generation.</param> public MainWindowViewModel(ILocalization localization, CRUDService <Tag> tagService) { MenuItems = new HamburgerMenuItemCollection() { new HamburgerMenuIconItem() { Label = localization["MainPage"], Icon = new PackIconModern() { Kind = PackIconModernKind.Page }, ToolTip = localization["MainPage"], Tag = nameof(WeekView) }, new HamburgerMenuIconItem() { Label = localization["Recepies"], Icon = new PackIconModern() { Kind = PackIconModernKind.Food }, ToolTip = localization["Recepies"], Tag = nameof(RecipeListView) }, new HamburgerMenuIconItem() { Label = localization["Ingredients"], Icon = new PackIconModern() { Kind = PackIconModernKind.PuzzleRound }, ToolTip = localization["Ingredients"], Tag = nameof(IngredientListView) }, new HamburgerMenuIconItem() { Label = localization["Tags"], Icon = new PackIconModern() { Kind = PackIconModernKind.Tag }, ToolTip = localization["Tags"], Tag = nameof(TagListView) }, }; IEnumerable <TagHamburgerMenuItem> namesForMenuItems = tagService.GetAll(x => x.IsInMenu) .Select(x => new TagHamburgerMenuItem() { Label = x.Name, ToolTip = x.Name, Icon = x.MenuIcon != null ? new PackIconModern() { Kind = (PackIconModernKind)Enum.Parse(typeof(PackIconModernKind), x.MenuIcon) } : null, Tag = nameof(RecipeListView) }); foreach (HamburgerMenuItem menuItem in namesForMenuItems.OfType <HamburgerMenuItem>()) { MenuItems.Insert(2, menuItem); } SelectedMenuItem = MenuItems[0] as HamburgerMenuIconItem; OptionsMenuItems = new HamburgerMenuItemCollection() { new HamburgerMenuIconItem() { Label = localization["Settings"], Icon = new PackIconModern() { Kind = PackIconModernKind.Settings }, ToolTip = localization["Settings"], Tag = nameof(SettingsView) } }; }