Example #1
0
        static XElement CreateNuspecMetadataTags(TripleStore store, Uri packageUri)
        {
            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.SelectPackageTags.rq");
            sparql.SetUri("package", packageUri);
            SparqlResultSet packageTags = SparqlHelpers.Select(store, sparql.ToString());

            StringBuilder sb = new StringBuilder();

            foreach (SparqlResult row in packageTags)
            {
                sb.Append(row["tag"].ToString());
                sb.Append(' ');
            }

            string tags = sb.ToString().Trim(' ');

            if (tags.Length > 0)
            {
                return(new XElement(nuget.GetName("tags"), tags));
            }

            return(null);
        }
        public override IGraph CreatePageContent(CatalogContext context)
        {
            try
            {
                IGraph content;

                using (TripleStore store = new TripleStore())
                {
                    store.Add(_catalogItem, true);

                    SparqlParameterizedString sparql = new SparqlParameterizedString
                    {
                        CommandText = Utils.GetResource("sparql.ConstructRegistrationPageContentGraph.rq")
                    };

                    sparql.SetUri("package", GetItemAddress());
                    sparql.SetUri("catalogEntry", _catalogUri);
                    sparql.SetUri("baseAddress", BaseAddress);
                    sparql.SetUri("packageContent", GetPackageContentAddress());
                    sparql.SetUri("registrationBaseAddress", _registrationBaseAddress);
                    sparql.SetLiteral("licenseUrl", GetLicenseUrl());
                    sparql.SetLiteral("iconUrl", GetIconUrl());

                    content = SparqlHelpers.Construct(store, sparql.ToString());
                }

                return(_postProcessGraph(content));
            }
            catch (Exception e)
            {
                throw new Exception(string.Format("Exception processing catalog item {0}", _catalogUri), e);
            }
        }
Example #3
0
        static XElement CreateNuspecMetadataFrameworkAssembly(TripleStore store, Uri packageUri)
        {
            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.SelectPackageFrameworkAssembly.rq");
            sparql.SetUri("package", packageUri);
            SparqlResultSet packageFrameworkAssembly = SparqlHelpers.Select(store, sparql.ToString());

            if (packageFrameworkAssembly.Count > 0)
            {
                XElement frameworkAssemblies = new XElement(nuget.GetName("frameworkAssemblies"));

                foreach (SparqlResult row in packageFrameworkAssembly)
                {
                    string targetFramework = row["targetFramework"].ToString();
                    string assembly        = row["assembly"].ToString();

                    XElement frameworkAssembly = new XElement(nuget.GetName("frameworkAssembly"));

                    frameworkAssembly.Add(new XAttribute("assemblyName", assembly));
                    frameworkAssembly.Add(new XAttribute("targetFramework", targetFramework));

                    frameworkAssemblies.Add(frameworkAssembly);
                }

                return(frameworkAssemblies);
            }

            return(null);
        }
Example #4
0
        static XElement CreateNuspecMetadataDependencies(TripleStore store, Uri packageUri)
        {
            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.SelectPackageDependencies.rq");
            sparql.SetUri("package", packageUri);
            SparqlResultSet packageDependencies = SparqlHelpers.Select(store, sparql.ToString());

            if (packageDependencies.Count > 0)
            {
                XElement dependencies = new XElement(nuget.GetName("dependencies"));

                IDictionary <string, IDictionary <string, string> > groups = new Dictionary <string, IDictionary <string, string> >();

                foreach (SparqlResult row in packageDependencies)
                {
                    string targetFramework = row["targetFramework"].ToString();

                    IDictionary <string, string> group;
                    if (!groups.TryGetValue(targetFramework, out group))
                    {
                        group = new Dictionary <string, string>();
                        groups.Add(targetFramework, group);
                    }

                    string id = row["id"].ToString();

                    string range = row.HasBoundValue("range") ? row["range"].ToString() : null;

                    group.Add(id, range);
                }

                if (groups.Count == 1 && groups.First().Key == "")
                {
                    AddDependencies(dependencies, groups.First().Value);
                }
                else
                {
                    foreach (KeyValuePair <string, IDictionary <string, string> > groupsItem in groups)
                    {
                        XElement group = new XElement(nuget.GetName("group"));

                        if (groupsItem.Key != "")
                        {
                            group.Add(new XAttribute("targetFramework", groupsItem.Key));
                        }

                        AddDependencies(group, groupsItem.Value);

                        dependencies.Add(group);
                    }
                }

                return(dependencies);
            }

            return(null);
        }
        protected override async Task ProcessStore(TripleStore store)
        {
            string sparql = Utils.GetResource("sparql.SelectDistinctDependency.rq");

            foreach (SparqlResult row in SparqlHelpers.Select(store, sparql))
            {
                Result.Add(row["id"].ToString());
            }

            await Task.Run(() => { });
        }
