using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core; namespace Tango.FSE.Diagnostics.Project { public class DiagnosticsProject : ExtendedObject { public static JsonSerializerSettings JsonSettings { get; private set; } public String Name { get; set; } public ObservableCollection Tabs { get; set; } public List FlattenWidgets() { return Tabs.SelectMany(x => x.Widgets).ToList(); } static DiagnosticsProject() { JsonSettings = new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto, Formatting = Formatting.Indented }; } public DiagnosticsProject() { Name = "Diagnostics Project"; Tabs = new ObservableCollection(); } public String ToJson() { return JsonConvert.SerializeObject(this, JsonSettings); } public static DiagnosticsProject FromJson(String json) { return JsonConvert.DeserializeObject(json, JsonSettings); } public void ToFile(String fileName) { File.WriteAllText(fileName, ToJson()); } public static DiagnosticsProject FromFile(String fileName) { return FromJson(File.ReadAllText(fileName)); } } }