private void LoadItems(bool showAll)
        {
            int?selectedItem = this.SelectedValueAsInt();

            this.Items.Clear();
            this.Items.Add(new ListItem());

            using (var rockContext = new RockContext())
            {
                foreach (var assetStorageProvider in new AssetStorageProviderService(rockContext)
                         .Queryable().AsNoTracking()
                         .Where(g => g.EntityTypeId.HasValue)
                         .OrderBy(g => g.Name)
                         .ToList())
                {
                    var entityType = EntityTypeCache.Get(assetStorageProvider.EntityTypeId.Value);
                    AssetStorageComponent component = AssetStorageContainer.GetComponent(entityType.Name);
                    if (showAll || (assetStorageProvider.IsActive && component != null && component.IsActive))
                    {
                        this.Items.Add(new ListItem(assetStorageProvider.Name, assetStorageProvider.Id.ToString()));
                    }
                }
            }

            this.SetValue(selectedItem);
        }
Esempio n. 2
0
        public void Store(NodeAddedEvent e, LoadedAssetNode assetNode, [JoinAll] DatabaseNode db)
        {
            AssetStorageComponent assetStorage = db.assetStorage;
            string assetGuid = assetNode.assetReference.Reference.AssetGuid;
            Object data      = assetNode.resourceData.Data;

            if (data != null)
            {
                assetStorage.Put(assetGuid, data, assetNode.assetRequest.AssetStoreLevel);
            }
        }
Esempio n. 3
0
        public void CleanStorage(UnloadUnusedAssetsEvent e, Node any, [JoinAll] DatabaseNode db)
        {
            AssetStorageComponent assetStorage = db.assetStorage;
            List <string>         list         = new List <string>(10);

            foreach (KeyValuePair <string, ResourceStorageEntry> pair in db.assetStorage.ManagedReferencies)
            {
                ResourceStorageEntry entry = pair.Value;
                if (this.IsExpired(entry))
                {
                    list.Add(pair.Key);
                }
            }
            foreach (string str in list)
            {
                assetStorage.Remove(str, AssetStoreLevel.MANAGED);
            }
        }
Esempio n. 4
0
        private bool FillAllAssetsFromStorage(IEnumerable <AssetReference> referencies, AssetStorageComponent storage, out List <Object> assetList)
        {
            bool flag;

            assetList = new List <Object>(5);
            using (IEnumerator <AssetReference> enumerator = referencies.GetEnumerator())
            {
                while (true)
                {
                    if (enumerator.MoveNext())
                    {
                        AssetReference current = enumerator.Current;
                        if (storage.Contains(current.AssetGuid))
                        {
                            assetList.Add(storage.Get(current.AssetGuid));
                            continue;
                        }
                        flag = false;
                    }
                    else
                    {
                        return(true);
                    }
                    break;
                }
            }
            return(flag);
        }