scheduler
This commit is contained in:
@@ -56,7 +56,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
envelopeService.EnsureValidEnvelopeKey(envelopeKey);
|
||||
EnvelopeResponse response = envelopeService.LoadEnvelope(envelopeKey);
|
||||
|
||||
actionService.OpenEnvelope(response.Envelope, response.Receiver.Id);
|
||||
actionService.OpenEnvelope(response.Envelope, response.Receiver);
|
||||
|
||||
return Ok();
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
|
||||
//emailService.SendSignedEmail(response.Receiver.Id, response.Envelope.Id);
|
||||
|
||||
var signResult = actionService?.SignEnvelope(response.Envelope, response.Receiver.Id);
|
||||
var signResult = actionService?.SignEnvelope(response.Envelope, response.Receiver);
|
||||
|
||||
return Ok();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="NLog" Version="5.2.5" />
|
||||
<PackageReference Include="Quartz" Version="3.8.0" />
|
||||
<PackageReference Include="Quartz.AspNetCore" Version="3.8.0" />
|
||||
<PackageReference Include="Quartz.Plugins" Version="3.8.0" />
|
||||
<PackageReference Include="Quartz.Serialization.Json" Version="3.8.0" />
|
||||
<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
|
||||
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
using DigitalData.Modules.Logging;
|
||||
using EnvelopeGenerator.Common;
|
||||
using EnvelopeGenerator.Web.Services;
|
||||
using Quartz;
|
||||
|
||||
namespace EnvelopeGenerator.Web
|
||||
{
|
||||
@@ -18,6 +21,14 @@ namespace EnvelopeGenerator.Web
|
||||
// Add services to the container.
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
// Configure and start scheduler
|
||||
builder.Services.AddQuartz(q =>
|
||||
{
|
||||
Scheduler scheduler = InitScheduler(builder);
|
||||
scheduler.ScheduleJob<CertificateDocumentJob>(q, "CertificateDocument", 5);
|
||||
});
|
||||
builder.Services.AddQuartzHostedService();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
@@ -39,5 +50,19 @@ namespace EnvelopeGenerator.Web
|
||||
|
||||
app.Run();
|
||||
}
|
||||
|
||||
private static LogConfig InitLogger(WebApplicationBuilder builder)
|
||||
{
|
||||
string logPath = builder.Configuration.GetValue<string>("Config:LogPath");
|
||||
return new LogConfig(LogConfig.PathType.CustomPath, logPath, "Scheduler", "Digital Data", "ECM.EnvelopeGenerator.Web");
|
||||
}
|
||||
|
||||
private static Scheduler InitScheduler( WebApplicationBuilder builder)
|
||||
{
|
||||
LogConfig logConfig = InitLogger(builder);
|
||||
string connectionString = builder.Configuration.GetValue<string>("Config:ConnectionString");
|
||||
Scheduler scheduler = new(logConfig, connectionString);
|
||||
return scheduler;
|
||||
}
|
||||
}
|
||||
}
|
||||
44
EnvelopeGenerator.Web/Scheduler.cs
Normal file
44
EnvelopeGenerator.Web/Scheduler.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using DigitalData.Modules.Base;
|
||||
using DigitalData.Modules.Logging;
|
||||
using EnvelopeGenerator.Common;
|
||||
using Quartz;
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace EnvelopeGenerator.Web
|
||||
{
|
||||
public class Scheduler : BaseClass
|
||||
{
|
||||
private const string DATABASE = "DATABASE";
|
||||
private const string LOGCONFIG = "LOGCONFIG";
|
||||
|
||||
private string ConnectionString;
|
||||
|
||||
public Scheduler(LogConfig logConfig, string connectionString) : base(logConfig)
|
||||
{
|
||||
this.ConnectionString = connectionString;
|
||||
}
|
||||
|
||||
public void ScheduleJob<TJob>(IServiceCollectionQuartzConfigurator q, string name, int interval) where TJob : IJob
|
||||
{
|
||||
var jobKey = new JobKey(name);
|
||||
var jobData = new JobDataMap
|
||||
{
|
||||
{ DATABASE, ConnectionString },
|
||||
{ LOGCONFIG, LogConfig }
|
||||
};
|
||||
|
||||
q.AddJob<TJob>(opts => opts
|
||||
.WithIdentity(jobKey)
|
||||
.UsingJobData(jobData));
|
||||
|
||||
q.AddTrigger(opts => opts
|
||||
.ForJob(jobKey)
|
||||
.WithIdentity($"{name}-trigger")
|
||||
.WithSimpleSchedule(s => s
|
||||
.RepeatForever()
|
||||
.WithIntervalInMinutes(interval)));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user