using Prism.Commands;
using Prism.Mvvm;
using Prism.Navigation;
using System;
using System.Collections.Generic;
using System.Text;
using Prism.Services;

namespace CafeTerrace.ViewModels
{
    public class ViewModelBase : BindableBase, IInitialize, INavigationAware, IDestructible
    {
        protected INavigationService NavigationService { get; private set; }
        public IPageDialogService PageDialogService { get; private set; }

        private string _title;
        public string Title
        {
            get { return _title; }
            set { SetProperty(ref _title, value); }
        }

        public ViewModelBase()
        {
            InitializeCommand();
        }
        public ViewModelBase(INavigationService navigationService)
        {
            NavigationService = navigationService;
            InitializeCommand();
        }
        public ViewModelBase(INavigationService navigationService , IPageDialogService dialogService)
        {
            NavigationService = navigationService;
            PageDialogService = dialogService;
            InitializeCommand();
        }

        public virtual void InitializeCommand()
        {

        }
        public virtual void Initialize(INavigationParameters parameters)
        {

        }

        public virtual void OnNavigatedFrom(INavigationParameters parameters)
        {

        }

        public virtual void OnNavigatedTo(INavigationParameters parameters)
        {

        }

        public virtual void Destroy()
        {

        }
    }
}
