mirror of
https://github.com/fergalmoran/SilkierQuartz.git
synced 2026-01-06 00:44:16 +00:00
Adding support for dotnet core 3.1
This commit is contained in:
committed by
MysticBoy
parent
64f7f5f939
commit
4088fa2308
@@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28010.2050
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29326.143
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Quartzmin", "Source\Quartzmin\Quartzmin.csproj", "{E14F97E0-8B3B-43A2-9820-2F4B94497253}"
|
||||
EndProject
|
||||
@@ -19,7 +19,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetCoreSelfHost", "Source\E
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormSelfHost", "Source\Examples\WinFormSelfHost\WinFormSelfHost.csproj", "{C54F4403-F40A-497C-B3A7-D1F1E1830D52}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNetCoreDocker", "Source\Examples\AspNetCoreDocker\AspNetCoreDocker.csproj", "{68D816F2-21BF-4376-ABF4-70390E4783C5}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCoreDocker", "Source\Examples\AspNetCoreDocker\AspNetCoreDocker.csproj", "{68D816F2-21BF-4376-ABF4-70390E4783C5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNetCore3", "Source\Examples\AspNetCore3\AspNetCore3.csproj", "{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -59,6 +61,10 @@ Global
|
||||
{68D816F2-21BF-4376-ABF4-70390E4783C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{68D816F2-21BF-4376-ABF4-70390E4783C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{68D816F2-21BF-4376-ABF4-70390E4783C5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -69,43 +75,9 @@ Global
|
||||
{7CF90DB9-37C4-4704-910E-BF1DB8AB79F1} = {B669A725-70A9-4E80-BAC7-9765A14CAAA4}
|
||||
{C54F4403-F40A-497C-B3A7-D1F1E1830D52} = {B669A725-70A9-4E80-BAC7-9765A14CAAA4}
|
||||
{68D816F2-21BF-4376-ABF4-70390E4783C5} = {B669A725-70A9-4E80-BAC7-9765A14CAAA4}
|
||||
{3B2A3329-3BBB-4C6B-A42A-07EE565A2EB8} = {B669A725-70A9-4E80-BAC7-9765A14CAAA4}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {0357313D-BD09-4C5D-AF0D-439B3BD33B5A}
|
||||
EndGlobalSection
|
||||
GlobalSection(TeamFoundationVersionControl) = preSolution
|
||||
SccNumberOfProjects = 9
|
||||
SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
|
||||
SccTeamFoundationServer = http://tfs/defaultcollection
|
||||
SccLocalPath0 = .
|
||||
SccProjectUniqueName1 = Source\\Quartzmin\\Quartzmin.csproj
|
||||
SccProjectName1 = Source/Quartzmin
|
||||
SccLocalPath1 = Source\\Quartzmin
|
||||
SccProjectUniqueName2 = Source\\Quartz.Plugins.RecentHistory\\Quartz.Plugins.RecentHistory.csproj
|
||||
SccProjectName2 = Source/Quartz.Plugins.RecentHistory
|
||||
SccLocalPath2 = Source\\Quartz.Plugins.RecentHistory
|
||||
SccProjectUniqueName3 = Source\\Quartzmin.SelfHost\\Quartzmin.SelfHost.csproj
|
||||
SccProjectName3 = Source/Quartzmin.SelfHost
|
||||
SccLocalPath3 = Source\\Quartzmin.SelfHost
|
||||
SccProjectUniqueName4 = Source\\Examples\\NetCoreSelfHost\\NetCoreSelfHost.csproj
|
||||
SccProjectTopLevelParentUniqueName4 = Quartzmin.sln
|
||||
SccProjectName4 = Source/Examples/NetCoreSelfHost
|
||||
SccLocalPath4 = Source\\Examples\\NetCoreSelfHost
|
||||
SccProjectUniqueName5 = Source\\Examples\\AspNetCoreHost\\AspNetCoreHost.csproj
|
||||
SccProjectTopLevelParentUniqueName5 = Quartzmin.sln
|
||||
SccProjectName5 = Source/Examples/AspNetCoreHost
|
||||
SccLocalPath5 = Source\\Examples\\AspNetCoreHost
|
||||
SccProjectUniqueName6 = Source\\Examples\\AspNetWebHost\\AspNetWebHost.csproj
|
||||
SccProjectTopLevelParentUniqueName6 = Quartzmin.sln
|
||||
SccProjectName6 = Source/Examples/AspNetWebHost
|
||||
SccLocalPath6 = Source\\Examples\\AspNetWebHost
|
||||
SccProjectUniqueName7 = Source\\Examples\\WinFormSelfHost\\WinFormSelfHost.csproj
|
||||
SccProjectTopLevelParentUniqueName7 = Quartzmin.sln
|
||||
SccProjectName7 = Source/Examples/WinFormSelfHost
|
||||
SccLocalPath7 = Source\\Examples\\WinFormSelfHost
|
||||
SccProjectUniqueName8 = Source\\Examples\\AspNetCoreDocker\\AspNetCoreDocker.csproj
|
||||
SccProjectTopLevelParentUniqueName8 = Quartzmin.sln
|
||||
SccProjectName8 = Source/Examples/AspNetCoreDocker
|
||||
SccLocalPath8 = Source\\Examples\\AspNetCoreDocker
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
20
Source/Examples/AspNetCore3/AspNetCore3.csproj
Normal file
20
Source/Examples/AspNetCore3/AspNetCore3.csproj
Normal file
@@ -0,0 +1,20 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Shared\DemoScheduler.cs" Link="DemoScheduler.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Quartzmin\Quartzmin.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
38
Source/Examples/AspNetCore3/Program.cs
Normal file
38
Source/Examples/AspNetCore3/Program.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Quartzmin;
|
||||
|
||||
namespace AspNetCore3
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static void Main( string[] args )
|
||||
{
|
||||
var scheduler = DemoScheduler.Create().Result;
|
||||
|
||||
var host = WebHost.CreateDefaultBuilder( args ).Configure( app =>
|
||||
{
|
||||
app.UseQuartzmin( new QuartzminOptions() { Scheduler = scheduler } );
|
||||
|
||||
} ).ConfigureServices( services =>
|
||||
{
|
||||
services.AddQuartzmin();
|
||||
|
||||
} )
|
||||
.Build();
|
||||
|
||||
host.Start();
|
||||
|
||||
while ( !scheduler.IsShutdown )
|
||||
Thread.Sleep( 250 );
|
||||
}
|
||||
}
|
||||
}
|
||||
9
Source/Examples/AspNetCore3/appsettings.Development.json
Normal file
9
Source/Examples/AspNetCore3/appsettings.Development.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"System": "Information",
|
||||
"Microsoft": "Information"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
Source/Examples/AspNetCore3/appsettings.json
Normal file
8
Source/Examples/AspNetCore3/appsettings.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Diagnostics;
|
||||
@@ -13,65 +13,85 @@ namespace Quartzmin
|
||||
{
|
||||
public static class ApplicationBuilderExtensions
|
||||
{
|
||||
public static void UseQuartzmin(this IApplicationBuilder app, QuartzminOptions options, Action<Services> configure = null)
|
||||
public static void UseQuartzmin( this IApplicationBuilder app, QuartzminOptions options, Action<Services> configure = null )
|
||||
{
|
||||
options = options ?? throw new ArgumentNullException(nameof(options));
|
||||
options = options ?? throw new ArgumentNullException( nameof( options ) );
|
||||
|
||||
app.UseFileServer(options);
|
||||
app.UseFileServer( options );
|
||||
|
||||
var services = Services.Create(options);
|
||||
configure?.Invoke(services);
|
||||
var services = Services.Create( options );
|
||||
configure?.Invoke( services );
|
||||
|
||||
app.Use(async (context, next) =>
|
||||
app.Use( async ( context, next ) =>
|
||||
{
|
||||
context.Items[typeof( Services )] = services;
|
||||
await next.Invoke();
|
||||
} );
|
||||
|
||||
app.UseExceptionHandler( errorApp =>
|
||||
{
|
||||
errorApp.Run( async context =>
|
||||
{
|
||||
var ex = context.Features.Get<IExceptionHandlerFeature>().Error;
|
||||
context.Response.StatusCode = 500;
|
||||
context.Response.ContentType = "text/html";
|
||||
await context.Response.WriteAsync( services.ViewEngine.ErrorPage( ex ) );
|
||||
} );
|
||||
} );
|
||||
|
||||
#if NETCOREAPP
|
||||
app.UseRouting();
|
||||
app.UseEndpoints( endpoints =>
|
||||
{
|
||||
context.Items[typeof(Services)] = services;
|
||||
await next.Invoke();
|
||||
});
|
||||
|
||||
app.UseExceptionHandler(errorApp =>
|
||||
{
|
||||
errorApp.Run(async context =>
|
||||
{
|
||||
var ex = context.Features.Get<IExceptionHandlerFeature>().Error;
|
||||
context.Response.StatusCode = 500;
|
||||
context.Response.ContentType = "text/html";
|
||||
await context.Response.WriteAsync(services.ViewEngine.ErrorPage(ex));
|
||||
});
|
||||
});
|
||||
|
||||
app.UseMvc(routes =>
|
||||
endpoints.MapControllerRoute( nameof( Quartzmin ), "{controller=Scheduler}/{action=Index}" );
|
||||
} );
|
||||
#else
|
||||
app.UseMvc( routes =>
|
||||
{
|
||||
routes.MapRoute(
|
||||
name: nameof(Quartzmin),
|
||||
template: "{controller=Scheduler}/{action=Index}");
|
||||
});
|
||||
name: nameof( Quartzmin ),
|
||||
template: "{controller=Scheduler}/{action=Index}" );
|
||||
} );
|
||||
#endif
|
||||
}
|
||||
|
||||
private static void UseFileServer(this IApplicationBuilder app, QuartzminOptions options)
|
||||
private static void UseFileServer( this IApplicationBuilder app, QuartzminOptions options )
|
||||
{
|
||||
IFileProvider fs;
|
||||
if (string.IsNullOrEmpty(options.ContentRootDirectory))
|
||||
fs = new ManifestEmbeddedFileProvider(Assembly.GetExecutingAssembly(), "Content");
|
||||
if ( string.IsNullOrEmpty( options.ContentRootDirectory ) )
|
||||
fs = new ManifestEmbeddedFileProvider( Assembly.GetExecutingAssembly(), "Content" );
|
||||
else
|
||||
fs = new PhysicalFileProvider(options.ContentRootDirectory);
|
||||
fs = new PhysicalFileProvider( options.ContentRootDirectory );
|
||||
|
||||
var fsOptions = new FileServerOptions()
|
||||
{
|
||||
RequestPath = new PathString("/Content"),
|
||||
RequestPath = new PathString( "/Content" ),
|
||||
EnableDefaultFiles = false,
|
||||
EnableDirectoryBrowsing = false,
|
||||
FileProvider = fs
|
||||
};
|
||||
|
||||
app.UseFileServer(fsOptions);
|
||||
app.UseFileServer( fsOptions );
|
||||
}
|
||||
|
||||
public static void AddQuartzmin(this IServiceCollection services)
|
||||
#if NETCOREAPP
|
||||
public static void AddQuartzmin( this IServiceCollection services )
|
||||
{
|
||||
services.AddMvcCore()
|
||||
.AddApplicationPart(Assembly.GetExecutingAssembly())
|
||||
.AddJsonFormatters();
|
||||
services.AddControllers( options =>
|
||||
{
|
||||
//options.EnableEndpointRouting = false;
|
||||
} )
|
||||
.AddApplicationPart( Assembly.GetExecutingAssembly() )
|
||||
.AddNewtonsoftJson();
|
||||
}
|
||||
#else
|
||||
public static void AddQuartzmin( this IServiceCollection services )
|
||||
{
|
||||
services.AddMvcCore()
|
||||
.AddApplicationPart( Assembly.GetExecutingAssembly() )
|
||||
.AddJsonFormatters();
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
using System.Globalization;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -5,7 +5,7 @@ using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Http.Features;
|
||||
#endif
|
||||
@@ -37,8 +37,12 @@ namespace Quartzmin.Controllers
|
||||
}
|
||||
catch (JsonSerializationException ex) when (ex.Message.StartsWith("Could not create an instance of type"))
|
||||
{
|
||||
return new BadRequestResult() { ReasonPhrase = "Unknown Type Handler" };
|
||||
}
|
||||
#if NETCOREAPP
|
||||
return new BadRequestResult();
|
||||
#else
|
||||
return new BadRequestResult() { ReasonPhrase = "Unknown Type Handler" };
|
||||
#endif
|
||||
}
|
||||
|
||||
var dataMapForm = (await formData.GetJobDataMapForm(includeRowIndex: false)).SingleOrDefault(); // expected single row
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -5,19 +5,20 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Quartzmin.Models;
|
||||
using Quartzmin.Helpers;
|
||||
using Quartz;
|
||||
|
||||
namespace Quartzmin.Controllers
|
||||
{
|
||||
#region Target-Specific Directives
|
||||
#region Target-Specific Directives
|
||||
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Primitives;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
|
||||
public abstract partial class PageControllerBase : Microsoft.AspNetCore.Mvc.ControllerBase
|
||||
public abstract partial class PageControllerBase : Microsoft.AspNetCore.Mvc.ControllerBase
|
||||
{
|
||||
private static readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings()
|
||||
{
|
||||
@@ -26,7 +27,8 @@ namespace Quartzmin.Controllers
|
||||
|
||||
protected Services Services => (Services) Request.HttpContext.Items[typeof(Services)];
|
||||
protected string GetRouteData(string key) => RouteData.Values[key].ToString();
|
||||
protected IActionResult Json(object content) => new JsonResult(content, _serializerSettings);
|
||||
protected IActionResult Json( object content ) => new JsonResult( content, _serializerSettings );
|
||||
|
||||
|
||||
protected IActionResult NotModified() => new StatusCodeResult(304);
|
||||
|
||||
@@ -83,9 +85,9 @@ namespace Quartzmin.Controllers
|
||||
|
||||
}
|
||||
#endif
|
||||
#endregion
|
||||
#endregion
|
||||
|
||||
public abstract partial class PageControllerBase
|
||||
public abstract partial class PageControllerBase
|
||||
{
|
||||
protected IScheduler Scheduler => Services.Scheduler;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
|
||||
using System.Globalization;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
|
||||
@@ -13,7 +13,7 @@ using Quartz.Impl.Matchers;
|
||||
using Quartz.Plugins.RecentHistory;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using HttpRequest = Microsoft.AspNetCore.Http.HttpRequest;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
@@ -68,8 +68,8 @@ namespace Quartzmin
|
||||
|
||||
public static string ReadAsString(this HttpRequest request)
|
||||
{
|
||||
#if NETSTANDARD
|
||||
using (var ms = new MemoryStream())
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using ( var ms = new MemoryStream())
|
||||
{
|
||||
request.Body.CopyTo(ms);
|
||||
return Encoding.UTF8.GetString(ms.ToArray());
|
||||
|
||||
@@ -4,7 +4,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
#region Target-Specific Directives
|
||||
#if NETSTANDARD
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
using HttpRequest = Microsoft.AspNetCore.Http.HttpRequest;
|
||||
#endif
|
||||
#if NETFRAMEWORK
|
||||
@@ -57,8 +57,8 @@ namespace Quartzmin.Helpers
|
||||
return field.Substring(n + 1);
|
||||
}
|
||||
|
||||
#if NETSTANDARD
|
||||
public static Task<List<KeyValuePair<string, object>>> GetFormData(this HttpRequest request)
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
public static Task<List<KeyValuePair<string, object>>> GetFormData(this HttpRequest request)
|
||||
{
|
||||
var result = new List<KeyValuePair<string, object>>();
|
||||
|
||||
|
||||
@@ -1,14 +1,18 @@
|
||||
|
||||
namespace Quartzmin.Helpers
|
||||
{
|
||||
#if NETSTANDARD
|
||||
#if (NETSTANDARD || NETCOREAPP)
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
|
||||
public class JsonErrorResponseAttribute : ActionFilterAttribute
|
||||
{
|
||||
static readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings();
|
||||
private static readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings()
|
||||
{
|
||||
ContractResolver = new DefaultContractResolver(), // PascalCase as default
|
||||
};
|
||||
|
||||
public override void OnActionExecuted(ActionExecutedContext context)
|
||||
{
|
||||
|
||||
15
Source/Quartzmin/Helpers/JsonPascalCaseNamingPolicy.cs
Normal file
15
Source/Quartzmin/Helpers/JsonPascalCaseNamingPolicy.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
#if NETCOREAPP
|
||||
using System;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace Quartzmin.Helpers
|
||||
{
|
||||
public class JsonPascalCaseNamingPolicy : JsonNamingPolicy
|
||||
{
|
||||
public override string ConvertName( string name )
|
||||
{
|
||||
return name;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -4,8 +4,8 @@ namespace Quartzmin.Models
|
||||
{
|
||||
public class FormFile
|
||||
{
|
||||
#if NETSTANDARD
|
||||
readonly Microsoft.AspNetCore.Http.IFormFile _file;
|
||||
#if ( NETSTANDARD || NETCOREAPP )
|
||||
readonly Microsoft.AspNetCore.Http.IFormFile _file;
|
||||
public FormFile(Microsoft.AspNetCore.Http.IFormFile file) => _file = file;
|
||||
|
||||
public Stream GetStream() => _file.OpenReadStream();
|
||||
|
||||
@@ -1,78 +1,91 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;net452</TargetFrameworks>
|
||||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
||||
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<NoWarn>1591</NoWarn>
|
||||
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netstandard2.0;netcoreapp3.1;net452</TargetFrameworks>
|
||||
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
|
||||
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<NoWarn>1591</NoWarn>
|
||||
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
||||
|
||||
<Version>1.0.3</Version>
|
||||
<Product>Quartzmin</Product>
|
||||
<Title>Web management tool for Quartz.NET</Title>
|
||||
<Authors>Jan Lucansky</Authors>
|
||||
<PackageProjectUrl>https://github.com/jlucansky/Quartzmin</PackageProjectUrl>
|
||||
<PackageIconUrl>https://raw.githubusercontent.com/jlucansky/public-assets/master/Quartzmin/avatar.png</PackageIconUrl>
|
||||
<Description>Powerful, easy to use web management tool for Quartz.NET</Description>
|
||||
<PackageTags>quartz;web;ui</PackageTags>
|
||||
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
||||
<FileVersion>1.0.0.0</FileVersion>
|
||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||
<Copyright>Copyright © 2018 Jan Lucansky</Copyright>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<RepositoryUrl>https://github.com/jlucansky/Quartzmin</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
<Version>1.0.3</Version>
|
||||
<Product>Quartzmin</Product>
|
||||
<Title>Web management tool for Quartz.NET</Title>
|
||||
<Authors>Jan Lucansky</Authors>
|
||||
<PackageProjectUrl>https://github.com/jlucansky/Quartzmin</PackageProjectUrl>
|
||||
<PackageIconUrl>https://raw.githubusercontent.com/jlucansky/public-assets/master/Quartzmin/avatar.png</PackageIconUrl>
|
||||
<Description>Powerful, easy to use web management tool for Quartz.NET</Description>
|
||||
<PackageTags>quartz;web;ui</PackageTags>
|
||||
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
||||
<FileVersion>1.0.0.0</FileVersion>
|
||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||
<Copyright>Copyright © 2018 Jan Lucansky</Copyright>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<RepositoryUrl>https://github.com/jlucansky/Quartzmin</RepositoryUrl>
|
||||
<EmbeddedResourceUseDependentUponConvention>false</EmbeddedResourceUseDependentUponConvention>
|
||||
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^net\d'))">
|
||||
<DefineConstants>NETFRAMEWORK</DefineConstants>
|
||||
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netstandard\d'))">
|
||||
<DefineConstants>NETSTANDARD</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^net\d'))">
|
||||
<DefineConstants>NETFRAMEWORK</DefineConstants>
|
||||
<AssemblySearchPaths>$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netstandard\d'))">
|
||||
<DefineConstants>NETSTANDARD</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netcoreapp\d'))">
|
||||
<DefineConstants>NETCOREAPP</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Quartz.Plugins.RecentHistory\Quartz.Plugins.RecentHistory.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Quartz.Plugins.RecentHistory\Quartz.Plugins.RecentHistory.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Handlebars.Net" Version="1.9.5" />
|
||||
<PackageReference Include="JsonSubTypes" Version="1.5.1" />
|
||||
<PackageReference Include="Quartz" Version="3.0.7" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="$(DefineConstants.Contains('NETFRAMEWORK'))">
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<PackageReference Include="Microsoft.AspNet.WebApi" Version="5.2.6" />
|
||||
<PackageReference Include="Microsoft.AspNet.WebApi.Owin" Version="5.2.6" />
|
||||
<PackageReference Include="Microsoft.Owin.StaticFiles" Version="2.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Handlebars.Net" Version="1.9.5" />
|
||||
<PackageReference Include="JsonSubTypes" Version="1.5.1" />
|
||||
<PackageReference Include="Quartz" Version="3.0.7" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="$(DefineConstants.Contains('NETSTANDARD'))">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="2.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(DefineConstants.Contains('NETFRAMEWORK'))">
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<PackageReference Include="Microsoft.AspNet.WebApi" Version="5.2.6" />
|
||||
<PackageReference Include="Microsoft.AspNet.WebApi.Owin" Version="5.2.6" />
|
||||
<PackageReference Include="Microsoft.Owin.StaticFiles" Version="2.1.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(DefineConstants.Contains('NETSTANDARD'))">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.DataAnnotations" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="2.1.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="*.vspscc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="$(DefineConstants.Contains('NETCOREAPP'))">
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="3.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileProviders.Physical" Version="3.1.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Content\**" />
|
||||
<EmbeddedResource Include="Views\**" />
|
||||
<EmbeddedResource Include="TypeHandlers\*.hbs" />
|
||||
<EmbeddedResource Include="TypeHandlers\*.js" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="*.vspscc" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Content\**" />
|
||||
<EmbeddedResource Include="Views\**" />
|
||||
<EmbeddedResource Include="TypeHandlers\*.hbs" />
|
||||
<EmbeddedResource Include="TypeHandlers\*.js" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user