Пример #1
0
 private PSResourceInfo(
     Dictionary <string, string> additionalMetadata,
     string author,
     string companyName,
     string copyright,
     Dependency[] dependencies,
     string description,
     Uri iconUri,
     ResourceIncludes includes,
     DateTime?installedDate,
     string installedLocation,
     bool isPrelease,
     Uri licenseUri,
     string name,
     string packageManagementProvider,
     string powershellGetFormatVersion,
     string prereleaseLabel,
     Uri projectUri,
     DateTime?publishedDate,
     string releaseNotes,
     string repository,
     string repositorySourceLocation,
     string[] tags,
     ResourceType type,
     DateTime?updatedDate,
     Version version)
 {
     AdditionalMetadata = additionalMetadata ?? new Dictionary <string, string>();
     Author             = author ?? string.Empty;
     CompanyName        = companyName ?? string.Empty;
     Copyright          = copyright ?? string.Empty;
     Dependencies       = dependencies ?? new Dependency[0];
     Description        = description ?? string.Empty;
     IconUri            = iconUri;
     Includes           = includes ?? new ResourceIncludes();
     InstalledDate      = installedDate;
     InstalledLocation  = installedLocation ?? string.Empty;
     IsPrerelease       = isPrelease;
     LicenseUri         = licenseUri;
     Name = name ?? string.Empty;
     PackageManagementProvider  = packageManagementProvider ?? string.Empty;
     PowerShellGetFormatVersion = powershellGetFormatVersion ?? string.Empty;
     PrereleaseLabel            = prereleaseLabel ?? string.Empty;
     ProjectUri               = projectUri;
     PublishedDate            = publishedDate;
     ReleaseNotes             = releaseNotes ?? string.Empty;
     Repository               = repository ?? string.Empty;
     RepositorySourceLocation = repositorySourceLocation ?? string.Empty;
     Tags        = tags ?? Utils.EmptyStrArray;
     Type        = type;
     UpdatedDate = updatedDate;
     Version     = version ?? new Version();
 }
Пример #2
0
        public static bool TryConvert(
            IPackageSearchMetadata metadataToParse,
            out PSResourceInfo psGetInfo,
            string repositoryName,
            ResourceType?type,
            out string errorMsg)
        {
            psGetInfo = null;
            errorMsg  = String.Empty;

            if (metadataToParse == null)
            {
                errorMsg = "TryConvertPSResourceInfo: Invalid IPackageSearchMetadata object. Object cannot be null.";
                return(false);
            }

            try
            {
                var typeInfo          = ParseMetadataType(metadataToParse, repositoryName, type, out ArrayList commandNames, out ArrayList dscResourceNames);
                var resourceHashtable = new Hashtable();
                resourceHashtable.Add(nameof(PSResourceInfo.Includes.Command), new PSObject(commandNames));
                resourceHashtable.Add(nameof(PSResourceInfo.Includes.DscResource), new PSObject(dscResourceNames));
                var includes = new ResourceIncludes(resourceHashtable);


                psGetInfo = new PSResourceInfo(
                    additionalMetadata: null,
                    author: ParseMetadataAuthor(metadataToParse),
                    companyName: null,
                    copyright: null,
                    dependencies: ParseMetadataDependencies(metadataToParse),
                    description: ParseMetadataDescription(metadataToParse),
                    iconUri: ParseMetadataIconUri(metadataToParse),
                    includes: includes,
                    installedDate: null,
                    installedLocation: null,
                    isPrelease: ParseMetadataIsPrerelease(metadataToParse),
                    licenseUri: ParseMetadataLicenseUri(metadataToParse),
                    name: ParseMetadataName(metadataToParse),
                    packageManagementProvider: null,
                    powershellGetFormatVersion: null,
                    prereleaseLabel: ParsePrerelease(metadataToParse),
                    projectUri: ParseMetadataProjectUri(metadataToParse),
                    publishedDate: ParseMetadataPublishedDate(metadataToParse),
                    releaseNotes: null,
                    repository: repositoryName,
                    repositorySourceLocation: null,
                    tags: ParseMetadataTags(metadataToParse),
                    // type: ParseMetadataType(metadataToParse, repositoryName, type),
                    type: typeInfo,
                    updatedDate: null,
                    version: ParseMetadataVersion(metadataToParse));

                return(true);
            }
            catch (Exception ex)
            {
                errorMsg = string.Format(
                    CultureInfo.InvariantCulture,
                    @"TryReadPSGetInfo: Cannot parse PSResourceInfo from IPackageSearchMetadata with error: {0}",
                    ex.Message);
                return(false);
            }
        }