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 @@ -100,7 +100,11 @@

public String GetConfigHostUrl()
{
return this.TryGetValue<String>("ConfigHostUrl");
var url = this.TryGetValue<String>("ConfigHostUrl");
if (String.IsNullOrWhiteSpace(url)) {
return "http://192.168.1.163:9200";

Check failure on line 105 in TransactionProcessor.Mobile.BusinessLogic/Services/ApplicationCache.cs

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

TransactionProcessor.Mobile.BusinessLogic/Services/ApplicationCache.cs#L105

Using http protocol is insecure. Use https instead.
}
return url;
}

public void SetConfigHostUrl(String value,
Expand Down
166 changes: 52 additions & 114 deletions TransactionProcessor.Mobile/Extensions/MauiAppBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public static class MauiAppBuilderExtensions {

public static MauiAppBuilder ConfigureDatabase(this MauiAppBuilder builder) {
String connectionString = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "transactionpos1.db");
Func< BusinessLogic.Database.LogLevel > logLevelFunc = new Func<BusinessLogic.Database.LogLevel>(() => BusinessLogic.Database.LogLevel.Warn);
Func< BusinessLogic.Database.LogLevel > logLevelFunc = () => BusinessLogic.Database.LogLevel.Warn;

IDatabaseContext database = new DatabaseContext(connectionString, logLevelFunc);
database.InitialiseDatabase();
Expand All @@ -56,10 +56,6 @@ public static MauiAppBuilder ConfigureDatabase(this MauiAppBuilder builder) {
}

public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder) {
//builder.Services.AddHttpClient()
// .AddHttpMessageHandler<CorrelationIdHandler>()
// .ConfigurePrimaryHttpMessageHandler(GetHandler);

builder.Services.AddHttpClient("default")
.AddHttpMessageHandler<CorrelationIdHandler>()
.ConfigurePrimaryHttpMessageHandler(GetHandler);
Expand All @@ -72,61 +68,22 @@ public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder) {
});

builder.Services.AddSingleton<Func<String, String>>(
new Func<String, String>(configSetting =>
{
IApplicationCache applicationCache = MauiProgram.Container.Services
.GetService<IApplicationCache>();

if (configSetting == "ConfigServiceUrl")
{
String configHostUrl = applicationCache.GetConfigHostUrl();
if (String.IsNullOrEmpty(configHostUrl) == false)
{
return configHostUrl;
}
//return "https://sferguson.ddns.net:9200";
return "http://192.168.1.167:9200";
}

Configuration configuration = applicationCache.GetConfiguration();

if (configuration != null)
{
if (configSetting == "ApplicationUpdateServiceUrl") {
if (String.IsNullOrWhiteSpace(configuration.ApplicationUpdateUri) == false)
{
return configuration.ApplicationUpdateUri;
}

String configHostUrl = applicationCache.GetConfigHostUrl();
return configHostUrl ?? String.Empty;
}

if (configSetting == "SecurityService")
{
return configuration.SecurityServiceUri;
}

if (configSetting == "TransactionProcessorACL")
{
return configuration.TransactionProcessorAclUri;
}

if (configSetting == "TransactionProcessorApi")
{
return configuration.TransactionProcessorUri;
}

if (configSetting == "EstateReportingApi")
{
return configuration.EstateReportingUri;
}

return string.Empty;
}

return string.Empty;
}));
new Func<String, String>(configSetting => {
IApplicationCache applicationCache = MauiProgram.Container.Services.GetService<IApplicationCache>();

if (applicationCache != null)
return configSetting switch {
"ConfigServiceUrl" => applicationCache.GetConfigHostUrl() ?? String.Empty,
"ApplicationUpdateServiceUrl" when String.IsNullOrWhiteSpace(applicationCache.GetConfiguration()?.ApplicationUpdateUri) == false => applicationCache.GetConfiguration().ApplicationUpdateUri,
"SecurityService" => applicationCache.GetConfiguration()?.SecurityServiceUri ?? String.Empty,
"TransactionProcessorACL" => applicationCache.GetConfiguration()?.TransactionProcessorAclUri ?? String.Empty,
"TransactionProcessorApi" => applicationCache.GetConfiguration()?.TransactionProcessorUri ?? String.Empty,
"EstateReportingApi" => applicationCache.GetConfiguration()?.EstateReportingUri ?? String.Empty,
_ => String.Empty
};

return null;
}));

