93 lines
2.9 KiB
C#
93 lines
2.9 KiB
C#
using System.Text.Json.Serialization;
|
||
|
||
namespace Microsoft.AspNetCore.Mvc
|
||
{
|
||
abstract public class VersionIdModel
|
||
{
|
||
public int VersionId { get; set; } = 0;
|
||
}
|
||
|
||
public enum ViewMode
|
||
{
|
||
Full = 0,
|
||
Partial = 1,
|
||
IFrameFull = 2,
|
||
IFramePartial = 3,
|
||
}
|
||
|
||
public class BaseViewModel : VersionIdModel
|
||
{
|
||
public bool NeedScripts { get; set; } = true;
|
||
|
||
public ViewMode ViewMode { get; set; } = ViewMode.Full;
|
||
|
||
public const string BootstrapVersionDefault = "5.3";
|
||
public const string FaIconsVersionDefault = "6.5";
|
||
|
||
#region Инфа по JQuery
|
||
|
||
public bool JQueryRequired { get; set; } = true;
|
||
|
||
#endregion
|
||
|
||
#region Инфа по JSTree
|
||
|
||
public bool JsTreeRequired { get; set; } = true;
|
||
|
||
#endregion
|
||
|
||
#region Инфа по бутстрапу
|
||
|
||
public bool BootstrapRequired { get; set; } = true;
|
||
public string BootstrapVersion { get; set; } = BootstrapVersionDefault;
|
||
public bool CanLoadBootstrap { get => (BootstrapVersion ?? string.Empty).StartsWith(BootstrapVersionDefault); }
|
||
public bool NeedLoadBootstrap { get => BootstrapRequired && CanLoadBootstrap; }
|
||
public bool NeedDowngradeBootstrap { get => CanLoadBootstrap == false; }
|
||
|
||
#endregion
|
||
|
||
#region Инфа по иконкам
|
||
|
||
[JsonPropertyName("faiRequired")]
|
||
public bool FaIconsRequired { get; set; } = true;
|
||
[JsonPropertyName("faiVersion")]
|
||
public string FaIconsVersion { get; set; } = FaIconsVersionDefault;
|
||
public bool CanLoadFaIcons { get => (FaIconsVersion ?? string.Empty).StartsWith(FaIconsVersionDefault); }
|
||
public bool NeedLoadFaIcons { get => FaIconsRequired && CanLoadFaIcons; }
|
||
public bool NeedDowngradeFaIcons { get => CanLoadBootstrap == false; }
|
||
|
||
#endregion
|
||
|
||
public BaseViewModel() { }
|
||
public BaseViewModel(BaseViewModel baseViewModel)
|
||
{
|
||
if (baseViewModel == null) return;
|
||
|
||
NeedScripts = baseViewModel.NeedScripts;
|
||
ViewMode = baseViewModel.ViewMode;
|
||
JQueryRequired = baseViewModel.JQueryRequired;
|
||
JsTreeRequired = baseViewModel.JsTreeRequired;
|
||
BootstrapRequired = baseViewModel.BootstrapRequired;
|
||
BootstrapVersion = baseViewModel.BootstrapVersion;
|
||
FaIconsRequired = baseViewModel.FaIconsRequired;
|
||
FaIconsVersion = baseViewModel.FaIconsVersion;
|
||
}
|
||
|
||
public void RefillByViewMode()
|
||
{
|
||
if (ViewMode == ViewMode.IFrameFull || ViewMode == ViewMode.IFramePartial)
|
||
{
|
||
NeedScripts = true;
|
||
|
||
BootstrapRequired = true;
|
||
BootstrapVersion = BootstrapVersionDefault;
|
||
|
||
FaIconsRequired = true;
|
||
FaIconsVersion = FaIconsVersionDefault;
|
||
|
||
JQueryRequired = true;
|
||
JsTreeRequired = true;
|
||
}
|
||
}
|
||
}
|
||
} |