mirror of
https://github.com/fergalmoran/SilkierQuartz.git
synced 2026-01-03 07:25:55 +00:00
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netstandard2.1</TargetFrameworks>
|
<TargetFrameworks>net6.0</TargetFrameworks>
|
||||||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
||||||
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.FileProviders;
|
using Microsoft.Extensions.FileProviders;
|
||||||
using Quartz;
|
using Quartz;
|
||||||
@@ -44,7 +45,7 @@ namespace Microsoft.AspNetCore.Builder
|
|||||||
|
|
||||||
[Obsolete("We recommend UseSilkierQuartz")]
|
[Obsolete("We recommend UseSilkierQuartz")]
|
||||||
public static IApplicationBuilder UseQuartzmin(this IApplicationBuilder app, Action<Services> configure = null)
|
public static IApplicationBuilder UseQuartzmin(this IApplicationBuilder app, Action<Services> configure = null)
|
||||||
=> app.UseSilkierQuartz(configure);
|
=> app.UseSilkierQuartz(configure: configure);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Use SilkierQuartz and automatically discover IJob subclasses with SilkierQuartzAttribute
|
/// Use SilkierQuartz and automatically discover IJob subclasses with SilkierQuartzAttribute
|
||||||
@@ -52,8 +53,7 @@ namespace Microsoft.AspNetCore.Builder
|
|||||||
/// <param name="app"></param>
|
/// <param name="app"></param>
|
||||||
/// <param name="configure"></param>
|
/// <param name="configure"></param>
|
||||||
public static IApplicationBuilder UseSilkierQuartz(
|
public static IApplicationBuilder UseSilkierQuartz(
|
||||||
this IApplicationBuilder app,
|
this IApplicationBuilder app ,Action<Services> configure = null)
|
||||||
Action<Services> configure = null)
|
|
||||||
{
|
{
|
||||||
var options = app.ApplicationServices
|
var options = app.ApplicationServices
|
||||||
.GetService<SilkierQuartzOptions>() ?? throw new ArgumentNullException(nameof(SilkierQuartzOptions));
|
.GetService<SilkierQuartzOptions>() ?? throw new ArgumentNullException(nameof(SilkierQuartzOptions));
|
||||||
@@ -140,11 +140,12 @@ namespace Microsoft.AspNetCore.Builder
|
|||||||
private static void UseFileServer(this IApplicationBuilder app, SilkierQuartzOptions options)
|
private static void UseFileServer(this IApplicationBuilder app, SilkierQuartzOptions options)
|
||||||
{
|
{
|
||||||
IFileProvider fs;
|
IFileProvider fs;
|
||||||
if (string.IsNullOrEmpty(options.ContentRootDirectory))
|
|
||||||
fs = new ManifestEmbeddedFileProvider(Assembly.GetExecutingAssembly(), "Content");
|
|
||||||
else
|
|
||||||
fs = new PhysicalFileProvider(options.ContentRootDirectory);
|
|
||||||
|
|
||||||
|
var manifestEmbeddedProvider =
|
||||||
|
new EmbeddedFileProvider(typeof(SilkierQuartzOptions).Assembly);
|
||||||
|
|
||||||
|
|
||||||
|
fs = new EmbeddedFileProvider(typeof(SilkierQuartzOptions).Assembly, "SilkierQuartz.Content");
|
||||||
var fsOptions = new FileServerOptions()
|
var fsOptions = new FileServerOptions()
|
||||||
{
|
{
|
||||||
RequestPath = new PathString($"{options.VirtualPathRoot}/Content"),
|
RequestPath = new PathString($"{options.VirtualPathRoot}/Content"),
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 496 KiB After Width: | Height: | Size: 496 KiB |
|
Before Width: | Height: | Size: 382 KiB After Width: | Height: | Size: 382 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
@@ -1,8 +1,8 @@
|
|||||||
https://cdn.jsdelivr.net/npm/semantic-ui@2.3.3/dist/semantic.min.css
|
https://cdn.jsdelivr.net/npm/semanticui@2.3.3/dist/semantic.min.css
|
||||||
https://cdn.rawgit.com/mdehoog/Semantic-UI-Calendar/76959c6f7d33a527b49be76789e984a0a407350b/dist/calendar.min.css
|
https://cdn.rawgit.com/mdehoog/semanticui-Calendar/76959c6f7d33a527b49be76789e984a0a407350b/dist/calendar.min.css
|
||||||
|
|
||||||
https://code.jquery.com/jquery-3.3.1.min.js"
|
https://code.jquery.com/jquery-3.3.1.min.js"
|
||||||
https://cdn.jsdelivr.net/npm/semantic-ui@2.3.3/dist/semantic.min.js
|
https://cdn.jsdelivr.net/npm/semanticui@2.3.3/dist/semantic.min.js
|
||||||
https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/components/state.min.js
|
https://cdnjs.cloudflare.com/ajax/libs/semanticui/2.3.0/components/state.min.js
|
||||||
https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js
|
https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js
|
||||||
https://cdn.rawgit.com/mdehoog/Semantic-UI-Calendar/76959c6f7d33a527b49be76789e984a0a407350b/dist/calendar.min.js
|
https://cdn.rawgit.com/mdehoog/semanticui-Calendar/76959c6f7d33a527b49be76789e984a0a407350b/dist/calendar.min.js
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
||||||
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
@@ -29,10 +29,37 @@
|
|||||||
<PackageIcon>logo.png</PackageIcon>
|
<PackageIcon>logo.png</PackageIcon>
|
||||||
<IsPackable>true</IsPackable>
|
<IsPackable>true</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<DefineConstants></DefineConstants>
|
<DefineConstants></DefineConstants>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netcoreapp3.1|AnyCPU'">
|
||||||
|
<Optimize>True</Optimize>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net5.0|AnyCPU'">
|
||||||
|
<Optimize>True</Optimize>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0|AnyCPU'">
|
||||||
|
<Optimize>True</Optimize>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netcoreapp3.1|AnyCPU'">
|
||||||
|
<Optimize>False</Optimize>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net5.0|AnyCPU'">
|
||||||
|
<Optimize>False</Optimize>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0|AnyCPU'">
|
||||||
|
<Optimize>False</Optimize>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Quartz.Plugins.RecentHistory\Quartz.Plugins.RecentHistory.csproj" />
|
<ProjectReference Include="..\Quartz.Plugins.RecentHistory\Quartz.Plugins.RecentHistory.csproj" />
|
||||||
|
|||||||
@@ -74,17 +74,8 @@ namespace SilkierQuartz
|
|||||||
StandardTypes.Add(new StringHandler() { Name = "MultilineString", DisplayName = "String (Multiline)", IsMultiline = true });
|
StandardTypes.Add(new StringHandler() { Name = "MultilineString", DisplayName = "String (Multiline)", IsMultiline = true });
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG
|
|
||||||
public string SitePhysicalDirectory { get; set; }
|
|
||||||
|
|
||||||
internal string ContentRootDirectory =>
|
|
||||||
string.IsNullOrEmpty(SitePhysicalDirectory) ? null : Path.Combine(SitePhysicalDirectory, "Content");
|
|
||||||
internal string ViewsRootDirectory =>
|
|
||||||
string.IsNullOrEmpty(SitePhysicalDirectory) ? null : Path.Combine(SitePhysicalDirectory, "Views");
|
|
||||||
|
|
||||||
#else
|
|
||||||
internal string ContentRootDirectory => null;
|
internal string ContentRootDirectory => null;
|
||||||
internal string ViewsRootDirectory => null;
|
internal string ViewsRootDirectory => null;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using HandlebarsDotNet;
|
using HandlebarsDotNet;
|
||||||
|
using Microsoft.Extensions.FileProviders;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
@@ -10,7 +12,6 @@ namespace SilkierQuartz
|
|||||||
public static ViewEngineFileSystem Create(SilkierQuartzOptions options)
|
public static ViewEngineFileSystem Create(SilkierQuartzOptions options)
|
||||||
{
|
{
|
||||||
ViewEngineFileSystem fs;
|
ViewEngineFileSystem fs;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(options.ViewsRootDirectory))
|
if (string.IsNullOrEmpty(options.ViewsRootDirectory))
|
||||||
{
|
{
|
||||||
fs = new EmbeddedFileSystem();
|
fs = new EmbeddedFileSystem();
|
||||||
@@ -55,18 +56,19 @@ namespace SilkierQuartz
|
|||||||
|
|
||||||
private class EmbeddedFileSystem : ViewEngineFileSystem
|
private class EmbeddedFileSystem : ViewEngineFileSystem
|
||||||
{
|
{
|
||||||
|
private EmbeddedFileProvider fs = new EmbeddedFileProvider(Assembly.GetExecutingAssembly(), "SilkierQuartz.Views");
|
||||||
public override string GetFileContent(string filename)
|
public override string GetFileContent(string filename)
|
||||||
{
|
{
|
||||||
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetFullPath(filename)))
|
string result = string.Empty;
|
||||||
|
var fi = fs.GetFileInfo(GetFullPath(filename));
|
||||||
|
using (var stream =fi.CreateReadStream())
|
||||||
{
|
{
|
||||||
if (stream == null)
|
using (StreamReader reader = new StreamReader(stream))
|
||||||
return null;
|
|
||||||
|
|
||||||
using (var reader = new StreamReader(stream, Encoding.UTF8))
|
|
||||||
{
|
{
|
||||||
return reader.ReadToEnd();
|
result = reader.ReadToEnd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override string CombinePath(string dir, string otherFileName)
|
protected override string CombinePath(string dir, string otherFileName)
|
||||||
@@ -76,13 +78,13 @@ namespace SilkierQuartz
|
|||||||
|
|
||||||
public override bool FileExists(string filePath)
|
public override bool FileExists(string filePath)
|
||||||
{
|
{
|
||||||
return Assembly.GetExecutingAssembly().GetManifestResourceInfo(GetFullPath(filePath)) != null;
|
return fs.GetFileInfo(GetFullPath(filePath)).Exists;
|
||||||
}
|
}
|
||||||
|
|
||||||
string GetFullPath(string filePath)
|
string GetFullPath(string filePath)
|
||||||
{
|
{
|
||||||
return Path.Combine(nameof(SilkierQuartz) + ".Views", filePath.Replace("partials/", "Partials/")).Replace('/', '.').Replace('\\', '.');
|
return filePath.Replace("partials/", "Partials/").Replace('/', Path.DirectorySeparatorChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
<title>Error</title>
|
<title>Error</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="Content/Lib/semantic-ui/semantic.min.css" type="text/css">
|
<link rel="stylesheet" href="Content/Lib/semanticui/semantic.min.css" type="text/css">
|
||||||
<link rel="stylesheet" href="Content/Fonts/Lato.css" type="text/css" />
|
<link rel="stylesheet" href="Content/Fonts/Lato.css" type="text/css" />
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|||||||
@@ -17,17 +17,17 @@
|
|||||||
<link rel="icon" type="image/png" sizes="192x192" href="Content/Images/favicons/favicon-192.png">
|
<link rel="icon" type="image/png" sizes="192x192" href="Content/Images/favicons/favicon-192.png">
|
||||||
<link rel="icon" type="image/png" sizes="256x256" href="Content/Images/favicons/favicon-256.png">
|
<link rel="icon" type="image/png" sizes="256x256" href="Content/Images/favicons/favicon-256.png">
|
||||||
|
|
||||||
<link rel="stylesheet" href="Content/Lib/semantic-ui/semantic.min.css" type="text/css">
|
<link rel="stylesheet" href="Content/Lib/semanticui/semantic.min.css" type="text/css">
|
||||||
<link rel="stylesheet" href="Content/Lib/semantic-ui/calendar.min.css" type="text/css" />
|
<link rel="stylesheet" href="Content/Lib/semanticui/calendar.min.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="Content/Fonts/Lato.css" type="text/css" />
|
<link rel="stylesheet" href="Content/Fonts/Lato.css" type="text/css" />
|
||||||
<link rel="stylesheet" href="Content/Site.css" type="text/css" />
|
<link rel="stylesheet" href="Content/Site.css" type="text/css" />
|
||||||
|
|
||||||
<script src="Content/Lib/jquery-3.3.1.min.js"></script>
|
<script src="Content/Lib/jquery-3.3.1.min.js"></script>
|
||||||
<script src="Content/Lib/moment.min.js"></script>
|
<script src="Content/Lib/moment.min.js"></script>
|
||||||
<script src="Content/Lib/FileSaver.js"></script>
|
<script src="Content/Lib/FileSaver.js"></script>
|
||||||
<script src="Content/Lib/semantic-ui/semantic.min.js"></script>
|
<script src="Content/Lib/semanticui/semantic.min.js"></script>
|
||||||
<script src="Content/Lib/semantic-ui/state.min.js"></script>
|
<script src="Content/Lib/semanticui/state.min.js"></script>
|
||||||
<script src="Content/Lib/semantic-ui/calendar.min.js"></script>
|
<script src="Content/Lib/semanticui/calendar.min.js"></script>
|
||||||
|
|
||||||
<script src="Content/Scripts/global.js"></script>
|
<script src="Content/Scripts/global.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
Reference in New Issue
Block a user