public void CollectJsonData(string newDataString)
{
if (string.IsNullOrEmpty(newDataString))
{
LocalData = "";
return;
}
dynamic newData = DynamicJson.Parse(newDataString);
dynamic libraryData=null;
if(newData.IsDefined("library"))
{
libraryData = newData.library; //a couple RuntimeBinderException errors are normal here, just keep going, it eventually gets past it.
}
//Now in LocalData, we want to save everything that isn't library data
newData.Delete("library");
LocalData = newData.ToString();
if (libraryData == null)
return; //no library data in there, so we don't have anything to merge/save
var existingDataString = GetLibraryData();
if (!string.IsNullOrEmpty(existingDataString))
{
DynamicJson existingData = DynamicJson.Parse(existingDataString);
if (existingData.GetDynamicMemberNames().Contains("library"))
libraryData = MergeJsonData(DynamicJson.Parse(existingDataString).library.ToString(), libraryData.ToString());
}
RobustFile.WriteAllText(PathToLibraryJson, libraryData.ToString());
}