コード例 #1
0
        public void SaveToMetadata(AzurePackage package, CloudBlockBlob blob)
        {
            blob.Metadata["Id"]      = package.Id;
            blob.Metadata["Version"] = package.Version.ToString();
            if (!string.IsNullOrEmpty(package.Title))
            {
                blob.Metadata["Title"] = package.Title;
            }
            blob.Metadata["Authors"] = string.Join(",", package.Authors);
            blob.Metadata["Owners"]  = string.Join(",", package.Owners);
            if (package.IconUrl != null)
            {
                blob.Metadata["IconUrl"] = package.IconUrl.AbsoluteUri;
            }
            if (package.LicenseUrl != null)
            {
                blob.Metadata["LicenseUrl"] = package.LicenseUrl.AbsoluteUri;
            }
            if (package.ProjectUrl != null)
            {
                blob.Metadata["ProjectUrl"] = package.ProjectUrl.AbsoluteUri;
            }
            blob.Metadata["RequireLicenseAcceptance"] = package.RequireLicenseAcceptance.ToString();
            blob.Metadata["DevelopmentDependency"]    = package.DevelopmentDependency.ToString();
            blob.Metadata["Description"] = package.Description;
            if (!string.IsNullOrEmpty(package.Summary))
            {
                blob.Metadata["Summary"] = package.Summary;
            }
            blob.Metadata["ReleaseNotes"] = package.ReleaseNotes;
            if (!string.IsNullOrEmpty(package.Tags))
            {
                blob.Metadata["Tags"] = package.Tags;
            }
            blob.Metadata["Dependencies"]            = this.Base64Encode(package.DependencySets.Select(Mapper.Map <AzurePackageDependencySet>).ToJson());
            blob.Metadata["IsAbsoluteLatestVersion"] = package.IsAbsoluteLatestVersion.ToString();
            blob.Metadata["IsLatestVersion"]         = package.IsLatestVersion.ToString();
            blob.Metadata["MinClientVersion"]        = package.MinClientVersion.ToString();
            blob.Metadata["Listed"] = package.Listed.ToString();

            blob.SetMetadata();
        }
コード例 #2
0
 public void SaveToMetadata(AzurePackage package, CloudBlockBlob blob)
 {
     SetMetadataValue(blob, "Id", package.Id);
     SetMetadataValue(blob, "Version", package.Version);
     SetMetadataValue(blob, "Title", package.Title);
     SetMetadataValue(blob, "Authors", string.Join(",", package.Authors));
     SetMetadataValue(blob, "Owners", string.Join(",", package.Owners));
     if (package.IconUrl != null)
     {
         SetMetadataValue(blob, "IconUrl", package.IconUrl.AbsoluteUri);
     }
     if (package.LicenseUrl != null)
     {
         SetMetadataValue(blob, "LicenseUrl", package.LicenseUrl.AbsoluteUri);
     }
     if (package.ProjectUrl != null)
     {
         SetMetadataValue(blob, "ProjectUrl", package.ProjectUrl.AbsoluteUri);
     }
     SetMetadataValue(blob, "RequireLicenseAcceptance", package.RequireLicenseAcceptance);
     SetMetadataValue(blob, "DevelopmentDependency", package.DevelopmentDependency);
     SetMetadataValue(blob, "Description", package.Description);
     SetMetadataValue(blob, "Summary", package.Summary);
     SetMetadataValue(blob, "ReleaseNotes", package.ReleaseNotes);
     SetMetadataValue(blob, "Tags", package.Tags);
     SetMetadataValue(blob, "Dependencies", this.Base64Encode(package.DependencySets.Select(Mapper.Map <AzurePackageDependencySet>).ToJson()));
     SetMetadataValue(blob, "IsAbsoluteLatestVersion", package.IsAbsoluteLatestVersion);
     SetMetadataValue(blob, "IsLatestVersion", package.IsLatestVersion);
     SetMetadataValue(blob, "MinClientVersion", package.MinClientVersion);
     SetMetadataValue(blob, "Listed", package.Listed);
     SetMetadataValue(blob, "Published", DateTime.UtcNow);
     try
     {
         blob.SetMetadata();
     }
     catch (Exception ex)
     {
         throw;
     }
 }
