Chronozoom.Entities.Storage.EnsurePrefix C# (CSharp) Метод

EnsurePrefix() публичный Метод

Ensures that triple name has prefix. If triple name has namespace, it is converted to prefix
public EnsurePrefix ( TripleName name ) : TripleName
name TripleName Name of the triple
Результат TripleName
        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;
        }

Usage Example

Пример #1
0
 private string GetSubjectOwner(Storage storage, string subject)
 {
     var name = storage.EnsurePrefix(TripleName.Parse(subject));
     switch(name.Prefix) {
         case TripleName.UserPrefix:
             return name.Name;
         case TripleName.TimelinePrefix:
             var collection = RetrieveCollection(storage, storage.GetCollectionFromTimeline(Guid.Parse(name.Name)));
             return collection != null && collection.User != null ? collection.User.Id.ToString() : null;
         case TripleName.ExhibitPrefix:
             collection = RetrieveCollection(storage, storage.GetCollectionFromExhibitGuid(Guid.Parse(name.Name)));
             return collection != null && collection.User != null ? collection.User.Id.ToString() : null;
         case TripleName.ArtifactPrefix:
             collection = RetrieveCollection(storage, storage.GetCollectionFromContentItemGuid(Guid.Parse(name.Name)));
             return collection != null && collection.User != null ? collection.User.Id.ToString() : null;
         default:
             return null;
     }
 }