コード例 #1
0
        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());
        }
コード例 #2
0
ファイル: PackageService.cs プロジェクト: zjklee/jellyfin
        /// <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);
        }
コード例 #3
0
        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());
        }