Skip to content

Commit

Permalink
Merge pull request #268 from fiskaltrust/user/tsc/fix-creating-action…
Browse files Browse the repository at this point in the history
…journal

Reworked writing startup actionjournal
  • Loading branch information
forsthug committed Mar 19, 2024
2 parents aa38295 + 7b0a847 commit 653f209
Showing 1 changed file with 40 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Org.BouncyCastle.Utilities;

namespace fiskaltrust.Middleware.Queue.Bootstrapper
{
Expand All @@ -40,40 +39,62 @@ public void ConfigureServices(IServiceCollection services)
Configuration = _configuration,
PreviewFeatures = GetPreviewFeatures(_configuration)
};
services.AddSingleton(sp => SaveConfiguration(middlewareConfiguration, sp.GetRequiredService<IActionJournalRepository>()).Result);

services.AddSingleton(sp =>
{
CreateConfigurationActionJournalAsync(middlewareConfiguration, sp.GetRequiredService<IActionJournalRepository>()).Wait();
return middlewareConfiguration;
});

services.AddScoped<ICryptoHelper, CryptoHelper>();
services.AddScoped<SignProcessor>();
services.AddScoped<ISignProcessor>(x => new LocalQueueSynchronizationDecorator(x.GetRequiredService<SignProcessor>(), x.GetRequiredService<ILogger<LocalQueueSynchronizationDecorator>>()));
services.AddScoped<IJournalProcessor, JournalProcessor>();
services.AddScoped<IPOS, Queue>();
var businessLogicFactoryBoostrapper = LocalizedQueueBootStrapperFactory.GetBootstrapperForLocalizedQueue(_activeQueueId, middlewareConfiguration);
businessLogicFactoryBoostrapper.ConfigureServices(services);

}

private static async Task<MiddlewareConfiguration> SaveConfiguration(MiddlewareConfiguration middlewareConfiguration, IActionJournalRepository actionJournalRepository)
private static async Task CreateConfigurationActionJournalAsync(MiddlewareConfiguration middlewareConfiguration, IActionJournalRepository actionJournalRepository)
{
middlewareConfiguration.Configuration.Add("MachineName", Environment.MachineName);
middlewareConfiguration.Configuration.Add("ProcessArchitecture", RuntimeInformation.ProcessArchitecture.ToString());
middlewareConfiguration.Configuration.Add("OSArchitecture", RuntimeInformation.OSArchitecture.ToString());
middlewareConfiguration.Configuration.Add("OSDescription", RuntimeInformation.OSDescription.ToString());
var configurationCopy = new Dictionary<string, object>(middlewareConfiguration.Configuration)
{
{ "MachineName", Environment.MachineName },
{ "ProcessArchitecture", RuntimeInformation.ProcessArchitecture.ToString() },
{ "OSArchitecture", RuntimeInformation.OSArchitecture.ToString() },
{ "OSDescription", RuntimeInformation.OSDescription.ToString() }
};
configurationCopy.Remove("configuration");
foreach (var key in configurationCopy.Keys.ToArray())
{
if (key.ToLowerInvariant().Contains("connectionstring") || key.ToLowerInvariant().EndsWith("_encrypted"))
{
configurationCopy[key] = "********";
}
}

var actionJournal = new ftActionJournal()
var actionJournal = new ftActionJournal
{
ftActionJournalId = Guid.NewGuid(),
ftActionJournalId = Guid.NewGuid(),
ftQueueId = middlewareConfiguration.QueueId,
ftQueueItemId = Guid.NewGuid(),
Moment = DateTime.Now,
ftQueueItemId = Guid.Empty,
Moment = DateTime.UtcNow,
Priority = 0,
Type = "Configuration",
Message = "Configuration",
DataBase64 = "",
DataJson = JsonConvert.SerializeObject(middlewareConfiguration),
TimeStamp = DateTime.Now.Ticks
Type = nameof(MiddlewareConfiguration),
Message = "Queue started",
DataJson = JsonConvert.SerializeObject(new MiddlewareConfiguration
{
CashBoxId = middlewareConfiguration.CashBoxId,
QueueId = middlewareConfiguration.QueueId,
IsSandbox = middlewareConfiguration.IsSandbox,
ServiceFolder = middlewareConfiguration.ServiceFolder,
Configuration = configurationCopy,
PreviewFeatures = middlewareConfiguration.PreviewFeatures
}),
TimeStamp = DateTime.UtcNow.Ticks
};
await actionJournalRepository.InsertAsync(actionJournal);
return middlewareConfiguration;

await actionJournalRepository.InsertAsync(actionJournal);
}

private static Guid GetQueueCashbox(Guid queueId, Dictionary<string, object> configuration)
Expand Down Expand Up @@ -106,7 +127,5 @@ private static Guid GetQueueCashbox(Guid queueId, Dictionary<string, object> con
}

private static string GetServiceFolder() => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "fiskaltrust", "service");


}
}

0 comments on commit 653f209

Please sign in to comment.