public TimeTrackingViewModel(TimerService timerService, ISelectedTodoProvider selectedTodoProvider, WorkingItemsRoot manageWorkingItemsService)
        {
            TimerService = timerService;
            this.selectedTodoProvider = selectedTodoProvider;
            this.manageWorkingItemsService = manageWorkingItemsService;

            StartStopCommand = new DelegateCommand(ToggleStartStop);
            ResetCommand = new DelegateCommand(Reset);

            TimerService.TimeTracked += OnTimeTracked;
        }
        public MainViewModel(TodosRoot manageTodosService, WorkingItemsRoot manageWorkingItemsService, DataLoadService dataLoadService, DataStoreService dataStoreService)
        {
            ManageTodosService = manageTodosService;
            ManageWorkingItemsService = manageWorkingItemsService;

            RibbonCommands.AddTodoCommand = new DelegateCommand(AddTodo);
            RibbonCommands.RemoveTodoCommand = new DelegateCommand(RemoveTodo, CanRemoveTodo);
            RibbonCommands.AddWorkingItemCommand = new DelegateCommand(AddWorkingItem, CanAddWorkingItem);
            RibbonCommands.RemoveWorkingItemCommand = new DelegateCommand(RemoveWorkingItem, CanRemoveWorkingItem);

            RibbonCommands.ChangeCommand = new DelegateCommand(Change);

            RibbonCommands.SaveCommand = new DelegateCommand(dataStoreService.Save);
            RibbonCommands.OpenCommand = new DelegateCommand(dataLoadService.Open);

            Post.Cast<MainViewModel, INotifyPropertyChanged>(this).PropertyChanged += OnPropertyChanged;

            GroupedTodos = new ListCollectionView(manageTodosService.Todos);
            GroupedTodos.GroupDescriptions.Add(new PropertyGroupDescription(Todo.TodoProperties.Done));
            GroupedTodos.SortDescriptions.Add(new SortDescription(Todo.TodoProperties.Done, ListSortDirection.Ascending));
        }