public static IList <string> GetAssets <TContentMedia>(this IAssetContainer assetContainer, IContentLoader contentLoader, UrlResolver urlResolver)
            where TContentMedia : IContentMedia
        {
            var assets = new List <string>();

            if (assetContainer.CommerceMediaCollection != null)
            {
                assets.AddRange(assetContainer.CommerceMediaCollection.Where(x => ValidateCorrectType <TContentMedia>(x.AssetLink, contentLoader)).Select(media => urlResolver.GetUrl(media.AssetLink)));
            }

            if (!assets.Any())
            {
                assets.Add(string.Empty);
            }

            return(assets);
        }
Esempio n. 2
0
 public IEnumerable <EditorExtension> FetchObjects(IAssetContainer file)
 {
     if (IsModificationsFormat(file.Version))
     {
         GameObject root = RootGameObject.GetAsset(file);
         foreach (EditorExtension asset in root.FetchHierarchy())
         {
             yield return(asset);
         }
     }
     else
     {
         foreach (PPtr <EditorExtension> asset in Objects)
         {
             yield return(asset.GetAsset(file));
         }
     }
 }
Esempio n. 3
0
 public bool IsAsset(IAssetContainer file, Object asset)
 {
     if (FileIndex == 0)
     {
         if (file == asset.File)
         {
             return(asset.PathID == PathID);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(asset.PathID == PathID && file.Dependencies[FileIndex - 1].IsFile(asset.File));
     }
 }
Esempio n. 4
0
        public IEnumerable <EditorExtension> FetchObjects(IAssetContainer file)
        {
#warning TEMP HACK:
            //if (file.Layout.PrefabInstance.IsModificationFormat)
            {
                foreach (EditorExtension asset in RootGameObject.GetAsset(file).FetchHierarchy())
                {
                    yield return(asset);
                }
            }

            /*else
             * {
             *      foreach (PPtr<EditorExtension> asset in Objects)
             *      {
             *              yield return asset.GetAsset(file);
             *      }
             * }*/
        }
Esempio n. 5
0
        public T FindAsset(IAssetContainer file)
        {
            if (IsNull)
            {
                return(null);
            }
            Object asset = file.FindAsset(FileIndex, PathID);

            switch (asset)
            {
            case null:
                return(null);

            case T t:
                return(t);

            default:
                throw new Exception($"Object's type {asset.ClassID} isn't assignable from {typeof(T).Name}");
            }
        }
Esempio n. 6
0
        public IEnumerable <EditorExtension> FetchObjects(IAssetContainer file)
        {
#warning TEMP HACK:
            //if (IsModificationsFormat(file.Version))
            {
                GameObject root = RootGameObject.GetAsset(file);
                foreach (EditorExtension asset in root.FetchHierarchy())
                {
                    yield return(asset);
                }
            }

            /*else
             * {
             *      foreach (PPtr<EditorExtension> asset in Objects)
             *      {
             *              yield return asset.GetAsset(file);
             *      }
             * }*/
        }
        private static List <T> GetAssets <T>(this IAssetContainer container)
            where T : MediaData
        {
            var result = new List <T>();

            if (container?.CommerceMediaCollection == null)
            {
                return(result);
            }

            var mediaCollection = container.CommerceMediaCollection;

            foreach (var media in mediaCollection)
            {
                if (ContentLoader.Service.TryGet <T>(media.AssetLink, out var asset))
                {
                    result.Add(asset);
                }
            }

            return(result);
        }
Esempio n. 8
0
 public string GetDefaultAsset(IAssetContainer contentInstance)
 {
     return(_assetUrlResolver.GetAssetUrl(contentInstance));
 }
 public static List <string> GetImages(this IAssetContainer container)
 {
     return(GetAssets <ImageFile>(container)
            .Select(x => x.ContentLink.ContentUrl())
            .ToList());
 }
 private static void SetMediaCollection(IAssetContainer assetContainer, CommerceMedia media)
 {
     assetContainer.CommerceMediaCollection = new ItemCollection<CommerceMedia>() { media };
 }
 public string GetNamedAsset(IAssetContainer assetContainer, string propName)
 {
     return(_thumbnailUrlResolver.GetThumbnailUrl(assetContainer, propName));
 }
 public string GetDefaultAsset(IAssetContainer assetContainer)
 {
     return(_assetUrlResolver.GetAssetUrl(assetContainer));
 }
Esempio n. 13
0
        public IEnumerable <EditorExtension> FetchObjects(IAssetContainer file)
        {
            GameObject root = RootGameObject.GetAsset(file);

            return(FetchAssets(root));
        }
Esempio n. 14
0
 public string GetNamedAsset(IAssetContainer contentInstance, string propName)
 {
     return(_thumbnailUrlResolver.GetThumbnailUrl(contentInstance, propName));
 }
 /// <summary>
 /// Get all assets.
 /// </summary>
 /// <typeparam name="TContentMedia">Type of media.</typeparam>
 /// <param name="assetContainer">Asset container.</param>
 /// <returns>The list of found assets URLs.</returns>
 public static IList <string> GetAssets <TContentMedia>(this IAssetContainer assetContainer)
     where TContentMedia : IContentMedia
 {
     return(assetContainer.GetAssets <TContentMedia>(new string[0]));
 }
 public static string DefaultImage(this IAssetContainer container)
 {
     return(container.GetImages().FirstOrDefault());
 }
        public static IReadOnlyList <T> AddRange <A, T>(this IAssetContainer <T> container, IReadOnlyList <A> assets,
                                                        Func <A, string> getId, Func <A, string, T> transform) where T : class, IAsset
        {
            var res          = new T[assets.Count];
            var visitedNames = new HashSet <string>();

            //Prefer original id where possible
            for (var index = 0; index < res.Length; ++index)
            {
                var asset = assets[index];
                var id    = getId(asset);
                if (id != null)
                {
                    id = EnsureUniqueKey(id, _ => container.ContainsKey(_) || visitedNames.Contains(_));
                    visitedNames.Add(id);
                    var createdAsset = transform(asset, id);
                    if (createdAsset == null)
                    {
                        throw new InvalidOperationException($"Transform function returned null result for {id}");
                    }
                    res[index] = createdAsset;
                }
            }

            //Generate unique ids where no id was supplied
            var offset = container.Count;
            var lastKnownAvailableIndex = -1;

            for (var index = 0; index < res.Length; ++index)
            {
                if (res[index] != null)
                {
                    container.Add(res[index]);
                }
                else
                {
                    var nameIndex = index + offset;
                    if (nameIndex <= lastKnownAvailableIndex)
                    {
                        nameIndex = lastKnownAvailableIndex + 1;
                    }
                    var    prefix = typeof(T).Name;
                    string id;
                    for (;; ++nameIndex)
                    {
                        id = prefix + nameIndex.ToString(CultureInfo.InvariantCulture);
                        if (!container.ContainsKey(nameIndex.ToString(CultureInfo.InvariantCulture)))
                        {
                            break;
                        }
                    }

                    lastKnownAvailableIndex = nameIndex;
                    var asset = transform(assets[index], id);
                    container.Add(asset);
                    res[index] = asset;
                }
            }

            return(res);
        }
 public static IReadOnlyList <T> AddRange <T>(this IAssetContainer <T> container, IReadOnlyList <T> assets)
     where T : class, IAsset
 {
     return(AddRange(container, assets, _ => _.Id, (a, id) => a));
 }
 /// <summary>
 /// Get assets of Episerver's default group.
 /// </summary>
 /// <typeparam name="TContentMedia">Type of media.</typeparam>
 /// <param name="assetContainer">Asset container.</param>
 /// <returns>The list of found assets URLs.</returns>
 public static IList <string> GetDefaultAssets <TContentMedia>(this IAssetContainer assetContainer)
     where TContentMedia : IContentMedia
 {
     return(assetContainer.GetAssets <TContentMedia>(new[] { EpiserversDefaultGroupName }));
 }
 /// <summary>
 /// Get the first asset of the group.
 /// </summary>
 /// <typeparam name="TContentMedia">Type of media.</typeparam>
 /// <param name="assetContainer">Asset container.</param>
 /// <param name="groupName">Asset group name.</param>
 /// <returns>Url of the found asset or empty string if asset not found.</returns>
 public static string GetAsset <TContentMedia>(this IAssetContainer assetContainer, string groupName)
     where TContentMedia : IContentMedia
 {
     return(assetContainer.GetAssets <TContentMedia>(groupName).FirstOrDefault() ?? string.Empty);
 }