示例#1
0
        /// <summary>
        /// Starts the break in current session
        /// </summary>
        private void StartBreak()
        {
            // Get current session view model
            var viewModel = mViewModelProvider.GetInjectedPageViewModel <TasksSessionPageViewModel>();

            // Check if there are any other tasks
            if (viewModel.SessionOver)
            {
                viewModel.QuitSession();
                return;
            }

            // Go back to session page
            mApplicationViewModel.GoToPage(ApplicationPage.TasksSession, viewModel);

            // Start the break
            viewModel.PauseCommand.Execute(null);
        }
        /// <summary>
        /// Starts new session out of current tasks
        /// </summary>
        private void StartTaskSession()
        {
            // Get tasks from Handler sorted like TaskItems
            var taskContexts = mTimeTasksMapper.MatchTaskOrder(TaskItems.Select(vm => vm as TimeTaskViewModel).ToList(), mSessionHandler.GetTasks().WholeList);

            // Pass it to the service
            mSessionHandler.UpdateTasks(taskContexts);

            // Create brand-new view model for session page
            var sessionViewModel = mViewModelProvider.GetInjectedPageViewModel <TasksSessionPageViewModel>();

            sessionViewModel.InitializeSessionCommand.Execute(null);

            // Change to session page
            mApplicationViewModel.GoToPage(ApplicationPage.TasksSession, sessionViewModel);
        }
示例#3
0
        /// <summary>
        /// Returns the brand-new view model to use on specified page
        /// </summary>
        /// <param name="page">The page to get view model for</param>
        public static MvxViewModel GetViewModel(this ApplicationPage page, IViewModelProvider viewModelProvider)
        {
            switch (page)
            {
            case ApplicationPage.Login:
                return(viewModelProvider.GetInjectedPageViewModel <LoginPageViewModel>());

            case ApplicationPage.About:
                return(viewModelProvider.GetInjectedPageViewModel <AboutPageViewModel>());

            case ApplicationPage.Settings:
                return(viewModelProvider.GetInjectedPageViewModel <SettingsPageViewModel>());

            case ApplicationPage.AddNewTask:
                return(viewModelProvider.GetInjectedPageViewModel <AddNewTimeTaskPageViewModel>());

            case ApplicationPage.TasksList:
                return(viewModelProvider.GetInjectedPageViewModel <TasksListPageViewModel>());

            case ApplicationPage.TasksTime:
                return(viewModelProvider.GetInjectedPageViewModel <TasksTimePageViewModel>());

            case ApplicationPage.TasksSummary:
                return(viewModelProvider.GetInjectedPageViewModel <TasksSummaryPageViewModel>());

            case ApplicationPage.TasksSession:
                return(viewModelProvider.GetInjectedPageViewModel <TasksSessionPageViewModel>());

            case ApplicationPage.Alarm:
                return(viewModelProvider.GetInjectedPageViewModel <AlarmPageViewModel>());

            default:
                // Alert developer of an issue
                // Debugger.Break();
                return(null);
            }
        }