Exemple #1
0
        public async Task <IActionResult> Delete(string id)
        {
            if (_extensionBundleManager.IsExtensionBundleConfigured())
            {
                return(BadRequest(Resources.ExtensionBundleBadRequestDelete));
            }

            if (!_environment.IsPersistentFileSystemAvailable())
            {
                return(BadRequest(Resources.ErrorDeletingExtension));
            }

            // TODO: Check if we have an active job

            var job = await CreateJob(new ExtensionPackageReference()
            {
                Id = id, Version = string.Empty
            });

            await _extensionsManager.DeleteExtensions(id)
            .ContinueWith(t => ProcessJobTaskResult(t, job.Id));

            var    apiModel = ApiModelUtility.CreateApiModel(job, Request, $"jobs/{job.Id}");
            string action   = $"{Request.Scheme}://{Request.Host.ToUriComponent()}{Url.Action(nameof(GetJobs), "Extensions", new { id = job.Id })}{Request.QueryString}";

            return(Accepted(action, apiModel));
        }
Exemple #2
0
        public async Task <IEnumerable <ExtensionPackageReference> > GetExtensions()
        {
            string extensionsProjectPath = _extensionBundleManager.IsExtensionBundleConfigured() ? await GetBundleProjectPath() : DefaultExtensionsProjectPath;

            if (string.IsNullOrEmpty(extensionsProjectPath))
            {
                return(Enumerable.Empty <ExtensionPackageReference>());
            }

            var project = await GetOrCreateProjectAsync(extensionsProjectPath);

            return(project.Items
                   .Where(i => PackageReferenceElementName.Equals(i.ItemType, StringComparison.Ordinal) && !MetadataGeneratorPackageId.Equals(i.Include, StringComparison.Ordinal))
                   .Select(i => new ExtensionPackageReference
            {
                Id = i.Include,
                Version = i.Metadata.FirstOrDefault(m => PackageReferenceVersionElementName.Equals(m.Name, StringComparison.Ordinal))?.Value
            })
                   .ToList());
        }
        public async Task <string> GetFileContent(string path)
        {
            if (!_extensionBundleManager.IsExtensionBundleConfigured())
            {
                _logger.ContentProviderNotConfigured(path);
                return(null);
            }

            var bundlePath = await _extensionBundleManager.GetExtensionBundlePath();

            string contentFilePath = Path.Combine(bundlePath, path);

            if (FileUtility.FileExists(contentFilePath))
            {
                return(await FileUtility.ReadAsync(contentFilePath));
            }
            else
            {
                _logger.ContentFileNotFound(contentFilePath);
                return(null);
            }
        }