Example #6
0
        protected override async Task ProcessStore(TripleStore store)
        {
            try
            {
                SparqlResultSet packages = SparqlHelpers.Select(store, Utils.GetResource("sparql.SelectPackage.rq"));

                IList <Uri> packageUris = new List <Uri>();

                foreach (SparqlResult row in packages)
                {
                    Uri packageUri = ((IUriNode)row["package"]).Uri;
                    packageUris.Add(packageUri);
                }

                IList <XDocument> nuspecs = new List <XDocument>();

                foreach (Uri packageUri in packageUris)
                {
                    XDocument nuspec = new XDocument();

                    XElement metadata = CreateNuspecMetadata(store, packageUri);

                    XElement tags = CreateNuspecMetadataTags(store, packageUri);
                    if (tags != null)
                    {
                        metadata.Add(tags);
                    }

                    XElement dependencies = CreateNuspecMetadataDependencies(store, packageUri);
                    if (dependencies != null)
                    {
                        metadata.Add(dependencies);
                    }

                    //TODO: references, reference groups etc.

                    XElement frameworkAssemblies = CreateNuspecMetadataFrameworkAssembly(store, packageUri);
                    if (frameworkAssemblies != null)
                    {
                        metadata.Add(frameworkAssemblies);
                    }

                    nuspec.Add(new XElement(nuget.GetName("package"), metadata));

                    nuspecs.Add(nuspec);
                }

                await SaveAllNuspecs(nuspecs);
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
            }
        }
Example #7
0
        static void AddExistingItem(IDictionary <RegistrationEntryKey, RegistrationCatalogEntry> resources, TripleStore store, Uri catalogEntry)
        {
            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.ConstructCatalogEntryGraph.rq");
            sparql.SetUri("catalogEntry", catalogEntry);

            IGraph graph = SparqlHelpers.Construct(store, sparql.ToString());

            resources.Add(RegistrationCatalogEntry.Promote(catalogEntry.AbsoluteUri, graph));
        }
Example #8
0
        static IList <Uri> ListExistingItems(TripleStore store)
        {
            string sparql = Utils.GetResource("sparql.SelectInlinePackage.rq");

            SparqlResultSet resultSet = SparqlHelpers.Select(store, sparql);

            IList <Uri> results = new List <Uri>();

            foreach (SparqlResult result in resultSet)
            {
                IUriNode item = (IUriNode)result["catalogPackage"];
                results.Add(item.Uri);
            }
            return(results);
        }
Example #9
0
        private static void AddExistingItem(IDictionary <RegistrationEntryKey, RegistrationCatalogEntry> resources, TripleStore store, Uri catalogEntry)
        {
            Trace.TraceInformation("RegistrationPersistence.AddExistingItem: catalogEntry = {0}", catalogEntry);

            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.ConstructCatalogEntryGraph.rq");
            sparql.SetUri("catalogEntry", catalogEntry);

            IGraph graph = SparqlHelpers.Construct(store, sparql.ToString());

            resources.Add(RegistrationCatalogEntry.Promote(
                              catalogEntry.AbsoluteUri,
                              graph,
                              shouldInclude: (k, u, g) => true,
                              isExistingItem: true));
        }
Example #10
0
        private static IList <Uri> ListExistingItems(TripleStore store)
        {
            string sparql = Utils.GetResource("sparql.SelectInlinePackage.rq");

            SparqlResultSet resultSet = SparqlHelpers.Select(store, sparql);

            IList <Uri> results = new List <Uri>();

            foreach (SparqlResult result in resultSet)
            {
                IUriNode item = (IUriNode)result["catalogPackage"];
                results.Add(item.Uri);
            }

            Trace.TraceInformation("RegistrationPersistence.ListExistingItems results = {0}", results.Count);

            return(results);
        }
        static void AddExistingItems(IGraph graph, IDictionary <string, IGraph> items)
        {
            TripleStore store = new TripleStore();

            store.Add(graph, true);

            string inlinePackageSparql = Utils.GetResource("sparql.SelectInlinePackage.rq");

            SparqlResultSet rows = SparqlHelpers.Select(store, inlinePackageSparql);

            foreach (SparqlResult row in rows)
            {
                string packageUri   = ((IUriNode)row["catalogPackage"]).Uri.AbsoluteUri;
                string jsonFileName = packageUri.Substring(packageUri.LastIndexOf("/") + 1);

                //If items already has that version, then skip it
                //Add only the new ones
                if (!existingVersionsWithID.Contains(jsonFileName))
                {
                    items[packageUri] = graph;
                }
            }
        }
