private static void RestoreCollection(TaskCollection collection, JsonData tree) { if (tree == null || tree.IsNull) { return; } if (!tree.IsArray) { throw new ArgumentException("Array JsonData expected. Received: " + tree.GetJsonType()); } foreach (JsonData jsonData in ((IEnumerable)tree)) { Task task = new Task(); task.Text = (string)jsonData["text"]; task.Id = (string)jsonData["id"]; task.Start = (DateTime)jsonData["start"]; task.End = (DateTime)jsonData["end"]; if (jsonData["complete"] != null) { task.Complete = (int)jsonData["complete"]; } task.Type = TaskTypeParser.Parse((string)jsonData["type"]); if (jsonData["expanded"] != null) { task.Expanded = (bool)jsonData["expanded"]; } if (jsonData["loaded"] != null) { task.DynamicChildren = !(bool)jsonData["loaded"]; } else { task.DynamicChildren = true; } task.Tags.RestoreFromJson(jsonData["tags"]); collection.Add(task); TaskCollection.RestoreCollection(task.Children, jsonData["children"]); } }
internal void RestoreFromJson(JsonData tree) { base.Clear(); TaskCollection.RestoreCollection(this, tree); }