コード例 #1
0
        /// <summary>
        /// Delete prefix and associated namespace with it.
        /// </summary>
        /// <param name="prefixStr">Prefix</param>
        /// <param name="fullStr">Namespace</param>
        /// <returns>Returns 'True' if operation completed succeful, 'False' otherwise.</returns>
        public bool DeletePrefix(string prefixStr, string fullStr)
        {
            var val = TriplePrefixes.FirstOrDefault(x => x.Prefix == prefixStr && x.Namespace == fullStr);

            if (val != null)
            {
                TriplePrefixes.Remove(val);
                SaveChanges();
                return(true);
            }
            return(false);
        }
コード例 #2
0
 public TripleName TryEnsureNamespace(TripleName name)
 {
     if (name.Namespace == null)
     {
         if (TripleName.PrefixesAndNamespaces.ContainsKey(name.Prefix))
         {
             return(new TripleName(TripleName.PrefixesAndNamespaces[name.Prefix], name.Prefix, name.Name));
         }
         var tr = TriplePrefixes.FirstOrDefault(x => x.Prefix == name.Prefix);
         return(tr != null ? new TripleName(tr.Namespace, name.Prefix, name.Name) : name);
     }
     else
     {
         return(name);
     }
 }
コード例 #3
0
        /// <summary>
        /// Add new prefix and associated namespace with it.
        /// </summary>
        /// <param name="prefixStr">Prefix</param>
        /// <param name="fullStr">Namespace</param>
        /// <returns>Returns 'True' if operation completed succeful, 'False' otherwise.</returns>
        public bool SetPrefix(string prefixStr, string fullStr)
        {
            var val = TriplePrefixes.FirstOrDefault(x => x.Prefix == prefixStr || x.Namespace == fullStr);

            if (val == null)
            {
                var t = new TriplePrefix
                {
                    Namespace = fullStr,
                    Prefix    = prefixStr
                };
                TriplePrefixes.Add(t);
                SaveChanges();
                return(true);
            }
            return(false);
        }
コード例 #4
0
 /// <summary>Ensures that triple name has prefix. If triple name has namespace, it is converted to prefix</summary>
 /// <param name="name">Name of the triple</param>
 /// <returns>Name of the triple with prefix available</returns>
 public TripleName EnsurePrefix(TripleName name)
 {
     if (name.Prefix == null)
     {
         var found = TripleName.PrefixesAndNamespaces.FirstOrDefault(p => p.Value == name.Namespace);
         if (found.Key != null)
         {
             return(new TripleName(name.Namespace, found.Key, name.Name));
         }
         var tr = TriplePrefixes.FirstOrDefault(t => t.Namespace == name.Namespace);
         if (tr != null)
         {
             return(new TripleName(name.Namespace, tr.Prefix, name.Name));
         }
         else
         {
             throw new ArgumentException(String.Format("There is no known prefix for namespace {0}", name.Namespace));
         }
     }
     else
     {
         return(name);
     }
 }