public async Task <ActionResult> InstallPackage( [FromRoute, Required] string name, [FromQuery] string?assemblyGuid, [FromQuery] string?version, [FromQuery] string?repositoryUrl) { var packages = await _installationManager.GetAvailablePackages().ConfigureAwait(false); if (!string.IsNullOrEmpty(repositoryUrl)) { packages = packages.Where(p => p.repositoryUrl.Equals(repositoryUrl, StringComparison.OrdinalIgnoreCase)) .ToList(); } var package = _installationManager.GetCompatibleVersions( packages, name, string.IsNullOrEmpty(assemblyGuid) ? Guid.Empty : Guid.Parse(assemblyGuid), specificVersion: string.IsNullOrEmpty(version) ? null : Version.Parse(version)) .FirstOrDefault(); if (package == null) { return(NotFound()); } await _installationManager.InstallPackage(package).ConfigureAwait(false); return(NoContent()); }
/// <summary> /// Posts the specified request. /// </summary> /// <param name="request">The request.</param> /// <exception cref="ResourceNotFoundException"></exception> public async Task Post(InstallPackage request) { var packages = await _installationManager.GetAvailablePackages().ConfigureAwait(false); var package = _installationManager.GetCompatibleVersions( packages, request.Name, string.IsNullOrEmpty(request.AssemblyGuid) ? Guid.Empty : Guid.Parse(request.AssemblyGuid), string.IsNullOrEmpty(request.Version) ? null : Version.Parse(request.Version)).FirstOrDefault(); if (package == null) { throw new ResourceNotFoundException( string.Format( CultureInfo.InvariantCulture, "Package not found: {0}", request.Name)); } await _installationManager.InstallPackage(package); }
public async Task <ActionResult> InstallPackage( [FromRoute][Required] string?name, [FromQuery] string?assemblyGuid, [FromQuery] string?version) { var packages = await _installationManager.GetAvailablePackages().ConfigureAwait(false); var package = _installationManager.GetCompatibleVersions( packages, name, string.IsNullOrEmpty(assemblyGuid) ? Guid.Empty : Guid.Parse(assemblyGuid), string.IsNullOrEmpty(version) ? null : Version.Parse(version)).FirstOrDefault(); if (package == null) { return(NotFound()); } await _installationManager.InstallPackage(package).ConfigureAwait(false); return(NoContent()); }