public override void LoadConfig()
        {
            var tempFolder = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            var sourceUrl  = $"{_cdnUrl}/config.json";
            var fileTarget = Path.Combine(tempFolder, "config.json");

            Fs.EnsureFolder(tempFolder);

            DownloadContent(sourceUrl, fileTarget);

            Config = TemplatesSourceConfig.LoadFromFile(fileTarget);

            Fs.SafeDeleteDirectory(tempFolder);
        }
        public override async Task LoadConfigAsync(CancellationToken ct)
        {
            var tempFolder = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
            var sourceUrl  = $"{_cdnUrl}/config.json";
            var fileTarget = Path.Combine(tempFolder, "config.json");

            Fs.EnsureFolderExists(tempFolder);

            await DownloadContentAsync(sourceUrl, fileTarget, ct);

            Config = TemplatesSourceConfig.LoadFromFile(fileTarget);

            Fs.SafeDeleteDirectory(tempFolder);
        }
        private void RemoveTemplatesTempFolders(string workingFolder)
        {
            if (!Directory.Exists(workingFolder))
            {
                return;
            }

            var searchOptions   = $"*{_tmpExtension}";
            var tempDirectories = Directory.EnumerateDirectories(workingFolder, searchOptions);

            foreach (var dir in tempDirectories)
            {
                Fs.SafeDeleteDirectory(dir, true);
            }
        }
        public void Purge(string currentContent)
        {
            if (Directory.Exists(TemplatesFolder))
            {
                var di = new DirectoryInfo(TemplatesFolder);

                foreach (var sdi in di.EnumerateDirectories())
                {
                    Version.TryParse(sdi.Name, out Version v);

                    if (!v.IsZero() && v < GetVersionFromFolder(currentContent))
                    {
                        Fs.SafeDeleteDirectory(sdi.FullName);
                    }
                }
            }
        }
Example #5
0
        public override async Task <TemplatesContentInfo> GetContentAsync(TemplatesPackageInfo packageInfo, string workingFolder, CancellationToken ct)
        {
            var extractionFolder = await ExtractAsync(packageInfo, true, ct);

            var finalDestination = Path.Combine(workingFolder, packageInfo.Version.ToString());

            await Fs.SafeMoveDirectoryAsync(Path.Combine(extractionFolder, "Templates"), finalDestination, true, ReportCopyProgress);

            Fs.SafeDeleteDirectory(Path.GetDirectoryName(packageInfo.LocalPath));

            var templatesInfo = new TemplatesContentInfo()
            {
                Date    = packageInfo.Date,
                Path    = finalDestination,
                Version = packageInfo.Version
            };

            return(templatesInfo);
        }
        public override TemplatesContentInfo GetContent(TemplatesPackageInfo packageInfo, string workingFolder)
        {
            var extractionFolder = Extract(packageInfo);

            var finalDestination = Path.Combine(workingFolder, packageInfo.Version.ToString());

            Fs.SafeMoveDirectory(Path.Combine(extractionFolder, "Templates"), finalDestination, true);

            var templatesInfo = new TemplatesContentInfo()
            {
                Date    = packageInfo.Date,
                Path    = finalDestination,
                Version = packageInfo.Version
            };

            Fs.SafeDeleteDirectory(Path.GetDirectoryName(packageInfo.LocalPath));

            return(templatesInfo);
        }
Example #7
0
 protected static void Copy(string sourceFolder, string targetFolder)
 {
     Fs.SafeDeleteDirectory(targetFolder);
     Fs.CopyRecursive(sourceFolder, targetFolder);
 }