private async void OnLoadCommand(object parameter) //This method is going to be changed { if (!Banners.LoadingBannerVisible) { ManagedBookmarks ParsedBookmarks = new ManagedBookmarks(); Banners.ShowLoadingBanner("Loading JSON, please wait..."); SerializeCommand.RaiseCanExecuteChanged(); Info.LoadText = "Loading JSON..."; ParsedBookmarks = await ChromeJSONConverter.ParseJSON(Json.Code); Info.LoadText = "Load"; Banners.LoadingBannerText = "JSON Loaded"; LoadTimer.Start(); if (ParsedBookmarks.RootFolder.Name != "") { ChromeBookmarks.RootFolder = ParsedBookmarks.RootFolder; ChromeBookmarks.CurrentWorkingFolder = ParsedBookmarks.RootFolder; ChromeBookmarks.CurrentWorkingFolderContextMenuText = $"Rename '{ParsedBookmarks.RootFolder.Name}'"; ChromeBookmarks.CurrentWorkingFolderPath = ParsedBookmarks.RootFolder.Name; } } else { Info.LoadText = "Please Wait..."; } }
// Async Methods to parse JSON code into a ManagedBookmarks object public static async Task <ManagedBookmarks> ParseJSON(string JSONCode) { ManagedBookmarks ReturnableManagedBookmarks = new ManagedBookmarks(); await Task.Run(() => { ReturnableManagedBookmarks = _ParseJSON(JSONCode); }); return(ReturnableManagedBookmarks); }
private static ManagedBookmarks _ParseJSON(string JSONCode) { ManagedBookmarks parsedBookmarks = new ManagedBookmarks(); try { var managedBookmark = JsonConvert.DeserializeObject <List <ManagedBookmarkJsonModel> >(JSONCode); parsedBookmarks.RootFolder = CreateFoldersRecursively(managedBookmark, new Folder() { FolderIndex = 0, Name = "root" }); } catch (Exception ex) { Console.WriteLine(ex); } return(parsedBookmarks); }
private void LoadTree() { Folder tempFolder = new Folder(); BannerData tempBI = new BannerData(); if (ChromeBookmarks == null) { ManagedBookmarks tempMB = new ManagedBookmarks(); tempMB.RootFolder.Name = "Root Folder"; tempMB.CurrentWorkingFolder = tempMB.RootFolder; ChromeBookmarks = tempMB; } Banners = tempBI; NewFolder = tempFolder; UpdateWorkingPath(); }
private static ManagedBookmarks _ParseJSON(string JSONCode) { ManagedBookmarks ParsedBookmarks = new ManagedBookmarks(); try { string StrippedJSONData = JSONCode.Replace("},{", "}|{"); StrippedJSONData = StrippedJSONData.Replace("\",\"", "\"|\""); StrippedJSONData = StrippedJSONData.Replace("{", ""); StrippedJSONData = StrippedJSONData.Replace("}", ""); StrippedJSONData = StrippedJSONData.Replace("\"", ""); StrippedJSONData = StrippedJSONData.Remove(0, 1); StrippedJSONData = StrippedJSONData.Remove(StrippedJSONData.Count() - 1, 1); List <string> JSONDataList = new List <string>(); JSONDataList = StrippedJSONData.Split('|').ToList <string>(); Folder WorkingFolder = new Folder(); string lastName = ""; foreach (string data in JSONDataList) { string[] CurrentData = data.Split(':'); switch (CurrentData[0]) { case "toplevel_name": { ParsedBookmarks.RootFolder.Name = CurrentData[1]; ParsedBookmarks.RootFolder.FolderIndex = 0; WorkingFolder = ParsedBookmarks.RootFolder; break; } case "children": { Folder newFolder = new Folder { Name = lastName }; newFolder.Parent = WorkingFolder; newFolder.FolderIndex = WorkingFolder.FolderIndex + 1; WorkingFolder.folders.Add(newFolder); if (data != "children:[]") { lastName = data.Substring(10).Split(':')[1]; WorkingFolder = WorkingFolder.folders.Where(x => x == newFolder).FirstOrDefault(); } break; } case "name": { lastName = CurrentData[1]; break; } case "url": { URL newURL = new URL { Name = lastName, Url = String.Join(":", CurrentData) }; bool FolderEnd = CurrentData[CurrentData.Count() - 1].EndsWith("]"); newURL.Url = newURL.Url.Remove(0, 4); WorkingFolder.URLs.Add(newURL); if (FolderEnd) { WorkingFolder = WorkingFolder.Parent; } break; } } } } catch (Exception ex) { } return(ParsedBookmarks); }