diff --git a/EnvelopeGenerator.Service/EnvelopeGenerator.Service.csproj b/EnvelopeGenerator.Service/EnvelopeGenerator.Service.csproj
new file mode 100644
index 00000000..b0b45081
--- /dev/null
+++ b/EnvelopeGenerator.Service/EnvelopeGenerator.Service.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net4.6.2
+ enable
+ enable
+ dotnet-EnvelopeGenerator.Service-816256a4-c636-4313-92c0-b62b04040c2b
+ latest
+
+
+
+
+
+
diff --git a/EnvelopeGenerator.Service/Program.cs b/EnvelopeGenerator.Service/Program.cs
new file mode 100644
index 00000000..a08adc48
--- /dev/null
+++ b/EnvelopeGenerator.Service/Program.cs
@@ -0,0 +1,7 @@
+using EnvelopeGenerator.Service;
+
+var builder = Host.CreateApplicationBuilder(args);
+builder.Services.AddHostedService();
+
+var host = builder.Build();
+host.Run();
diff --git a/EnvelopeGenerator.Service/Properties/launchSettings.json b/EnvelopeGenerator.Service/Properties/launchSettings.json
new file mode 100644
index 00000000..bf4e37e2
--- /dev/null
+++ b/EnvelopeGenerator.Service/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "EnvelopeGenerator.Service": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "environmentVariables": {
+ "DOTNET_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/EnvelopeGenerator.Service/Worker.cs b/EnvelopeGenerator.Service/Worker.cs
new file mode 100644
index 00000000..bf0a660b
--- /dev/null
+++ b/EnvelopeGenerator.Service/Worker.cs
@@ -0,0 +1,24 @@
+namespace EnvelopeGenerator.Service
+{
+ public class Worker : BackgroundService
+ {
+ private readonly ILogger _logger;
+
+ public Worker(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+ {
+ while (!stoppingToken.IsCancellationRequested)
+ {
+ if (_logger.IsEnabled(LogLevel.Information))
+ {
+ _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
+ }
+ await Task.Delay(1000, stoppingToken);
+ }
+ }
+ }
+}
diff --git a/EnvelopeGenerator.Service/appsettings.Development.json b/EnvelopeGenerator.Service/appsettings.Development.json
new file mode 100644
index 00000000..b2dcdb67
--- /dev/null
+++ b/EnvelopeGenerator.Service/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/EnvelopeGenerator.Service/appsettings.json b/EnvelopeGenerator.Service/appsettings.json
new file mode 100644
index 00000000..b2dcdb67
--- /dev/null
+++ b/EnvelopeGenerator.Service/appsettings.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/EnvelopeGenerator.sln b/EnvelopeGenerator.sln
index 3aa53218..c9e6421d 100644
--- a/EnvelopeGenerator.sln
+++ b/EnvelopeGenerator.sln
@@ -55,6 +55,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnvelopeGenerator.Server.Cl
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "EnvelopeGenerator.Service_legacy", "EnvelopeGenerator.Service_legacy\EnvelopeGenerator.Service_legacy.vbproj", "{83ED2617-B398-4859-8F59-B38F8807E83E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnvelopeGenerator.Service", "EnvelopeGenerator.Service\EnvelopeGenerator.Service.csproj", "{6B87FB5F-F4EA-45BE-A218-385DC2CE8E80}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -121,6 +123,10 @@ Global
{83ED2617-B398-4859-8F59-B38F8807E83E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83ED2617-B398-4859-8F59-B38F8807E83E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6B87FB5F-F4EA-45BE-A218-385DC2CE8E80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6B87FB5F-F4EA-45BE-A218-385DC2CE8E80}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6B87FB5F-F4EA-45BE-A218-385DC2CE8E80}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6B87FB5F-F4EA-45BE-A218-385DC2CE8E80}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -145,6 +151,7 @@ Global
{4E6C54DA-576D-0955-2564-9EC890BB8279} = {BF1700D5-592E-4FFA-84E8-5480E289A1F0}
{9C41A0B1-6AFE-AFC5-CE33-08052F45DAEF} = {BF1700D5-592E-4FFA-84E8-5480E289A1F0}
{83ED2617-B398-4859-8F59-B38F8807E83E} = {9943209E-1744-4944-B1BA-4F87FC1A0EEB}
+ {6B87FB5F-F4EA-45BE-A218-385DC2CE8E80} = {E3C758DC-914D-4B7E-8457-0813F1FDB0CB}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {73E60370-756D-45AD-A19A-C40A02DACCC7}