/// <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);
        }