public static string ToJson(TombstoneState tombstoneState)
		{
			var sb = new StringBuilder();
			var serializer = new JsonSerializer();
			serializer.Serialize(new JsonTextWriter(new StringWriter(sb)), tombstoneState);
			return sb.ToString();
		}
        public void SetState(TombstoneState state)
        {
            if (LoadingState != TaskLoadingState.Ready)
            {
                // If we're not in a state where we can safely load the state,
                // wait until we are and then run this method again.
                _loadingStateObserver
                .Where(e => e.EventArgs.LoadingState == TaskLoadingState.Ready)
                .Take(1)
                .Subscribe(e => SetState(state));

                return;
            }

            if (!string.IsNullOrEmpty(state.SelectedTaskDraft))
            {
                SelectedTaskDraft = new Task(state.SelectedTaskDraft);
            }

            if (!string.IsNullOrEmpty(state.SelectedTask))
            {
                var selectedTask = TaskList.FirstOrDefault(t => t.ToString() == state.SelectedTask);
                if (selectedTask != null)
                {
                    SelectedTask = selectedTask;
                }
            }
        }
Exemple #3
0
        public static string ToJson(TombstoneState tombstoneState)
        {
            var sb         = new StringBuilder();
            var serializer = new JsonSerializer();

            serializer.Serialize(new JsonTextWriter(new StringWriter(sb)), tombstoneState);
            return(sb.ToString());
        }
		public void SetState(TombstoneState state)
		{
			if (LoadingState != TaskLoadingState.Ready)
			{
				// If we're not in a state where we can safely load the state,
				// wait until we are and then run this method again.
				_loadingStateObserver
					.Where(e => e.EventArgs.LoadingState == TaskLoadingState.Ready)
					.Take(1)
					.Subscribe(e => SetState(state));

				return;
			}

			if (!string.IsNullOrEmpty(state.SelectedTaskDraft))
			{
				SelectedTaskDraft = new Task(state.SelectedTaskDraft);
			}

			if (!string.IsNullOrEmpty(state.SelectedTask))
			{
				var selectedTask = TaskList.FirstOrDefault(t => t.ToString() == state.SelectedTask);
				if (selectedTask != null)
				{
					SelectedTask = selectedTask;
				}
			}
		}
		// Code to execute when the application is deactivated (sent to background)
		// This code will not execute when the application is closing
		private void Application_Deactivated(object sender, DeactivatedEventArgs e)
		{
			UpdateBindingOnFocusedTextBox();

			var viewModel = ((ViewModelLocator) Current.Resources["Locator"]).Main;

			if (viewModel != null)
			{
				var selectedTask = string.Empty;
				if (viewModel.SelectedTask != null)
				{
					selectedTask = viewModel.SelectedTask.ToString();
				}

				var draft = string.Empty;
				if (viewModel.SelectedTaskDraft != null)
				{
					draft = viewModel.SelectedTaskDraft.ToString();
				}

				var state = new TombstoneState(selectedTask, draft);
				if (PhoneApplicationService.Current.State.ContainsKey(StateKey))
				{
					PhoneApplicationService.Current.State[StateKey] = TombstoneState.ToJson(state);
				}
				else
				{
					PhoneApplicationService.Current.State.Add(StateKey, TombstoneState.ToJson(state));
				}
			}
		}