diff --git a/Common/Common.csproj b/Common/Common.csproj
index c3583dc..8d69671 100644
--- a/Common/Common.csproj
+++ b/Common/Common.csproj
@@ -91,7 +91,7 @@
2.0.12
- 4.34.0
+ 4.35.1
5.2.9
@@ -103,10 +103,10 @@
7.2.2
- 3.3.2
+ 3.3.3
- 1.2.10
+ 1.2.12
2.0.0
diff --git a/Job.Download/Job.Download.csproj b/Job.Download/Job.Download.csproj
index 343e2a0..2cd3c4b 100644
--- a/Job.Download/Job.Download.csproj
+++ b/Job.Download/Job.Download.csproj
@@ -50,8 +50,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.Download/packages.config b/Job.Download/packages.config
index 54566ee..affbf63 100644
--- a/Job.Download/packages.config
+++ b/Job.Download/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/Job.ExecutionMonitor/Job.ExecutionMonitor.csproj b/Job.ExecutionMonitor/Job.ExecutionMonitor.csproj
index b5f32d6..7d87ec4 100644
--- a/Job.ExecutionMonitor/Job.ExecutionMonitor.csproj
+++ b/Job.ExecutionMonitor/Job.ExecutionMonitor.csproj
@@ -50,8 +50,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.ExecutionMonitor/packages.config b/Job.ExecutionMonitor/packages.config
index 54566ee..affbf63 100644
--- a/Job.ExecutionMonitor/packages.config
+++ b/Job.ExecutionMonitor/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/Job.Export/Job.Export.csproj b/Job.Export/Job.Export.csproj
index 04d9c57..82d3eec 100644
--- a/Job.Export/Job.Export.csproj
+++ b/Job.Export/Job.Export.csproj
@@ -47,8 +47,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.Export/packages.config b/Job.Export/packages.config
index ed1e04e..b21d4c6 100644
--- a/Job.Export/packages.config
+++ b/Job.Export/packages.config
@@ -3,7 +3,7 @@
-
+
diff --git a/Job.Import/Job.Import.csproj b/Job.Import/Job.Import.csproj
index d90c610..9bdff57 100644
--- a/Job.Import/Job.Import.csproj
+++ b/Job.Import/Job.Import.csproj
@@ -50,8 +50,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.Import/packages.config b/Job.Import/packages.config
index 54566ee..affbf63 100644
--- a/Job.Import/packages.config
+++ b/Job.Import/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/Job.ProcessingMonitor/Job.ProcessingMonitor.csproj b/Job.ProcessingMonitor/Job.ProcessingMonitor.csproj
index 169608c..6aa3b19 100644
--- a/Job.ProcessingMonitor/Job.ProcessingMonitor.csproj
+++ b/Job.ProcessingMonitor/Job.ProcessingMonitor.csproj
@@ -50,8 +50,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.ProcessingMonitor/packages.config b/Job.ProcessingMonitor/packages.config
index 54566ee..affbf63 100644
--- a/Job.ProcessingMonitor/packages.config
+++ b/Job.ProcessingMonitor/packages.config
@@ -4,7 +4,7 @@
-
+
diff --git a/Job.Upload/Job.Upload.csproj b/Job.Upload/Job.Upload.csproj
index c6cd702..6be8290 100644
--- a/Job.Upload/Job.Upload.csproj
+++ b/Job.Upload/Job.Upload.csproj
@@ -47,8 +47,8 @@
..\packages\Polly.7.2.2\lib\net472\Polly.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
diff --git a/Job.Upload/packages.config b/Job.Upload/packages.config
index ed1e04e..b21d4c6 100644
--- a/Job.Upload/packages.config
+++ b/Job.Upload/packages.config
@@ -3,7 +3,7 @@
-
+
diff --git a/Recurring Integrations Scheduler.sln b/Recurring Integrations Scheduler.sln
index db5f87a..b05be36 100644
--- a/Recurring Integrations Scheduler.sln
+++ b/Recurring Integrations Scheduler.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26730.16
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31424.327
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "Common\Common.csproj", "{96BB041A-3FDE-400F-ADDA-9DB19F3274BE}"
EndProject
@@ -24,6 +24,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Version.cs = Version.cs
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{A83C017E-6A29-4039-8970-46AB95BEE619}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -96,6 +98,14 @@ Global
{8E9BC494-6962-48DC-BC55-4E159E5517D3}.Release|Any CPU.Build.0 = Release|Any CPU
{8E9BC494-6962-48DC-BC55-4E159E5517D3}.Release|x86.ActiveCfg = Release|Any CPU
{8E9BC494-6962-48DC-BC55-4E159E5517D3}.Release|x86.Build.0 = Release|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Debug|x86.Build.0 = Debug|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Release|x86.ActiveCfg = Release|Any CPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Scheduler/App.config b/Scheduler/App.config
index 4e3e265..190b468 100644
--- a/Scheduler/App.config
+++ b/Scheduler/App.config
@@ -174,7 +174,7 @@
-
+
@@ -196,6 +196,10 @@
+
+
+
+
diff --git a/Scheduler/Scheduler.csproj b/Scheduler/Scheduler.csproj
index d982eea..da3b61b 100644
--- a/Scheduler/Scheduler.csproj
+++ b/Scheduler/Scheduler.csproj
@@ -77,17 +77,17 @@
..\packages\PortableSettingsProvider.0.2.4\lib\net45\PortableSettingsProvider.dll
-
- ..\packages\Quartz.3.3.2\lib\net472\Quartz.dll
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
-
- ..\packages\Quartz.Jobs.3.3.2\lib\net472\Quartz.Jobs.dll
+
+ ..\packages\Quartz.Jobs.3.3.3\lib\net472\Quartz.Jobs.dll
-
- ..\packages\Quartz.Plugins.3.3.2\lib\net472\Quartz.Plugins.dll
+
+ ..\packages\Quartz.Plugins.3.3.3\lib\net472\Quartz.Plugins.dll
-
- ..\packages\Quartz.Serialization.Json.3.3.2\lib\net472\Quartz.Serialization.Json.dll
+
+ ..\packages\Quartz.Serialization.Json.3.3.3\lib\net472\Quartz.Serialization.Json.dll
@@ -123,8 +123,8 @@
-
- ..\packages\Topshelf.4.2.1\lib\net452\Topshelf.dll
+
+ ..\packages\Topshelf.4.3.0\lib\net452\Topshelf.dll
diff --git a/Scheduler/packages.config b/Scheduler/packages.config
index 95cfb41..efe0c88 100644
--- a/Scheduler/packages.config
+++ b/Scheduler/packages.config
@@ -5,15 +5,15 @@
-
-
-
-
+
+
+
+
-
+
\ No newline at end of file
diff --git a/Server/App.config b/Server/App.config
new file mode 100644
index 0000000..065905a
--- /dev/null
+++ b/Server/App.config
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Server/Configuration.cs b/Server/Configuration.cs
new file mode 100644
index 0000000..0864d31
--- /dev/null
+++ b/Server/Configuration.cs
@@ -0,0 +1,90 @@
+//https://github.com/quartznet/quartznet
+using System;
+using System.Collections.Specialized;
+using System.Configuration;
+using log4net;
+
+namespace RecurringIntegrationsScheduler.Server
+{
+ ///
+ /// Configuration for the Quartz server.
+ ///
+ public class Configuration
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(Configuration));
+
+ private const string PrefixServerConfiguration = "quartz.server";
+ private const string KeyServiceName = PrefixServerConfiguration + ".serviceName";
+ private const string KeyServiceDisplayName = PrefixServerConfiguration + ".serviceDisplayName";
+ private const string KeyServiceDescription = PrefixServerConfiguration + ".serviceDescription";
+ private const string KeyServerImplementationType = PrefixServerConfiguration + ".type";
+
+ private const string DefaultServiceName = "QuartzServer";
+ private const string DefaultServiceDisplayName = "Quartz Server";
+ private const string DefaultServiceDescription = "Quartz Job Scheduling Server";
+ private static readonly string DefaultServerImplementationType = typeof(QuartzServer).AssemblyQualifiedName!;
+
+ private static readonly NameValueCollection? configuration;
+
+ ///
+ /// Initializes the class.
+ ///
+ static Configuration()
+ {
+ try
+ {
+ configuration = (NameValueCollection) ConfigurationManager.GetSection("quartz");
+ }
+ catch (Exception e)
+ {
+ log.Warn("could not read configuration using ConfigurationManager.GetSection: " + e.Message);
+ }
+ }
+
+ ///
+ /// Gets the name of the service.
+ ///
+ /// The name of the service.
+ public static string ServiceName => GetConfigurationOrDefault(KeyServiceName, DefaultServiceName);
+
+ ///
+ /// Gets the display name of the service.
+ ///
+ /// The display name of the service.
+ public static string ServiceDisplayName => GetConfigurationOrDefault(KeyServiceDisplayName, DefaultServiceDisplayName);
+
+ ///
+ /// Gets the service description.
+ ///
+ /// The service description.
+ public static string ServiceDescription => GetConfigurationOrDefault(KeyServiceDescription, DefaultServiceDescription);
+
+ ///
+ /// Gets the type name of the server implementation.
+ ///
+ /// The type of the server implementation.
+ public static string ServerImplementationType => GetConfigurationOrDefault(KeyServerImplementationType, DefaultServerImplementationType);
+
+ ///
+ /// Returns configuration value with given key. If configuration
+ /// for the does not exists, return the default value.
+ ///
+ /// Key to read configuration with.
+ /// Default value to return if configuration is not found
+ /// The configuration value.
+ private static string GetConfigurationOrDefault(string configurationKey, string defaultValue)
+ {
+ string? retValue = null;
+ if (configuration != null)
+ {
+ retValue = configuration[configurationKey];
+ }
+
+ if (retValue == null || retValue.Trim().Length == 0)
+ {
+ retValue = defaultValue;
+ }
+ return retValue;
+ }
+ }
+}
diff --git a/Server/IQuartzServer.cs b/Server/IQuartzServer.cs
new file mode 100644
index 0000000..ac40787
--- /dev/null
+++ b/Server/IQuartzServer.cs
@@ -0,0 +1,37 @@
+//https://github.com/quartznet/quartznet
+using System.Threading.Tasks;
+
+namespace RecurringIntegrationsScheduler.Server
+{
+ ///
+ /// Service interface for core Quartz.NET server.
+ ///
+ public interface IQuartzServer
+ {
+ ///
+ /// Initializes the instance of .
+ /// Initialization will only be called once in server's lifetime.
+ ///
+ Task Initialize();
+
+ ///
+ /// Starts this instance.
+ ///
+ void Start();
+
+ ///
+ /// Stops this instance.
+ ///
+ void Stop();
+
+ ///
+ /// Pauses all activity in scheduler.
+ ///
+ void Pause();
+
+ ///
+ /// Resumes all activity in server.
+ ///
+ void Resume();
+ }
+}
diff --git a/Server/Program.cs b/Server/Program.cs
new file mode 100644
index 0000000..f4e8674
--- /dev/null
+++ b/Server/Program.cs
@@ -0,0 +1,43 @@
+//https://github.com/quartznet/quartznet
+using System;
+using System.IO;
+using System.Reflection;
+using log4net.Config;
+using Topshelf;
+
+namespace RecurringIntegrationsScheduler.Server
+{
+ ///
+ /// The server's main entry point.
+ ///
+ public static class Program
+ {
+ ///
+ /// Main.
+ ///
+ public static void Main()
+ {
+ // change from service account's dir to more logical one
+ Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
+
+ var logRepository = log4net.LogManager.GetRepository(Assembly.GetEntryAssembly());
+ XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
+
+ HostFactory.Run(x =>
+ {
+ x.RunAsLocalSystem();
+
+ x.SetDescription(Configuration.ServiceDescription);
+ x.SetDisplayName(Configuration.ServiceDisplayName);
+ x.SetServiceName(Configuration.ServiceName);
+
+ x.Service(factory =>
+ {
+ QuartzServer server = QuartzServerFactory.CreateServer();
+ server.Initialize().GetAwaiter().GetResult();
+ return server;
+ });
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/Server/Properties/AssemblyInfo.cs b/Server/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e513933
--- /dev/null
+++ b/Server/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+/* Copyright (c) Microsoft Corporation. All rights reserved.
+ Licensed under the MIT License. */
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("Recurring Integrations Scheduler Server")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Recurring Integrations Scheduler")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+
+[assembly: Guid("a83c017e-6a29-4039-8970-46ab95bee619")]
\ No newline at end of file
diff --git a/Server/QuartzServer.cs b/Server/QuartzServer.cs
new file mode 100644
index 0000000..caafc69
--- /dev/null
+++ b/Server/QuartzServer.cs
@@ -0,0 +1,166 @@
+//https://github.com/quartznet/quartznet
+using System;
+using System.Threading.Tasks;
+using log4net;
+using Quartz;
+using Quartz.Impl;
+using Topshelf;
+
+namespace RecurringIntegrationsScheduler.Server
+{
+ ///
+ /// The main server logic.
+ ///
+ public class QuartzServer : ServiceControl, IQuartzServer
+ {
+ private readonly ILog logger;
+ private ISchedulerFactory schedulerFactory = null!;
+ private IScheduler scheduler = null!;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public QuartzServer()
+ {
+ logger = LogManager.GetLogger(GetType());
+ }
+
+ ///
+ /// Initializes the instance of the class.
+ ///
+ public virtual async Task Initialize()
+ {
+ try
+ {
+ schedulerFactory = CreateSchedulerFactory();
+ scheduler = await GetScheduler().ConfigureAwait(false);
+ }
+ catch (Exception e)
+ {
+ logger.Error("Server initialization failed:" + e.Message, e);
+ throw;
+ }
+ }
+
+ ///
+ /// Gets the scheduler with which this server should operate with.
+ ///
+ ///
+ protected virtual Task GetScheduler()
+ {
+ return schedulerFactory.GetScheduler();
+ }
+
+ ///
+ /// Returns the current scheduler instance (usually created in
+ /// using the method).
+ ///
+ protected virtual IScheduler Scheduler => scheduler;
+
+ ///
+ /// Creates the scheduler factory that will be the factory
+ /// for all schedulers on this instance.
+ ///
+ ///
+ protected virtual ISchedulerFactory CreateSchedulerFactory()
+ {
+ return new StdSchedulerFactory();
+ }
+
+ ///
+ /// Starts this instance, delegates to scheduler.
+ ///
+ public virtual void Start()
+ {
+ try
+ {
+ scheduler.Start();
+ }
+ catch (Exception ex)
+ {
+ logger.Fatal($"Scheduler start failed: {ex.Message}", ex);
+ throw;
+ }
+
+ logger.Info("Scheduler started successfully");
+ }
+
+ ///
+ /// Stops this instance, delegates to scheduler.
+ ///
+ public virtual void Stop()
+ {
+ try
+ {
+ scheduler.Shutdown(true);
+ }
+ catch (Exception ex)
+ {
+ logger.Error($"Scheduler stop failed: {ex.Message}", ex);
+ throw;
+ }
+
+ logger.Info("Scheduler shutdown complete");
+ }
+
+ ///
+ /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+ ///
+ public virtual void Dispose()
+ {
+ // no-op for now
+ }
+
+ ///
+ /// Pauses all activity in scheduler.
+ ///
+ public virtual void Pause()
+ {
+ scheduler.PauseAll();
+ }
+
+ ///
+ /// Resumes all activity in server.
+ ///
+ public void Resume()
+ {
+ scheduler.ResumeAll();
+ }
+
+ ///
+ /// TopShelf's method delegated to .
+ ///
+ public bool Start(HostControl hostControl)
+ {
+ Start();
+ return true;
+ }
+
+ ///
+ /// TopShelf's method delegated to .
+ ///
+ public bool Stop(HostControl hostControl)
+ {
+ Stop();
+ return true;
+ }
+
+ ///
+ /// TopShelf's method delegated to .
+ ///
+ public bool Pause(HostControl hostControl)
+ {
+ Pause();
+ return true;
+ }
+
+ ///
+ /// TopShelf's method delegated to .
+ ///
+ public bool Continue(HostControl hostControl)
+ {
+ Resume();
+ return true;
+ }
+ }
+}
diff --git a/Server/QuartzServerFactory.cs b/Server/QuartzServerFactory.cs
new file mode 100644
index 0000000..0c94114
--- /dev/null
+++ b/Server/QuartzServerFactory.cs
@@ -0,0 +1,31 @@
+//https://github.com/quartznet/quartznet
+
+using System;
+using log4net;
+
+namespace RecurringIntegrationsScheduler.Server
+{
+ ///
+ /// Factory class to create Quartz server implementations from.
+ ///
+ public class QuartzServerFactory
+ {
+ private static readonly ILog logger = LogManager.GetLogger(typeof (QuartzServerFactory));
+
+ ///
+ /// Creates a new instance of an Quartz.NET server core.
+ ///
+ ///
+ public static QuartzServer CreateServer()
+ {
+ string typeName = Configuration.ServerImplementationType;
+
+ Type t = Type.GetType(typeName, true)!;
+
+ logger.Debug("Creating new instance of server type '" + typeName + "'");
+ QuartzServer retValue = (QuartzServer) Activator.CreateInstance(t)!;
+ logger.Debug("Instance successfully created");
+ return retValue;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Setup/Schedule.xml b/Server/Schedule.xml
similarity index 100%
rename from Setup/Schedule.xml
rename to Server/Schedule.xml
diff --git a/Server/Server.csproj b/Server/Server.csproj
new file mode 100644
index 0000000..a67699f
--- /dev/null
+++ b/Server/Server.csproj
@@ -0,0 +1,118 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A83C017E-6A29-4039-8970-46AB95BEE619}
+ Exe
+ RecurringIntegrationsScheduler.Server
+ RecurringIntegrationsScheduler.Server
+ v4.7.2
+ 512
+ true
+ true
+ 8.0
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\Output\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ ..\Output\Release\
+ TRACE
+ prompt
+ 4
+ false
+
+
+
+ ..\packages\log4net.2.0.12\lib\net45\log4net.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\Quartz.3.3.3\lib\net472\Quartz.dll
+
+
+ ..\packages\Quartz.Jobs.3.3.3\lib\net472\Quartz.Jobs.dll
+
+
+ ..\packages\Quartz.Plugins.3.3.3\lib\net472\Quartz.Plugins.dll
+
+
+ ..\packages\Quartz.Serialization.Json.3.3.3\lib\net472\Quartz.Serialization.Json.dll
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.5.0.1\lib\net46\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+ True
+ True
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\Topshelf.4.3.0\lib\net452\Topshelf.dll
+
+
+
+
+ Version.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+
+
\ No newline at end of file
diff --git a/Server/packages.config b/Server/packages.config
new file mode 100644
index 0000000..dd2c86f
--- /dev/null
+++ b/Server/packages.config
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Setup/Quartz.Server.exe.config b/Setup/Quartz.Server.exe.config
deleted file mode 100644
index 002064f..0000000
--- a/Setup/Quartz.Server.exe.config
+++ /dev/null
@@ -1,411 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Setup/README.md b/Setup/README.md
index 4c8aaf9..0aba5bd 100644
--- a/Setup/README.md
+++ b/Setup/README.md
@@ -1,14 +1,3 @@
-To create installation package you need few additional binary files which are not included in RIS source code.
-
-Please download the following Quartz.NET server binaries and copy those files to this folder.
-
-* bin\Release\Quartz.Server\net461\Quartz.Server.exe
-
-This version of Recurring Integrations Scheduler requires Quartz.NET 3.2.4
-
-Download zip archive from https://github.com/quartznet/quartznet/releases
-
-
**Recurring Integrations Scheduler.iss** file contains packaging instructions for [Inno Setup](http://www.jrsoftware.org/isinfo.php) installer.
Example command to create installation package (executed from root folder of the solution):
diff --git a/Setup/Recurring Integrations Scheduler.iss b/Setup/Recurring Integrations Scheduler.iss
index d095a10..18b13bf 100644
--- a/Setup/Recurring Integrations Scheduler.iss
+++ b/Setup/Recurring Integrations Scheduler.iss
@@ -41,7 +41,7 @@ Source: "..\Output\Release\Quartz.Plugins.dll"; DestDir: "{app}"; Flags: ignorev
Source: "..\Output\Release\Quartz.Jobs.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Quartz.Serialization.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
Source: "..\Output\Release\Topshelf.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
-Source: ".\Quartz.Server.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
+Source: "..\Output\Release\RecurringIntegrationsScheduler.Server.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: Scheduler
; Common
Source: "..\Output\Release\RecurringIntegrationsScheduler.Common.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
; Jobs
@@ -71,8 +71,8 @@ Source: "..\Output\Release\RecurringIntegrationsScheduler.exe"; DestDir: "{app}"
Source: "..\Output\Release\RecurringIntegrationsScheduler.exe.config"; DestDir: "{app}"; Flags: ignoreversion; Components: App
; Configuration files
-Source: ".\Schedule.xml"; DestDir: "{app}"; Flags: onlyifdoesntexist uninsneveruninstall; Components: Scheduler
-Source: ".\Quartz.Server.exe.config"; DestDir: "{app}"; Flags: onlyifdoesntexist; Components: Scheduler
+Source: "..\Output\Release\Schedule.xml"; DestDir: "{app}"; Flags: onlyifdoesntexist uninsneveruninstall; Components: Scheduler
+Source: "..\Output\Release\RecurringIntegrationsScheduler.Server.exe.config"; DestDir: "{app}"; Flags: onlyifdoesntexist; Components: Scheduler
; ReadMe
Source: "..\README.MD"; DestDir: "{app}"; Flags: ignoreversion; Components: App Scheduler
; License
@@ -86,9 +86,9 @@ Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{group}\Recurring Integrations Scheduler App"; Filename: "{app}\RecurringIntegrationsScheduler.exe"; WorkingDir: "{app}"
[Run]
-Filename: "{app}\Quartz.Server.exe"; Parameters: "install"; Flags: runhidden; Components: Scheduler
+Filename: "{app}\RecurringIntegrationsScheduler.Server.exe"; Parameters: "install"; Flags: runhidden; Components: Scheduler
Filename: {sys}\sc.exe; Parameters: "start RecurringIntegrationsScheduler" ; Flags: runhidden
[UninstallRun]
Filename: {sys}\sc.exe; Parameters: "stop RecurringIntegrationsScheduler" ; Flags: runhidden ; RunOnceId: "DelService"
-Filename: "{app}\Quartz.Server.exe"; Parameters: "uninstall"; Flags: runhidden; Components: Scheduler ; RunOnceId: "DelServerExecutable"
+Filename: "{app}\RecurringIntegrationsScheduler.Server.exe"; Parameters: "uninstall"; Flags: runhidden; Components: Scheduler ; RunOnceId: "DelServerExecutable"
diff --git a/Version.cs b/Version.cs
index e80941b..42231f8 100644
--- a/Version.cs
+++ b/Version.cs
@@ -2,4 +2,4 @@
Licensed under the MIT License. */
using System.Reflection;
-[assembly: AssemblyVersion("3.3.1.0")]
+[assembly: AssemblyVersion("3.4.0.0")]