/// <summary> /// Gets a JsonItemFile object for the item passed in /// </summary> /// <param name="item"></param> /// <param name="itemType"></param> /// <param name="itemId"></param> /// <param name="itemName"></param> /// <param name="eventLog"></param> /// <returns></returns> public JsonItemFile GetJsonItemFileForItem(object item, string itemId, Type itemType) { var jsonHelper = new JsonSerializationHelper(); string jsonFileName = itemId.Replace("{", "").Replace("-", "").Replace("}", ""); return(new JsonItemFile() { ItemType = itemType.Name, JsonFileName = jsonFileName, UniqueFileName = jsonFileName, JsonContent = jsonHelper.SerializeJsonObject(item, itemType), RelativePathBeneathTable = jsonFileName }); }
/// <summary> /// Loads all the Json Items stored on file system to object list /// </summary> /// <param name="jsonRootFolder"></param> /// <param name="itemTypeFolderName"></param> /// <param name="itemType"></param> /// <returns></returns> /// <remarks>Loading with this method makes it not possible to re-save to file system. Use LoadAllJsonFileItems instead of you wish to resave to file system.</remarks> public List <object> LoadAllJsonFileItemsToObjects(string jsonRootFolder, string itemTypeFolderName, Type itemType) { if (string.IsNullOrEmpty(jsonRootFolder)) { throw new ArgumentNullException("ERROR: jsonRootFolder is required"); } if (string.IsNullOrEmpty(itemTypeFolderName)) { throw new ArgumentNullException("ERROR: itemTypeFolderName is required"); } if (itemType == null) { throw new ArgumentNullException("ERROR: itemType is required"); } var jsonHelper = new JsonSerializationHelper(); List <object> objects = new List <object>(); // Make sure the folder exists. If it does not then create it. string folderToLoadFrom = (!jsonRootFolder.EndsWith("\\") ? "\\" : "") + itemTypeFolderName; if (Directory.Exists(folderToLoadFrom) == false) { Directory.CreateDirectory(folderToLoadFrom); } // Use directory to get all files beneath a folder and subfolders var di = new DirectoryInfo(folderToLoadFrom); var filePaths = di.GetFiles("*.json", SearchOption.AllDirectories); foreach (var filePath in filePaths) { using (var streamReader = File.OpenText(filePath.FullName)) { objects.Add(jsonHelper.DeserializeJsonObject(streamReader.ReadToEnd(), itemType)); } } return(objects); }