Example #12
0
        static XElement CreateNuspecMetadata(TripleStore store, Uri packageUri)
        {
            SparqlParameterizedString sparql = new SparqlParameterizedString();

            sparql.CommandText = Utils.GetResource("sparql.SelectPackageDetails.rq");
            sparql.SetUri("package", packageUri);
            SparqlResult packageInfo = SparqlHelpers.Select(store, sparql.ToString()).FirstOrDefault();

            if (packageInfo == null)
            {
                throw new ArgumentException(string.Format("no package details for {0}", packageUri));
            }

            XElement metadata = new XElement(nuget.GetName("metadata"));

            metadata.Add(new XElement(nuget.GetName("id"), packageInfo["id"].ToString()));
            metadata.Add(new XElement(nuget.GetName("version"), packageInfo["version"].ToString()));

            //  in the nuspec the published and owners fields are not present and ignored respectfully

            //if (packageInfo.HasBoundValue("published"))
            //{
            //    DateTime val = DateTime.Parse(((ILiteralNode)packageInfo["published"]).Value);
            //    metadata.Add(new XElement(nuget.GetName("published"), val.ToUniversalTime().ToString("O")));
            //}

            if (packageInfo.HasBoundValue("authors"))
            {
                metadata.Add(new XElement(nuget.GetName("authors"), packageInfo["authors"].ToString()));
            }

            if (packageInfo.HasBoundValue("description"))
            {
                metadata.Add(new XElement(nuget.GetName("description"), packageInfo["description"].ToString()));
            }

            if (packageInfo.HasBoundValue("summary"))
            {
                metadata.Add(new XElement(nuget.GetName("summary"), packageInfo["summary"].ToString()));
            }

            if (packageInfo.HasBoundValue("language"))
            {
                metadata.Add(new XElement(nuget.GetName("language"), packageInfo["language"].ToString()));
            }

            if (packageInfo.HasBoundValue("title"))
            {
                metadata.Add(new XElement(nuget.GetName("title"), packageInfo["title"].ToString()));
            }

            if (packageInfo.HasBoundValue("targetFramework"))
            {
                metadata.Add(new XElement(nuget.GetName("targetFramework"), packageInfo["targetFramework"].ToString()));
            }

            if (packageInfo.HasBoundValue("requireLicenseAcceptance"))
            {
                bool val = bool.Parse(((ILiteralNode)packageInfo["requireLicenseAcceptance"]).Value);
                metadata.Add(new XElement(nuget.GetName("requireLicenseAcceptance"), val));
            }

            if (packageInfo.HasBoundValue("licenseUrl"))
            {
                metadata.Add(new XElement(nuget.GetName("licenseUrl"), packageInfo["licenseUrl"].ToString()));
            }

            if (packageInfo.HasBoundValue("iconUrl"))
            {
                metadata.Add(new XElement(nuget.GetName("iconUrl"), packageInfo["iconUrl"].ToString()));
            }

            if (packageInfo.HasBoundValue("projectUrl"))
            {
                metadata.Add(new XElement(nuget.GetName("projectUrl"), packageInfo["projectUrl"].ToString()));
            }

            if (packageInfo.HasBoundValue("releaseNotes"))
            {
                metadata.Add(new XElement(nuget.GetName("releaseNotes"), packageInfo["releaseNotes"].ToString()));
            }

            if (packageInfo.HasBoundValue("copyright"))
            {
                metadata.Add(new XElement(nuget.GetName("copyright"), packageInfo["copyright"].ToString()));
            }

            if (packageInfo.HasBoundValue("minClientVersion"))
            {
                metadata.Add(new XAttribute("minClientVersion", packageInfo["minClientVersion"].ToString()));
            }

            if (packageInfo.HasBoundValue("developmentDependency"))
            {
                bool val = bool.Parse(((ILiteralNode)packageInfo["developmentDependency"]).Value);
                metadata.Add(new XElement(nuget.GetName("developmentDependency"), val));
            }

            return(metadata);
        }