コード例 #3
0
        public AzurePackage ReadFromMetadata(CloudBlockBlob blob)
        {
            blob.FetchAttributes();
            var package = new AzurePackage();

            package.Id      = blob.Metadata["Id"];
            package.Version = new SemanticVersion(blob.Metadata["Version"]);
            if (blob.Metadata.ContainsKey("Title"))
            {
                package.Title = blob.Metadata["Title"];
            }
            if (blob.Metadata.ContainsKey("Authors"))
            {
                package.Authors = blob.Metadata["Authors"].Split(',');
            }
            if (blob.Metadata.ContainsKey("Owners"))
            {
                package.Owners = blob.Metadata["Owners"].Split(',');
            }
            if (blob.Metadata.ContainsKey("IconUrl"))
            {
                package.IconUrl = new Uri(blob.Metadata["IconUrl"]);
            }
            if (blob.Metadata.ContainsKey("LicenseUrl"))
            {
                package.LicenseUrl = new Uri(blob.Metadata["LicenseUrl"]);
            }
            if (blob.Metadata.ContainsKey("ProjectUrl"))
            {
                package.ProjectUrl = new Uri(blob.Metadata["ProjectUrl"]);
            }
            package.RequireLicenseAcceptance = blob.Metadata["RequireLicenseAcceptance"].ToBool();
            package.DevelopmentDependency    = blob.Metadata["DevelopmentDependency"].ToBool();
            if (blob.Metadata.ContainsKey("Description"))
            {
                package.Description = blob.Metadata["Description"];
            }
            if (blob.Metadata.ContainsKey("Summary"))
            {
                package.Summary = blob.Metadata["Summary"];
            }
            if (blob.Metadata.ContainsKey("ReleaseNotes"))
            {
                package.ReleaseNotes = blob.Metadata["ReleaseNotes"];
            }
            if (blob.Metadata.ContainsKey("Tags"))
            {
                package.Tags = blob.Metadata["Tags"];
            }
            var dependencySetContent = blob.Metadata["Dependencies"];

            dependencySetContent   = this.Base64Decode(dependencySetContent);
            package.DependencySets = dependencySetContent
                                     .FromJson <IEnumerable <AzurePackageDependencySet> >()
                                     .Select(x => new PackageDependencySet(x.TargetFramework, x.Dependencies));
            package.IsAbsoluteLatestVersion = blob.Metadata["IsAbsoluteLatestVersion"].ToBool();
            package.IsLatestVersion         = blob.Metadata["IsLatestVersion"].ToBool();
            if (blob.Metadata.ContainsKey("MinClientVersion"))
            {
                package.MinClientVersion = new Version(blob.Metadata["MinClientVersion"]);
            }
            package.Listed = blob.Metadata["Listed"].ToBool();

            return(package);
        }
