Chronozoom.Entities.TripleName.Parse C# (CSharp) Метод

Parse() публичный статический Метод

Parses string as full triple name
public static Parse ( string name ) : TripleName
name string String with full triple name
Результат TripleName
        public static TripleName Parse(string name)
        {
            var mp = _prefixReg.Match(name);
            if (mp.Success)
                return new TripleName(null, mp.Groups[1].Value, mp.Groups[2].Value);
            var mn = _namespaceReg.Match(name);
            if (mn.Success)
                return new TripleName(mp.Groups[1].Value, null, mp.Groups[2].Value);
            else
                throw new ArgumentException("Name does not have valid prefix or namespace");
        }

Usage Example

Пример #1
0
        /// <summary>Build list of triples that reference specified object</summary>
        /// <param name="predicate">Optional predicate name</param>
        /// <param name="obj">Object full name</param>
        /// <returns>List of triples</returns>
        public List <Triple> GetIncomingTriplets(string predicate, string obj)
        {
            var objectName = EnsurePrefix(TripleName.Parse(obj)).ToString();
            IQueryable <Triple> triples;

            if (!String.IsNullOrEmpty(predicate))
            {
                var predicateName = EnsurePrefix(TripleName.Parse(predicate)).ToString();
                triples = Triples.Where(t => t.Predicate == predicateName);
            }
            else
            {
                // Not very efficient as it enumerates entire database
                triples = Triples;
            }

            return(triples.
                   Include(o => o.Objects). // Include Objects collection
                   Where(t => t.Objects.Any(o => o.Object == objectName)).
                   ToArray().               // Stop LINQ to SQL and use simple collection transformations
                   Select(t => new Triple {
                Subject = t.Subject,
                Predicate = t.Predicate,
                Objects = new Collection <TripleObject>(t.Objects.Where(o => o.Object == objectName).ToArray())
            }).ToList());
        }
All Usage Examples Of Chronozoom.Entities.TripleName::Parse