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); }
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)); } } }
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)); } }
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); * } * }*/ }
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}"); } }
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); }
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)); }
public IEnumerable <EditorExtension> FetchObjects(IAssetContainer file) { GameObject root = RootGameObject.GetAsset(file); return(FetchAssets(root)); }
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); }