コード例 #4
0
        public AzurePackage ReadFromMetadata(CloudBlockBlob blob)
        {
            blob.FetchAttributes();

            var package = new AzurePackage();

            package.GetStreamFunc = () =>
            {
                var stream = new MemoryStream();
                blob.DownloadToStream(stream);
                return(stream);
            };


            if (!blob.Metadata.ContainsKey(PkgConsts.Id) ||
                !blob.Metadata.ContainsKey(PkgConsts.Version) ||
                !blob.Metadata.ContainsKey(PkgConsts.DownloadCount) ||
                !blob.Metadata.ContainsKey(PkgConsts.RequireLicenseAcceptance) ||
                !blob.Metadata.ContainsKey(PkgConsts.DevelopmentDependency) ||
                !blob.Metadata.ContainsKey(PkgConsts.IsLatestVersion))
            {
                return(null);
            }

            package.Id      = blob.Metadata[PkgConsts.Id];
            package.Version = new SemanticVersion(blob.Metadata[PkgConsts.Version]);
            if (blob.Metadata.ContainsKey(PkgConsts.Title))
            {
                package.Title = blob.Metadata[PkgConsts.Title];
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Authors))
            {
                package.Authors = blob.Metadata[PkgConsts.Authors].Split(',');
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Owners))
            {
                package.Owners = blob.Metadata[PkgConsts.Owners].Split(',');
            }
            if (blob.Metadata.ContainsKey(PkgConsts.IconUrl))
            {
                package.IconUrl = new Uri(blob.Metadata[PkgConsts.IconUrl]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.LicenseUrl))
            {
                package.LicenseUrl = new Uri(blob.Metadata[PkgConsts.LicenseUrl]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.ProjectUrl))
            {
                package.ProjectUrl = new Uri(blob.Metadata[PkgConsts.ProjectUrl]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Language))
            {
                package.Language = blob.Metadata[PkgConsts.Language];
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Copyright))
            {
                package.Copyright = Base64Decode(blob.Metadata[PkgConsts.Copyright]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.ReportAbuseUrl))
            {
                package.ReportAbuseUrl = new Uri(blob.Metadata[PkgConsts.ReportAbuseUrl]);
            }
            package.DownloadCount            = Convert.ToInt32(blob.Metadata[PkgConsts.DownloadCount]);
            package.RequireLicenseAcceptance = blob.Metadata[PkgConsts.RequireLicenseAcceptance].ToBool();
            package.DevelopmentDependency    = blob.Metadata[PkgConsts.DevelopmentDependency].ToBool();
            if (blob.Metadata.ContainsKey(PkgConsts.Description))
            {
                package.Description = Base64Decode(blob.Metadata[PkgConsts.Description]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Summary))
            {
                package.Summary = Base64Decode(blob.Metadata[PkgConsts.Summary]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.ReleaseNotes))
            {
                package.ReleaseNotes = Base64Decode(blob.Metadata[PkgConsts.ReleaseNotes]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Tags))
            {
                package.Tags = blob.Metadata[PkgConsts.Tags];
            }
            var dependencySetContent = Base64Decode(blob.Metadata[PkgConsts.Dependencies]);

            package.DependencySets = dependencySetContent
                                     .FromJson <IEnumerable <AzurePackageDependencySet> >()
                                     .Select(x => new PackageDependencySet(x.TargetFramework, x.Dependencies));

            package.FrameworkAssemblies = blob.Metadata[PkgConsts.FrameworkAssemblies]
                                          .FromJson <IEnumerable <AzureFrameworkAssemblyReference> >()
                                          .Select(x => x.GetFrameworkAssemblyReference())
                                          .ToList();

            package.PackageAssemblyReferences = blob.Metadata[PkgConsts.PackageAssemblyReferences]
                                                .FromJson <Collection <AzurePackageReferenceSet> >()
                                                .Select(x => x.GetReferenceSet())
                                                .ToList();

            package.AssemblyReferences = blob.Metadata[PkgConsts.AssemblyReferences]
                                         .FromJson <IEnumerable <AzureDtoAssemblyReference> >()
                                         .Select(x => x.GetAzureAssemblyReference())
                                         .ToList();


            package.IsAbsoluteLatestVersion = blob.Metadata[PkgConsts.IsAbsoluteLatestVersion].ToBool();
            package.IsLatestVersion         = blob.Metadata[PkgConsts.IsLatestVersion].ToBool();
            if (blob.Metadata.ContainsKey(PkgConsts.MinClientVersion))
            {
                package.MinClientVersion = new Version(blob.Metadata[PkgConsts.MinClientVersion]);
            }
            if (blob.Metadata.ContainsKey(PkgConsts.Published))
            {
                package.Published = DateTimeOffset.Parse(blob.Metadata[PkgConsts.Published]);
            }
            package.Listed = blob.Metadata[PkgConsts.Listed].ToBool();

            return(package);
        }
