예제 #1
0
        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();
            }
        }
예제 #2
0
        private async Task SaveProgress()
        {
            TaskViewSource source = ((TaskViewSource)TableView.Source);

            (await GetDatabaseManager()).SaveActivityProgress(DisplayedActivity, source.Rows, source.enteredName);
        }