builder.Services.AddSingleton<IConfigurationService, ConfigurationService>();
builder.Services.AddSingleton<IAuthenticationService, AuthenticationService>();
Expand All @@ -135,53 +92,38 @@ public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder) {
builder.Services.AddSingleton<IUpdateService, UpdateService>();

builder.Services.AddSingleton<Func<Boolean, IConfigurationService>>(new Func<Boolean, IConfigurationService>(useTrainingMode =>
{
if (useTrainingMode)
{
return new TrainingConfigurationService();
}
else
{
return MauiProgram.Container.Services.GetService<IConfigurationService>();
}
}));

builder.Services.AddSingleton<Func<Boolean, IAuthenticationService>>(new Func<Boolean, IAuthenticationService>(useTrainingMode =>
{
if (useTrainingMode)
{
return new TrainingAuthenticationService();
}
else
{
return MauiProgram.Container.Services.GetService<IAuthenticationService>();
}
}));
{
return useTrainingMode switch {
true => new TrainingConfigurationService(),
_ => MauiProgram.Container.Services.GetService<IConfigurationService>()
} ?? throw new InvalidOperationException("Failed to resolve IConfigurationService.");
}));

builder.Services.AddSingleton(new Func<Boolean, IAuthenticationService>(useTrainingMode => {
return useTrainingMode switch {
true => new TrainingAuthenticationService(),
_ => MauiProgram.Container.Services.GetService<IAuthenticationService>()
} ?? throw new InvalidOperationException("Failed to resolve IConfigurationService.");
}));

builder.Services.AddSingleton<Func<Boolean, ITransactionService>>(new Func<Boolean, ITransactionService>(useTrainingMode =>
{
if (useTrainingMode)
{
return new TrainingTransactionService();
}
else
{
return MauiProgram.Container.Services.GetService<ITransactionService>();
}
}));

{
return useTrainingMode switch
{
true => new TrainingTransactionService(),
_ => MauiProgram.Container.Services.GetService<ITransactionService>()
} ?? throw new InvalidOperationException("Failed to resolve ITransactionService.");
}));

builder.Services.AddSingleton<Func<Boolean, IMerchantService>>(new Func<Boolean, IMerchantService>(useTrainingMode =>
{
if (useTrainingMode)
{
return new TrainingMerchantService();
}
else
{
return MauiProgram.Container.Services.GetService<IMerchantService>();
}
}));

{
return useTrainingMode switch
{
true => new TrainingMerchantService(),
_ => MauiProgram.Container.Services.GetService<IMerchantService>()
} ?? throw new InvalidOperationException("Failed to resolve ITransactionService.");
}));

builder.Services.RegisterHttpClientX<ISecurityServiceClient, SecurityServiceClient>();
builder.Services.AddSingleton<IApplicationCache, ApplicationCache>();

Expand All @@ -190,17 +132,13 @@ public static MauiAppBuilder ConfigureAppServices(this MauiAppBuilder builder) {
return builder;
}

public static HttpMessageHandler GetHandler()
{
public static HttpMessageHandler GetHandler() {
#if ANDROID
CustomAndroidMessageHandler androidMessageHandler = new()
{

CustomAndroidMessageHandler androidMessageHandler = new() {
ServerCertificateCustomValidationCallback = (sender,
certificate,
chain,
errors) => true,

certificate,
chain,
errors) => true,
};
return androidMessageHandler;
#else
Expand All @@ -217,7 +155,7 @@ public static HttpMessageHandler GetHandler()
return httpMessageHandler;
#endif
}

public static MauiAppBuilder ConfigureUIServices(this MauiAppBuilder builder) {
builder.Services.AddSingleton<IDialogService, DialogService>();
builder.Services.AddSingleton<INavigationService, ShellNavigationService>();
Expand Down
Loading