/// <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); }
/// <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); } }