Skip to content

Commit 5edcd05

Browse files
committed
Refactor
1 parent 187be71 commit 5edcd05

File tree

7 files changed

+51
-28
lines changed

7 files changed

+51
-28
lines changed

IntegrationEngine/Api/Controllers/CronTriggerController.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
using IntegrationEngine.Core.Storage;
2-
using IntegrationEngine.Model;
3-
using System.Collections.Generic;
1+
using System.Collections.Generic;
42
using System.Net;
53
using System.Web.Http;
64
using System.Web.Http.Description;
5+
using IntegrationEngine.Core.Storage;
6+
using IntegrationEngine.Model;
7+
using IntegrationEngine.Scheduler;
78

89
namespace IntegrationEngine.Api.Controllers
910
{
@@ -53,6 +54,8 @@ public IHttpActionResult PutIntegrationJob(string id, CronTrigger trigger)
5354
[ResponseType(typeof(CronTrigger))]
5455
public IHttpActionResult PostIntegrationJob(CronTrigger trigger)
5556
{
57+
if (trigger.CronExpressionString.IsValidCronExpression())
58+
return BadRequest("Cron expression is not valid: " + trigger.CronExpressionString);
5659
var triggerWithId = Repository.Insert(trigger);
5760
EngineScheduler.ScheduleJobWithCronTrigger(triggerWithId);
5861
return CreatedAtRoute("DefaultApi", new { id = triggerWithId.Id }, triggerWithId);

IntegrationEngine/Api/Controllers/SimpleTriggerController.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using IntegrationEngine.Model;
2-
using IntegrationEngine.Core.Storage;
3-
using System;
1+
using System;
42
using System.Collections.Generic;
53
using System.Data.Entity;
64
using System.Data.Entity.Infrastructure;
@@ -10,6 +8,9 @@
108
using System.Threading.Tasks;
119
using System.Web.Http;
1210
using System.Web.Http.Description;
11+
using IntegrationEngine.Core.Storage;
12+
using IntegrationEngine.Model;
13+
using IntegrationEngine.Scheduler;
1314

1415
namespace IntegrationEngine.Api.Controllers
1516
{

IntegrationEngine/EngineHostConfiguration.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
1-
using IntegrationEngine.Api;
2-
using IntegrationEngine.Configuration;
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Data.Entity.Core.Metadata.Edm;
4+
using System.Linq;
5+
using System.Reflection;
36
using IntegrationEngine.Core.Jobs;
47
using IntegrationEngine.Core.Mail;
58
using IntegrationEngine.Core.R;
69
using IntegrationEngine.Core.Storage;
7-
using IntegrationEngine.MessageQueue;
810
using IntegrationEngine.Model;
9-
using log4net;
11+
using Microsoft.Practices.Unity;
1012
using Nest;
1113
using Quartz;
1214
using Quartz.Impl;
13-
using System;
14-
using System.Collections.Generic;
15-
using System.Linq;
16-
using System.Reflection;
15+
using log4net;
1716
using log4net.Core;
18-
using Microsoft.Practices.Unity;
19-
using System.Data.Entity.Core.Metadata.Edm;
17+
using IntegrationEngine.Api;
18+
using IntegrationEngine.Configuration;
19+
using IntegrationEngine.MessageQueue;
20+
using IntegrationEngine.Scheduler;
2021

2122
namespace IntegrationEngine
2223
{

IntegrationEngine/IntegrationEngine.csproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@
133133
<Compile Include="Api\Startup.cs" />
134134
<Compile Include="Configuration\MessageQueueConfiguration.cs" />
135135
<Compile Include="Configuration\WebApiConfiguration.cs" />
136-
<Compile Include="IEngineScheduler.cs" />
137136
<Compile Include="Properties\AssemblyInfo.cs" />
138137
<Compile Include="MessageQueue\IMessageQueueClient.cs" />
139138
<Compile Include="MessageQueue\RabbitMqClient.cs" />
@@ -148,8 +147,10 @@
148147
<Compile Include="Configuration\ElasticsearchConfiguration.cs" />
149148
<Compile Include="Api\Controllers\SimpleTriggerController.cs" />
150149
<Compile Include="Api\Controllers\CronTriggerController.cs" />
151-
<Compile Include="EngineScheduler.cs" />
152150
<Compile Include="ContainerResolver.cs" />
151+
<Compile Include="Scheduler\EngineScheduler.cs" />
152+
<Compile Include="Scheduler\IEngineScheduler.cs" />
153+
<Compile Include="Scheduler\TriggerStringExtension.cs" />
153154
</ItemGroup>
154155
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
155156
<ItemGroup>
@@ -176,4 +177,7 @@
176177
</ProjectReference>
177178
</ItemGroup>
178179
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
180+
<ItemGroup>
181+
<Folder Include="Scheduler\" />
182+
</ItemGroup>
179183
</Project>

IntegrationEngine/EngineScheduler.cs renamed to IntegrationEngine/Scheduler/EngineScheduler.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using IntegrationEngine.Core.Jobs;
2-
using IntegrationEngine.MessageQueue;
3-
using IntegrationEngine.Model;
4-
using Quartz;
5-
using System;
1+
using System;
62
using System.Collections.Generic;
73
using System.Linq;
4+
using IntegrationEngine.Core.Jobs;
5+
using IntegrationEngine.Model;
6+
using Quartz;
7+
using IntegrationEngine.MessageQueue;
88

9-
namespace IntegrationEngine
9+
namespace IntegrationEngine.Scheduler
1010
{
1111
public class EngineScheduler : IEngineScheduler
1212
{
@@ -45,8 +45,9 @@ public void ScheduleJobWithCronTrigger(CronTrigger triggerDefinition, Type jobTy
4545
{
4646
var trigger = TriggerBuilder.Create()
4747
.WithIdentity(GenerateTriggerId(jobType, triggerDefinition), jobType.Namespace);
48-
if (triggerDefinition.CronExpressionString != null)
48+
if (triggerDefinition.CronExpressionString != null) {
4949
trigger.WithCronSchedule(triggerDefinition.CronExpressionString, x => x.InTimeZone(triggerDefinition.TimeZone));
50+
}
5051
Scheduler.ScheduleJob(jobDetail, trigger.Build());
5152
}
5253

IntegrationEngine/IEngineScheduler.cs renamed to IntegrationEngine/Scheduler/IEngineScheduler.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
using IntegrationEngine.Model;
1+
using System;
2+
using IntegrationEngine.Model;
23
using Quartz;
3-
using System;
44

5-
namespace IntegrationEngine
5+
namespace IntegrationEngine.Scheduler
66
{
77
public interface IEngineScheduler
88
{
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
3+
namespace IntegrationEngine.Scheduler
4+
{
5+
public static class TriggerStringExtension
6+
{
7+
public static bool IsValidCronExpression(this string value)
8+
{
9+
return Quartz.CronExpression.IsValidExpression(value);
10+
}
11+
}
12+
}
13+

0 commit comments

Comments
 (0)