Skip to content

Commit ec1c46a

Browse files
author
Ethan Hann
committed
Push property implementations down into model
1 parent 389bbe7 commit ec1c46a

24 files changed

+193
-84
lines changed

IntegrationEngine.ConsoleClient/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ class Program
1111
static void Main(string[] args)
1212
{
1313
var client = new InEngineClient();
14+
var triggers = client.GetCronTriggers();
15+
Console.WriteLine(triggers.Count);
16+
Console.ReadLine();
1417
}
1518
}
1619
}

IntegrationEngine.Core/App.config

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,13 @@
2020
<remove invariant="MySql.Data.MySqlClient" />
2121
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
2222
</DbProviderFactories>
23-
</system.data></configuration>
23+
</system.data>
24+
<runtime>
25+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
26+
<dependentAssembly>
27+
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
28+
<bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" />
29+
</dependentAssembly>
30+
</assemblyBinding>
31+
</runtime>
32+
</configuration>

IntegrationEngine.Model.net40/IntegrationEngine.Model.net40.csproj

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
1313
<FileAlignment>512</FileAlignment>
1414
<TargetFrameworkProfile />
15+
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
16+
<RestorePackages>true</RestorePackages>
1517
</PropertyGroup>
1618
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1719
<DebugSymbols>true</DebugSymbols>
@@ -31,6 +33,19 @@
3133
<WarningLevel>4</WarningLevel>
3234
</PropertyGroup>
3335
<ItemGroup>
36+
<Reference Include="CronExpressionDescriptor">
37+
<HintPath>..\packages\CronExpressionDescriptor.1.12.0\lib\net35\CronExpressionDescriptor.dll</HintPath>
38+
</Reference>
39+
<Reference Include="Elasticsearch.Net">
40+
<HintPath>..\packages\Elasticsearch.Net.1.3.1\lib\Elasticsearch.Net.dll</HintPath>
41+
</Reference>
42+
<Reference Include="Nest">
43+
<HintPath>..\packages\NEST.1.3.1\lib\Nest.dll</HintPath>
44+
</Reference>
45+
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
46+
<SpecificVersion>False</SpecificVersion>
47+
<HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net40\Newtonsoft.Json.dll</HintPath>
48+
</Reference>
3449
<Reference Include="System" />
3550
<Reference Include="System.Core" />
3651
<Reference Include="System.Xml.Linq" />
@@ -52,6 +67,12 @@
5267
<Compile Include="..\IntegrationEngine.Model\ISimpleTrigger.cs">
5368
<Link>ISimpleTrigger.cs</Link>
5469
</Compile>
70+
<Compile Include="..\IntegrationEngine.Model\TriggerPropertyExtension.cs">
71+
<Link>TriggerPropertyExtension.cs</Link>
72+
</Compile>
73+
<Compile Include="..\IntegrationEngine.Model\TriggerStateDescription.cs">
74+
<Link>TriggerStateDescription.cs</Link>
75+
</Compile>
5576
<Compile Include="Properties\AssemblyInfo.cs" />
5677
<Compile Include="..\IntegrationEngine.Model\SimpleTrigger.cs">
5778
<Link>SimpleTrigger.cs</Link>
@@ -75,7 +96,17 @@
7596
<Link>IHealthStatus.cs</Link>
7697
</Compile>
7798
</ItemGroup>
99+
<ItemGroup>
100+
<None Include="packages.config" />
101+
</ItemGroup>
78102
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
103+
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
104+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
105+
<PropertyGroup>
106+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
107+
</PropertyGroup>
108+
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
109+
</Target>
79110
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
80111
Other similar extension points exist, see Microsoft.Common.targets.
81112
<Target Name="BeforeBuild">
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="CronExpressionDescriptor" version="1.12.0" targetFramework="net40" />
4+
<package id="Elasticsearch.Net" version="1.3.1" targetFramework="net40" />
5+
<package id="NEST" version="1.3.1" targetFramework="net40" />
6+
<package id="Newtonsoft.Json" version="6.0.1" targetFramework="net40" />
7+
</packages>
Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
using System;
1+
using CronExpressionDescriptor;
2+
using Nest;
3+
using System;
24

35
namespace IntegrationEngine.Model
46
{
57
public class CronTrigger : ICronTrigger
68
{
7-
public string Id { get; set; }
8-
public string JobType { get; set; }
9-
public string CronExpressionString { get; set; }
10-
public string TimeZoneId { get; set; }
11-
public int StateId { get; set; }
12-
13-
public string CronExpressionDescription { get { throw new NotImplementedException(); } }
14-
public TimeZoneInfo TimeZoneInfo { get { throw new NotImplementedException(); } }
15-
public string StateDescription { get { throw new NotImplementedException(); } }
9+
public virtual string Id { get; set; }
10+
public virtual string JobType { get; set; }
11+
public virtual string CronExpressionString { get; set; }
12+
public virtual string TimeZoneId { get; set; }
13+
public virtual int StateId { get; set; }
14+
[ElasticProperty(OptOut = true)]
15+
public virtual string CronExpressionDescription { get { return CronExpressionString.GetHumanReadableCronSchedule(); } }
16+
[ElasticProperty(OptOut = true)]
17+
public virtual TimeZoneInfo TimeZoneInfo { get { return TimeZoneId.GetTimeZoneInfo(); } }
18+
[ElasticProperty(OptOut = true)]
19+
public virtual string StateDescription { get { return StateId.GetStateDescription(); } }
1620
}
1721
}

