internal DotabuffMappingController(JsonPaths jsonPaths)
        {
            JsonController jsonReader = new JsonController();

            dotabuffXPaths = jsonReader.ReadFromFile(jsonPaths.XPathsUri);
            dotabuffQueryStrings = jsonReader.ReadFromFile(jsonPaths.QueryStringsUri);
            dotabuffEnums = jsonReader.ReadFromFile(jsonPaths.EnumsUri);
            dotabuffSelectors = jsonReader.ReadFromFile(jsonPaths.SelectorsUri);
            dotabuffHtmlAttributes = jsonReader.ReadFromFile(jsonPaths.HtmlAttributesUri);
            dotabuffUrls = jsonReader.ReadFromFile(jsonPaths.UrlsUri);
        }
        private void RefreshJsonFiles(JsonPaths jsonPaths, Dictionary<string, string> urlDictioanry)
        {
            PropertyInfo[] propertyInfos = jsonPaths.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Instance);
            foreach (string key in urlDictioanry.Keys)
            {
                foreach (PropertyInfo propertyInfo in propertyInfos)
                {
                    if (propertyInfo.Name.Contains(key))
                    {
                        string filePath = propertyInfo.GetValue(jsonPaths).ToString();
                        CreateFolderIfNotExist(filePath);

                        dynamic downloadedJsonObject = DownloadJsonFile(urlDictioanry[key]);
                        downloadedJsonObject.LastDownload = DateTime.Now;

                        RefreshJsonFile(filePath, downloadedJsonObject);
                    }
                }
            }
        }
        internal YaspMappingController(JsonPaths jsonPaths)
        {
            JsonController jsonReader = new JsonController();

            dotabuffUrls = jsonReader.ReadFromFile(jsonPaths.UrlsUri);
        }