Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,27 @@
using System.Threading.Tasks;
using DataGeneration;
using EstateManagement.Client;
using Quartz;
using SecurityService.Client;
using SecurityService.DataTransferObjects.Responses;
using Shared.Logger;
using TransactionProcessor.Client;

public abstract class BaseJob{
public String JobName { get; set; }
public abstract class BaseJob : IJob{
public String JobName { get; private set; }

public String JobGroup{ get; private set; }

public String ClientSecret{ get; private set; }

public String ClientId{ get; private set; }

public String SecurityService { get; private set; }

public String EstateManagementApi { get; private set; }
public String FileProcessorApi { get; private set; }
public String TransactionProcessorApi { get; private set; }
public String TestHostApi { get; private set; }

protected ITransactionDataGenerator CreateTransactionDataGenerator(String clientId, String clientSecret, RunningMode runningMode){
ISecurityServiceClient securityServiceClient = Bootstrapper.GetService<ISecurityServiceClient>();
Expand Down Expand Up @@ -51,4 +65,55 @@ protected void TraceGenerated(TraceEventArgs traceArguments)
Logger.LogInformation(traceArguments.Message);
}
}

public abstract Task ExecuteJob(IJobExecutionContext context);

public async Task Execute(IJobExecutionContext context){

this.CacheConfiguration(context);
Logger.LogInformation($"Running Job Group: [{this.JobGroup}] Name: [{this.JobName}]");
this.LogConfiguration();

Bootstrapper.ConfigureServices(context);

await this.ExecuteJob(context);

Logger.LogInformation($"Job Group: [{this.JobGroup}] Name: [{this.JobName}] completed");
}

private void LogConfiguration(){
Logger.LogInformation($"Client Id: [{this.ClientId}]");
Logger.LogInformation($"EstateManagementApi is: [{this.EstateManagementApi}]");
Logger.LogInformation($"FileProcessorApi is: [{this.FileProcessorApi}]");
Logger.LogInformation($"SecurityService is: [{this.SecurityService}]");
Logger.LogInformation($"TestHostApi is: [{this.TestHostApi}]");
Logger.LogInformation($"TransactionProcessorApi is: [{this.TransactionProcessorApi}]");
}

private void CacheConfiguration(IJobExecutionContext context){
this.JobName = context.JobDetail.Key.Name;
this.JobGroup = context.JobDetail.Key.Group;
this.ClientId = context.MergedJobDataMap.GetString("ClientId");
this.ClientSecret = context.MergedJobDataMap.GetString("ClientSecret");

if (context.MergedJobDataMap.ContainsKey("EstateManagementApi")){
this.EstateManagementApi = context.MergedJobDataMap.GetString("EstateManagementApi");
}

if (context.MergedJobDataMap.ContainsKey("FileProcessorApi")){
this.FileProcessorApi = context.MergedJobDataMap.GetString("FileProcessorApi");
}

if (context.MergedJobDataMap.ContainsKey("SecurityService")){
this.SecurityService = context.MergedJobDataMap.GetString("SecurityService");
}

if (context.MergedJobDataMap.ContainsKey("TestHostApi")){
this.TestHostApi = context.MergedJobDataMap.GetString("TestHostApi");
}

if (context.MergedJobDataMap.ContainsKey("TransactionProcessorApi")){
this.TransactionProcessorApi = context.MergedJobDataMap.GetString("TransactionProcessorApi");
}
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,26 @@
namespace TransactionProcessing.SchedulerService.Jobs
{
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using DataGeneration;
using EstateManagement.DataTransferObjects.Responses;
using Quartz;
using Shared.Logger;

[DisallowConcurrentExecution]
public class GenerateFileUploadsJob : BaseJob, IJob
public class GenerateFileUploadsJob : BaseJob
{
#region Methods
public async Task Execute(IJobExecutionContext context)
public override async Task ExecuteJob(IJobExecutionContext context)
{
Bootstrapper.ConfigureServices(context);

String clientId = context.MergedJobDataMap.GetString("ClientId");
String clientSecret = context.MergedJobDataMap.GetString("ClientSecret");
Guid estateId = context.MergedJobDataMap.GetGuidValueFromString("EstateId");
Guid merchantId = context.MergedJobDataMap.GetGuidValueFromString("MerchantId");
Guid userId = context.MergedJobDataMap.GetGuidValueFromString("UserId");

Logger.LogInformation($"Running Job {context.JobDetail.Description}");
Logger.LogInformation($"Client Id: [{clientId}]");

Logger.LogInformation($"Estate Id: [{estateId}]");
Logger.LogInformation($"Merchant Id: [{merchantId}]");
Logger.LogInformation($"User Id: [{userId}]");

ITransactionDataGenerator t = CreateTransactionDataGenerator(clientId, clientSecret, RunningMode.Live);
ITransactionDataGenerator t = CreateTransactionDataGenerator(this.ClientId, this.ClientSecret, RunningMode.Live);
t.TraceGenerated += TraceGenerated;
await Jobs.GenerateFileUploads(t, estateId, merchantId, userId, context.CancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,15 @@
using Quartz;
using Shared.Logger;

public class GenerateMerchantStatementJob : BaseJob, IJob
public class GenerateMerchantStatementJob : BaseJob
{
public async Task Execute(IJobExecutionContext context)
public override async Task ExecuteJob(IJobExecutionContext context)
{
Bootstrapper.ConfigureServices(context);
String clientId = context.MergedJobDataMap.GetString("ClientId");
String clientSecret = context.MergedJobDataMap.GetString("ClientSecret");
Guid estateId = context.MergedJobDataMap.GetGuidValueFromString("EstateId");

Logger.LogInformation($"Running Job {context.JobDetail.Description}");
Logger.LogInformation($"Client Id: [{clientId}]");
Logger.LogInformation($"Estate Id: [{estateId}]");

ITransactionDataGenerator t = this.CreateTransactionDataGenerator(clientId, clientSecret, RunningMode.Live);
ITransactionDataGenerator t = this.CreateTransactionDataGenerator(this.ClientId, this.ClientSecret, RunningMode.Live);
t.TraceGenerated += TraceGenerated;
await Jobs.GenerateMerchantStatements(t, estateId, context.CancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,49 +1,30 @@
namespace TransactionProcessing.SchedulerService.Jobs
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using DataGeneration;
using EstateManagement.Client;
using EstateManagement.DataTransferObjects.Requests;
using EstateManagement.DataTransferObjects.Responses;
using Newtonsoft.Json;
using Quartz;
using SecurityService.Client;
using SecurityService.DataTransferObjects.Responses;
using Shared.Logger;
using TransactionProcessor.Client;
using TransactionProcessor.DataTransferObjects;

/// <summary>
///
/// </summary>
/// <seealso cref="Quartz.IJob" />
public class GenerateTransactionsJob : BaseJob, IJob{
public class GenerateTransactionsJob : BaseJob{

#region Methods

public async Task Execute(IJobExecutionContext context){
this.JobName = context.JobDetail.Description;
Bootstrapper.ConfigureServices(context);
public override async Task ExecuteJob(IJobExecutionContext context){

String clientId = context.MergedJobDataMap.GetString("ClientId");
String clientSecret = context.MergedJobDataMap.GetString("ClientSecret");
Guid estateId = context.MergedJobDataMap.GetGuidValueFromString("EstateId");
Guid merchantId = context.MergedJobDataMap.GetGuidValueFromString("MerchantId");
Boolean requireLogon = context.MergedJobDataMap.GetBooleanValueFromString("requireLogon");

Logger.LogInformation($"Running Job {context.JobDetail.Description}");
Logger.LogInformation($"Client Id: [{clientId}]");
Logger.LogInformation($"Estate Id: [{estateId}]");
Logger.LogInformation($"Merchant Id: [{merchantId}]");
Logger.LogInformation($"Require Logon: [{requireLogon}]");

ITransactionDataGenerator t = CreateTransactionDataGenerator(clientId, clientSecret, RunningMode.Live);
ITransactionDataGenerator t = CreateTransactionDataGenerator(this.ClientId, this.ClientSecret, RunningMode.Live);
t.TraceGenerated += TraceGenerated;
await Jobs.GenerateTransactions(t, estateId, merchantId, requireLogon, context.CancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,21 @@
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TransactionProcessing.SchedulerService.Jobs
{
using System.Threading;
using EstateManagement.Client;
using Quartz;
using SecurityService.Client;
using SecurityService.DataTransferObjects.Responses;
using Shared.Logger;
using TransactionProcessing.DataGeneration;
using TransactionProcessor.Client;

public class ProcessSettlementJob : BaseJob, IJob
public class ProcessSettlementJob : BaseJob
{
public async Task Execute(IJobExecutionContext context)
public override async Task ExecuteJob(IJobExecutionContext context)
{
Bootstrapper.ConfigureServices(context);
String clientId = context.MergedJobDataMap.GetString("ClientId");
String clientSecret = context.MergedJobDataMap.GetString("ClientSecret");
Guid estateId = context.MergedJobDataMap.GetGuidValueFromString("EstateId");

Logger.LogInformation($"Running Job {context.JobDetail.Description}");
Logger.LogInformation($"Client Id: [{clientId}]");
Logger.LogInformation($"Estate Id: [{estateId}]");

ITransactionDataGenerator t = CreateTransactionDataGenerator(clientId, clientSecret, RunningMode.Live);
ITransactionDataGenerator t = CreateTransactionDataGenerator(this.ClientId, this.ClientSecret, RunningMode.Live);
t.TraceGenerated += TraceGenerated;
await Jobs.PerformSettlement(t, DateTime.Now, estateId, context.CancellationToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,18 @@
using Quartz;
using Shared.Logger;

public class SupportReportEmailJob : BaseJob, IJob
public class SupportReportEmailJob : BaseJob
{
#region Methods
public async Task Execute(IJobExecutionContext context)
public override async Task ExecuteJob(IJobExecutionContext context)
{
Bootstrapper.ConfigureServices(context);

String clientId = context.MergedJobDataMap.GetString("ClientId");
String clientSecret = context.MergedJobDataMap.GetString("ClientSecret");
String eventStoreConnectionString = context.MergedJobDataMap.GetString("EventStoreConnectionString");
String databaseConnectionString = context.MergedJobDataMap.GetString("DatabaseConnectionString");
String estateIds = context.MergedJobDataMap.GetString("EstateIds");

Logger.LogInformation($"Running Job {context.JobDetail.Description}");
Logger.LogInformation($"Client Id: [{clientId}]");
Logger.LogInformation($"Estate Id: [{estateIds}]");

String token = await this.GetToken(clientId, clientSecret, context.CancellationToken);
String token = await this.GetToken(this.ClientId, this.ClientSecret, context.CancellationToken);

IMessagingServiceClient messagingServiceClient = Bootstrapper.GetService<IMessagingServiceClient>();

Expand Down