using System;
using System.Collections.Generic;
using System.ServiceModel.DomainServices.Client;
using TaskIt.Infrastructure;
using TaskIt.Web;

namespace TaskIt.Modules.Tasks.ViewModels
{
    public class TreeViewNodeModelBase : ViewModelBase
    {
        public string Name { get; set; }
        public Uri Image { get; set; }
    }

    public class CategoriesTreeViewNodeModel : TreeViewNodeModelBase
    {
        private List<TaskCategory> _children;
        public List<TaskCategory> Children
        {
            get { return _children; }
            set { _children = value; this.OnPropertyChanged(p => p.Children); }
        }
    }

    public class ProjectsTreeViewNodeModel : TreeViewNodeModelBase
    {
        private EntitySet<Project> _children;
        public EntitySet<Project> Children
        {
            get { return _children; }
            set { _children = value; this.OnPropertyChanged(p => p.Children); }
        }
    }

    public class ContextsTreeViewNodeModel : TreeViewNodeModelBase
    {
        private EntitySet<Context> _children;
        public EntitySet<Context> Children
        {
            get { return _children; }
            set { _children = value; this.OnPropertyChanged(p => p.Children); }
        }
    }

    public class ContactsTreeViewNodeModel : TreeViewNodeModelBase
    {
        private EntitySet<Contact> _children;
        public EntitySet<Contact> Children
        {
            get { return _children; }
            set { _children = value; this.OnPropertyChanged(p => p.Children); }
        }
    }
}


