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