コード例 #5
0
        public void SaveToMetadata(AzurePackage package, CloudBlockBlob blob)
        {
            blob.Metadata[PkgConsts.Id]      = package.Id;
            blob.Metadata[PkgConsts.Version] = package.Version.ToString();
            if (!string.IsNullOrEmpty(package.Title))
            {
                blob.Metadata[PkgConsts.Title] = package.Title;
            }
            blob.Metadata[PkgConsts.Authors] = string.Join(",", package.Authors);
            blob.Metadata[PkgConsts.Owners]  = string.Join(",", package.Owners);
            if (package.IconUrl != null)
            {
                blob.Metadata[PkgConsts.IconUrl] = package.IconUrl.AbsoluteUri;
            }
            if (package.LicenseUrl != null)
            {
                blob.Metadata[PkgConsts.LicenseUrl] = package.LicenseUrl.AbsoluteUri;
            }
            if (package.ProjectUrl != null)
            {
                blob.Metadata[PkgConsts.ProjectUrl] = package.ProjectUrl.AbsoluteUri;
            }
            blob.Metadata[PkgConsts.RequireLicenseAcceptance] = package.RequireLicenseAcceptance.ToString();
            blob.Metadata[PkgConsts.DevelopmentDependency]    = package.DevelopmentDependency.ToString();
            blob.Metadata[PkgConsts.Description] = Base64Encode(package.Description);
            if (!string.IsNullOrEmpty(package.Summary))
            {
                blob.Metadata[PkgConsts.Summary] = Base64Encode(package.Summary);
            }
            if (!string.IsNullOrEmpty(package.ReleaseNotes))
            {
                blob.Metadata[PkgConsts.ReleaseNotes] = Base64Encode(package.ReleaseNotes);
            }
            if (!string.IsNullOrEmpty(package.Tags))
            {
                blob.Metadata[PkgConsts.Tags] = package.Tags;
            }
            if (!string.IsNullOrEmpty(package.Language))
            {
                blob.Metadata[PkgConsts.Language] = package.Language;
            }
            if (!string.IsNullOrEmpty(package.Copyright))
            {
                blob.Metadata[PkgConsts.Copyright] = Base64Encode(package.Copyright);
            }
            if (package.ReportAbuseUrl != null)
            {
                blob.Metadata[PkgConsts.ReportAbuseUrl] = package.ReportAbuseUrl.ToString();
            }
            blob.Metadata[PkgConsts.DownloadCount] = package.DownloadCount.ToString();

            blob.Metadata[PkgConsts.FrameworkAssemblies] = package.FrameworkAssemblies
                                                           .Select(x => new AzureFrameworkAssemblyReference(x))
                                                           .ToJson();
            blob.Metadata[PkgConsts.PackageAssemblyReferences] = package.PackageAssemblyReferences
                                                                 .Select(x => new AzurePackageReferenceSet(x))
                                                                 .ToJson();
            blob.Metadata[PkgConsts.AssemblyReferences] = package.AssemblyReferences
                                                          .Select(x => new AzureDtoAssemblyReference(x))
                                                          .ToJson();
            blob.Metadata[PkgConsts.Dependencies] = this.Base64Encode(package.DependencySets.Select(Mapper.Map <AzurePackageDependencySet>).ToJson());

            blob.Metadata[PkgConsts.IsAbsoluteLatestVersion] = package.IsAbsoluteLatestVersion.ToString();
            blob.Metadata[PkgConsts.IsLatestVersion]         = package.IsLatestVersion.ToString();
            if (package.MinClientVersion != null)
            {
                blob.Metadata[PkgConsts.MinClientVersion] = package.MinClientVersion.ToString();
            }
            if (package.Published != null)
            {
                blob.Metadata[PkgConsts.Published] = package.Published.Value.ToString("yyyy-MM-ddTHH:mm:ssZ");
            }

            blob.Metadata[PkgConsts.Listed] = package.Listed.ToString();

            blob.SetMetadata();
        }