IntegrationEngine.Model/IntegrationEngine.Model.csproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,21 @@
3333
<WarningLevel>4</WarningLevel>
3434
</PropertyGroup>
3535
<ItemGroup>
36+
<Reference Include="CronExpressionDescriptor">
37+
<HintPath>..\packages\CronExpressionDescriptor.1.12.0\lib\net35\CronExpressionDescriptor.dll</HintPath>
38+
</Reference>
39+
<Reference Include="Elasticsearch.Net, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d, processorArchitecture=MSIL">
40+
<SpecificVersion>False</SpecificVersion>
41+
<HintPath>..\packages\Elasticsearch.Net.1.3.1\lib\Elasticsearch.Net.dll</HintPath>
42+
</Reference>
43+
<Reference Include="Nest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d, processorArchitecture=MSIL">
44+
<SpecificVersion>False</SpecificVersion>
45+
<HintPath>..\packages\NEST.1.3.1\lib\Nest.dll</HintPath>
46+
</Reference>
47+
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
48+
<SpecificVersion>False</SpecificVersion>
49+
<HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
50+
</Reference>
3651
<Reference Include="System" />
3752
<Reference Include="System.Core" />
3853
<Reference Include="System.Xml.Linq" />
@@ -56,11 +71,14 @@
5671
<Compile Include="ITimeZone.cs" />
5772
<Compile Include="HealthStatus.cs" />
5873
<Compile Include="IHealthStatus.cs" />
74+
<Compile Include="TriggerPropertyExtension.cs" />
75+
<Compile Include="TriggerStateDescription.cs" />
5976
</ItemGroup>
6077
<ItemGroup>
6178
<None Include="package.nuspec">
6279
<SubType>Designer</SubType>
6380
</None>
81+
<None Include="packages.config" />
6482
</ItemGroup>
6583
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
6684
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
using System;
2+
using IntegrationEngine.Model;
3+
using Nest;
24

35
namespace IntegrationEngine.Model
46
{
57
public class SimpleTrigger : ISimpleTrigger
68
{
7-
public string Id { get; set; }
8-
public string JobType { get; set; }
9-
public int RepeatCount { get; set; }
10-
public TimeSpan RepeatInterval { get; set; }
11-
public DateTimeOffset StartTimeUtc { get; set; }
12-
public int StateId { get; set; }
13-
public string StateDescription { get { throw new NotImplementedException(); } }
9+
public virtual string Id { get; set; }
10+
public virtual string JobType { get; set; }
11+
public virtual int RepeatCount { get; set; }
12+
public virtual TimeSpan RepeatInterval { get; set; }
13+
public virtual DateTimeOffset StartTimeUtc { get; set; }
14+
public virtual int StateId { get; set; }
15+
[ElasticProperty(OptOut = true)]
16+
public virtual string StateDescription { get { return StateId.GetStateDescription(); } }
1417
}
1518
}

IntegrationEngine/Scheduler/TriggerPropertyExtension.cs renamed to IntegrationEngine.Model/TriggerPropertyExtension.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
using System;
2-
using CronExpressionDescriptor;
1+
using CronExpressionDescriptor;
2+
using System;
33

4-
namespace IntegrationEngine.Scheduler
4+
namespace IntegrationEngine.Model
55
{
66
public static class TriggerPropertyExtension
77
{
88
public static string GetStateDescription(this int value)
99
{
10-
return ((Quartz.TriggerState)value).ToString();
10+
return ((TriggerStateDescription)value).ToString();
1111
}
1212

1313
public static TimeZoneInfo GetTimeZoneInfo(this string value)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
7+
namespace IntegrationEngine.Model
8+
{
9+
enum TriggerStateDescription
10+
{
11+
Active = 0,
12+
Paused = 1,
13+
}
14+
}

IntegrationEngine.Model/package.nuspec

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@
2020
<files>
2121
<file src="..\IntegrationEngine.Model.net40\lib\net40\IntegrationEngine.Model.dll" target="lib\net40" />
2222
</files>
23+
<dependencies>
24+
<dependency id="CronExpressionDescriptor" version="1.12.0" />
25+
<dependency id="Elasticsearch.Net" version="1.3.1" />
26+
<dependency id="NEST" version="1.3.1" />
27+
<dependency id="Newtonsoft.Json" version="6.0.1" />
28+
</dependencies>
2329
</package>

0 commit comments

Comments
 (0)