From 0df497fd95b233688efee5699628f39f01fbb1f1 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Tue, 17 Mar 2020 10:17:53 +0100 Subject: [PATCH] Creating our own types because we don't want to reference CDF --- src/Umbraco.Core/Assets/AssetFile.cs | 44 +++++++++++++++++++++++ src/Umbraco.Core/Assets/AssetType.cs | 8 +++++ src/Umbraco.Core/Assets/CssFile.cs | 18 ++++++++++ src/Umbraco.Core/Assets/IAssetFile.cs | 16 +++++++++ src/Umbraco.Core/Assets/JavascriptFile.cs | 18 ++++++++++ 5 files changed, 104 insertions(+) create mode 100644 src/Umbraco.Core/Assets/AssetFile.cs create mode 100644 src/Umbraco.Core/Assets/AssetType.cs create mode 100644 src/Umbraco.Core/Assets/CssFile.cs create mode 100644 src/Umbraco.Core/Assets/IAssetFile.cs create mode 100644 src/Umbraco.Core/Assets/JavascriptFile.cs diff --git a/src/Umbraco.Core/Assets/AssetFile.cs b/src/Umbraco.Core/Assets/AssetFile.cs new file mode 100644 index 0000000000..d60e1824b8 --- /dev/null +++ b/src/Umbraco.Core/Assets/AssetFile.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Umbraco.Core.Assets +{ + /// + /// Represents a dependency file + /// + [DebuggerDisplay("Type: {DependencyType}, File: {FilePath}")] + public class AssetFile : IAssetFile + { + #region IAssetFile Members + + public string FilePath { get; set; } + public AssetType DependencyType { get; } + public int Priority { get; set; } + public int Group { get; set; } + public string PathNameAlias { get; set; } + public string ForceProvider { get; set; } + public bool ForceBundle { get; set; } + + /// + /// Used to store additional attributes in the HTML markup for the item + /// + /// + /// Mostly used for CSS Media, but could be for anything + /// + public IDictionary HtmlAttributes { get; } + + #endregion + + public AssetFile(AssetType type) + { + DependencyType = type; + HtmlAttributes = new Dictionary(); + // Set to 100 for the case when a developer doesn't specify a priority it will come after all other dependencies that + // have unless the priority is explicitly set above 100. + Priority = 100; + //Unless a group is specified, all dependencies will go into the same, default, group. + Group = 100; + } + } +} diff --git a/src/Umbraco.Core/Assets/AssetType.cs b/src/Umbraco.Core/Assets/AssetType.cs new file mode 100644 index 0000000000..8ec8fc4c21 --- /dev/null +++ b/src/Umbraco.Core/Assets/AssetType.cs @@ -0,0 +1,8 @@ +namespace Umbraco.Core.Assets +{ + public enum AssetType + { + Javascript, + Css + } +} diff --git a/src/Umbraco.Core/Assets/CssFile.cs b/src/Umbraco.Core/Assets/CssFile.cs new file mode 100644 index 0000000000..3a28117318 --- /dev/null +++ b/src/Umbraco.Core/Assets/CssFile.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Umbraco.Core.Assets +{ + /// + /// Represents a CSS asset file + /// + public class CssFile : AssetFile + { + public CssFile(string filePath) + : base(AssetType.Css) + { + FilePath = filePath; + } + } +} diff --git a/src/Umbraco.Core/Assets/IAssetFile.cs b/src/Umbraco.Core/Assets/IAssetFile.cs new file mode 100644 index 0000000000..03471890d6 --- /dev/null +++ b/src/Umbraco.Core/Assets/IAssetFile.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; + +namespace Umbraco.Core.Assets +{ + public interface IAssetFile + { + string FilePath { get; set; } + AssetType DependencyType { get; } + int Priority { get; set; } + int Group { get; set; } + string PathNameAlias { get; set; } + string ForceProvider { get; set; } + bool ForceBundle { get; set; } + IDictionary HtmlAttributes { get; } + } +} diff --git a/src/Umbraco.Core/Assets/JavascriptFile.cs b/src/Umbraco.Core/Assets/JavascriptFile.cs new file mode 100644 index 0000000000..477c8eabab --- /dev/null +++ b/src/Umbraco.Core/Assets/JavascriptFile.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Umbraco.Core.Assets +{ + /// + /// Represents a JS asset file + /// + public class JavascriptFile : AssetFile + { + public JavascriptFile(string filePath) + : base(AssetType.Javascript) + { + FilePath = filePath; + } + } +}