Пример #1
0
 public IEnumerable <MetaDataItem> GetMetaDatas(LibraryHierarchyNode libraryHierarchyNode, MetaDataItemType metaDataItemType)
 {
     using (var database = this.DatabaseFactory.Create())
     {
         using (var transaction = database.BeginTransaction(database.PreferredIsolationLevel))
         {
             using (var reader = database.ExecuteReader(database.Queries.GetLibraryHierarchyMetaData, (parameters, phase) =>
             {
                 switch (phase)
                 {
                 case DatabaseParameterPhase.Fetch:
                     parameters["libraryHierarchyItemId"] = libraryHierarchyNode.Id;
                     parameters["type"] = metaDataItemType;
                     break;
                 }
             }, transaction))
             {
                 foreach (var record in reader)
                 {
                     yield return(new MetaDataItem()
                     {
                         Value = record.Get <string>("Value")
                     });
                 }
             }
         }
     }
 }
Пример #2
0
 public OnDemandMetaDataRequest(string name, MetaDataItemType type, bool user, object state = null)
 {
     this.Name  = name;
     this.Type  = type;
     this.User  = user;
     this.State = state;
 }
Пример #3
0
        protected virtual Task SortItemsByMetaData(MetaDataItemType type, string value, bool descending)
        {
#if NET40
            return(TaskEx.FromResult(false));
#else
            return(Task.CompletedTask);
#endif
        }
Пример #4
0
            public void Add(string name, MetaDataItemType type, string value, int metaDataItemId)
            {
                if (!NAMES.Contains(name))
                {
                    return;
                }
                var key = new Key(name, type, value);

                this.Store.Add(key, metaDataItemId);
            }
Пример #5
0
        public static T GetValueOrDefault <T>(this IFileData fileData, string name, MetaDataItemType type, T value = default(T))
        {
            var text = fileData.GetValueOrDefault(name, type);

            if (string.IsNullOrEmpty(text))
            {
                return(value);
            }
            return((T)Convert.ChangeType(text, typeof(T)));
        }
Пример #6
0
 public static string GetValueOrDefault(this IFileData fileData, string name, MetaDataItemType type, string value = null)
 {
     foreach (var metaDataItem in fileData.MetaDatas)
     {
         if (string.Equals(metaDataItem.Name, name, StringComparison.OrdinalIgnoreCase) && metaDataItem.Type == type)
         {
             return(metaDataItem.Value);
         }
     }
     return(value);
 }
Пример #7
0
            public bool TryGetValue(string name, MetaDataItemType type, string value, out int metaDataItemId)
            {
                if (!NAMES.Contains(name))
                {
                    metaDataItemId = default(int);
                    return(false);
                }
                var key = new Key(name, type, value);

                return(this.Store.TryGetValue(key, out metaDataItemId));
            }
Пример #8
0
 public static MetaDataItem GetOrAdd(this IFileData fileData, string name, MetaDataItemType type, string value = null)
 {
     foreach (var metaDataItem in fileData.MetaDatas)
     {
         if (string.Equals(metaDataItem.Name, name, StringComparison.OrdinalIgnoreCase) && metaDataItem.Type == type)
         {
             return(metaDataItem);
         }
     }
     {
         var metaDataItem = new MetaDataItem(name, type);
         if (value != null)
         {
             metaDataItem.Value = value;
         }
         fileData.MetaDatas.Add(metaDataItem);
         return(metaDataItem);
     }
 }
Пример #9
0
        private static int GetSequence(MetaDataItemType type)
        {
            switch (type)
            {
            case MetaDataItemType.Tag:
                return(0);

            case MetaDataItemType.CustomTag:
                return(1);

            case MetaDataItemType.Property:
                return(2);

            case MetaDataItemType.Statistic:
                return(3);

            default:
                return(10);
            }
        }
Пример #10
0
 public static bool AddOrUpdate(this IFileData fileData, string name, MetaDataItemType type, string value)
 {
     foreach (var metaDataItem in fileData.MetaDatas)
     {
         if (string.Equals(metaDataItem.Name, name, StringComparison.OrdinalIgnoreCase) && metaDataItem.Type == type)
         {
             if (string.Equals(metaDataItem.Value, value))
             {
                 return(false);
             }
             metaDataItem.Value = value;
             return(true);
         }
     }
     fileData.MetaDatas.Add(new MetaDataItem(name, type)
     {
         Value = value
     });
     return(true);
 }
Пример #11
0
            public int GetOrAdd(string name, MetaDataItemType type, string value, Func <int> factory)
            {
                var key = new Key(name, type, value);

                return(this.GetOrAdd(key, factory));
            }
Пример #12
0
 public bool IsSourceEnabled(string name, MetaDataItemType type)
 {
     return(this.GetSources(name, type).Any());
 }
Пример #13
0
 private static IEnumerable <MetaDataElement> GetElements(IEnumerable <string> names, MetaDataItemType type, IEnumerable <KeyValuePair <string, MetaDataItemType> > supported)
 {
     foreach (var name in names)
     {
         if (!supported.Any(element => string.Equals(element.Key, name, StringComparison.OrdinalIgnoreCase) && element.Value == type))
         {
             continue;
         }
         yield return(new MetaDataElement(name, type));
     }
 }
Пример #14
0
        public static bool AddOrUpdate(this IFileData fileData, IDictionary <string, MetaDataItem> metaDataItems, string name, MetaDataItemType type, string value)
        {
            var metaDataItem = default(MetaDataItem);

            if (metaDataItems.TryGetValue(name, out metaDataItem))
            {
                if (string.Equals(metaDataItem.Value, value))
                {
                    return(false);
                }
                metaDataItem.Value = value;
                return(true);
            }
            fileData.MetaDatas.Add(new MetaDataItem(name, type)
            {
                Value = value
            });
            return(true);
        }
Пример #15
0
 public SupportedMetaData(int sequence, string name, MetaDataItemType type)
 {
     this.Sequence = sequence;
     this.Name     = name;
     this.Type     = type;
 }
Пример #16
0
 public SupportedMetaData(string name, MetaDataItemType type) : this(GetSequence(type), name, type)
 {
 }
Пример #17
0
 public Key(string name, MetaDataItemType type, string value)
 {
     this.Name  = name;
     this.Type  = type;
     this.Value = value;
 }
Пример #18
0
 public MetaDataItem(string name, MetaDataItemType type)
 {
     this.Name = name;
     this.Type = type;
 }
Пример #19
0
 public MetaDataEntry(string name, MetaDataItemType type) : this()
 {
     this.Name = name;
     this.Type = type;
 }
Пример #20
0
 public MetaDataElement(string name, MetaDataItemType type)
 {
     this.Name = name;
     this.Type = Enum.GetName(typeof(MetaDataItemType), type);
 }
Пример #21
0
 protected virtual IEnumerable <IOnDemandMetaDataSource> GetSources(string name, MetaDataItemType type)
 {
     foreach (var source in this.Sources)
     {
         if (source.Enabled && string.Equals(source.Name, name, StringComparison.OrdinalIgnoreCase) && source.Type == type)
         {
             yield return(source);
         }
     }
 }