public static ProjectsJson GetProjectsConfig(this BaseLoadTask baseTask)
        {
            baseTask.LogDebug($"Loading {Consts.ProjectsFile} file");

            try
            {
                var          projectsConfigPath = Path.Combine(baseTask.TapAssetDir, Consts.ProjectsFile);
                ProjectsJson projectConfigs     = null;
                if (!File.Exists(projectsConfigPath))
                {
                    baseTask.LogInformation($"{Consts.ProjectsFile} file file not found, created at {projectsConfigPath}");
                    projectConfigs = new ProjectsJson();
                    var json = JsonConvert.SerializeObject(projectConfigs, Formatting.Indented);
                    File.WriteAllText(projectsConfigPath, json);
                    return(projectConfigs);
                }
                else
                {
                    var json = File.ReadAllText(projectsConfigPath);
                    projectConfigs = JsonConvert.DeserializeObject <ProjectsJson>(json);
                    return(projectConfigs);
                }
            }
            catch (Exception ex)
            {
                baseTask.Log.LogErrorFromException(ex);
            }
            return(null);
        }
        public static bool SaveProjects(this BaseLoadTask baseTask, ProjectsJson projectsConfig)
        {
            baseTask.LogDebug($"Saving {Consts.ProjectsFile} file");

            try
            {
                var projectsConfigPath = Path.Combine(baseTask.TapAssetDir, Consts.ProjectsFile);

                baseTask.LogInformation($"Saving {Consts.ProjectsFile} at {projectsConfigPath}");
                var json = JsonConvert.SerializeObject(projectsConfig, Formatting.Indented);
                File.WriteAllText(projectsConfigPath, json);
            }
            catch (Exception ex)
            {
                baseTask.Log.LogErrorFromException(ex);
            }
            return(true);
        }