public override async void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); // Load this activity's progress from the database if available ActivityProgress progress = (await GetDatabaseManager()).GetProgress(DisplayedActivity); List <AppTask> appTasks = null; if (progress != null) { appTasks = JsonConvert.DeserializeObject <List <AppTask> >(progress.AppTaskJson, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); } if (appTasks == null) { appTasks = new List <AppTask>(); foreach (LearningTask t in DisplayedActivity.LearningTasks) { appTasks.Add(new AppTask(t)); } } TaskViewSource source = new TaskViewSource(DisplayedActivity, appTasks, StartTask, ResultClicked, NameEdit); source.enteredName = progress?.EnteredUsername; TableView.Source = source; hiddenChildren = new Dictionary <int, List <AppTask> >(); AppTask[] temp = appTasks.ToArray(); foreach (AppTask parent in temp) { if (parent.TaskType.IdName == "INFO") { parent.IsCompleted = true; } if (parent.ChildAppTasks?.Count > 0) { hiddenChildren.Add(parent.Id, parent.ChildAppTasks); CheckForChildren(appTasks.IndexOf(parent)); } } TableView.ReloadData(); if (!loaded) { var suppress = PrepActivityFiles(); } }
private async Task SaveProgress() { TaskViewSource source = ((TaskViewSource)TableView.Source); (await GetDatabaseManager()).SaveActivityProgress(DisplayedActivity, source.Rows, source.enteredName); }