SHA256
GuestLog - Moved Enums
- Enums moved to Enum folder (by type). - ResultCode class changed to enum to ensure type safety in results.
This commit is contained in:
@@ -16,4 +16,4 @@
|
|||||||
@using Somnia.GuestLog.Components.Forms
|
@using Somnia.GuestLog.Components.Forms
|
||||||
@using Somnia.GuestLog.Components.Controls
|
@using Somnia.GuestLog.Components.Controls
|
||||||
@using Somnia.GuestLog.Resources
|
@using Somnia.GuestLog.Resources
|
||||||
@using MessageKind = Somnia.GuestLog.Services.IUserMessageService.MessageKind;
|
@using Somnia.GuestLog.Enums.UI
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Somnia.GuestLog.Enums.Services;
|
||||||
|
|
||||||
|
public enum AddressQueryProvider
|
||||||
|
{
|
||||||
|
Nominatim,
|
||||||
|
GoogleApiV4
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
namespace Somnia.GuestLog.Enums.Services;
|
||||||
|
|
||||||
|
public enum ResultCode
|
||||||
|
{
|
||||||
|
Ok,
|
||||||
|
UnknownError,
|
||||||
|
FailedValidation,
|
||||||
|
NotFound,
|
||||||
|
GuestCurrentlyInStay,
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
namespace Somnia.GuestLog.Components.Forms;
|
namespace Somnia.GuestLog.Enums.UI;
|
||||||
|
|
||||||
public enum FormMode
|
public enum FormMode
|
||||||
{
|
{
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
namespace Somnia.GuestLog.Enums.UI;
|
||||||
|
|
||||||
|
public enum MessageKind
|
||||||
|
{
|
||||||
|
Info, Warning, Error, Success, Normal
|
||||||
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using Somnia.GuestLog.Enums.Services;
|
||||||
|
|
||||||
namespace Somnia.GuestLog.Models.Configuration;
|
namespace Somnia.GuestLog.Models.Configuration;
|
||||||
|
|
||||||
public class AddressQueryConfig
|
public class AddressQueryConfig
|
||||||
@@ -5,18 +7,10 @@ public class AddressQueryConfig
|
|||||||
public const string SectionName = "AddressQuery";
|
public const string SectionName = "AddressQuery";
|
||||||
|
|
||||||
public bool EnableAddressQuery { get; set; }
|
public bool EnableAddressQuery { get; set; }
|
||||||
public AddressQueryProviderEnum? Provider { get; set; }
|
public AddressQueryProvider? Provider { get; set; }
|
||||||
public string? ServiceURL { get; set; }
|
public string? ServiceURL { get; set; }
|
||||||
public string? ApiKey { get; set; }
|
public string? ApiKey { get; set; }
|
||||||
public string? UserAgent { get; set; }
|
public string? UserAgent { get; set; }
|
||||||
public string? ResultLang { get; set; }
|
public string? ResultLang { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public enum AddressQueryProviderEnum
|
|
||||||
{
|
|
||||||
Nominatim,
|
|
||||||
GoogleApiV4
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
|
using Somnia.GuestLog.Enums.Services;
|
||||||
|
|
||||||
namespace Somnia.GuestLog.Models.DTOs;
|
namespace Somnia.GuestLog.Models.DTOs;
|
||||||
|
|
||||||
public sealed record Result(bool IsSuccess, string ResultCode, params object[]? Context)
|
public sealed record Result(bool IsSuccess, ResultCode ResultCode, params object[]? Context)
|
||||||
{
|
{
|
||||||
public static Result Ok() => new(IsSuccess: true, ResultCode: Models.ResultCode.Ok, Context: null);
|
public static Result Ok() => new(IsSuccess: true, ResultCode: ResultCode.Ok, Context: null);
|
||||||
|
|
||||||
public static Result Fail(string resultCode) => new(IsSuccess: false, resultCode, Context: null);
|
public static Result Fail(ResultCode resultCode) => new(IsSuccess: false, resultCode, Context: null);
|
||||||
public static Result FailWithContext(string resultCode, params object[] context)
|
public static Result FailWithContext(ResultCode resultCode, params object[] context)
|
||||||
=> new(IsSuccess: false, resultCode, context);
|
=> new(IsSuccess: false, resultCode, context);
|
||||||
public static Result FailUnknownError()
|
public static Result FailUnknownError()
|
||||||
=> new(IsSuccess: false, ResultCode: Models.ResultCode.UnknownError, Context: null);
|
=> new(IsSuccess: false, ResultCode: ResultCode.UnknownError, Context: null);
|
||||||
|
|
||||||
public bool IsUnknownError => !IsSuccess && ResultCode == Models.ResultCode.UnknownError;
|
public bool IsUnknownError => !IsSuccess && ResultCode == ResultCode.UnknownError;
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed record Result<T>(bool IsSuccess, T? Value, string ResultCode, params object[]? Context)
|
public sealed record Result<T>(bool IsSuccess, T? Value, ResultCode ResultCode, params object[]? Context)
|
||||||
{
|
{
|
||||||
public static Result<T> Ok(T value) => new(IsSuccess: true, value, ResultCode: Models.ResultCode.Ok, Context: null);
|
public static Result<T> Ok(T value) => new(IsSuccess: true, value, ResultCode: ResultCode.Ok, Context: null);
|
||||||
public static Result<T> Fail(string resultCode) => new(IsSuccess: false, Value: default, resultCode, Context: null);
|
public static Result<T> Fail(ResultCode resultCode) => new(IsSuccess: false, Value: default, resultCode, Context: null);
|
||||||
public static Result<T> FailWithContext(string resultCode, params object[] context)
|
public static Result<T> FailWithContext(ResultCode resultCode, params object[] context)
|
||||||
=> new(IsSuccess: false, Value: default, resultCode, context);
|
=> new(IsSuccess: false, Value: default, resultCode, context);
|
||||||
|
|
||||||
public bool IsUnknownError => !IsSuccess && ResultCode == Models.ResultCode.UnknownError;
|
public bool IsUnknownError => !IsSuccess && ResultCode == ResultCode.UnknownError;
|
||||||
}
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
namespace Somnia.GuestLog.Models;
|
|
||||||
|
|
||||||
public static class ResultCode
|
|
||||||
{
|
|
||||||
public const string Ok = "Ok";
|
|
||||||
public const string UnknownError = "UnknownError";
|
|
||||||
public const string FailedValidation = "FailedValidation";
|
|
||||||
public const string NotFound = "NotFound";
|
|
||||||
|
|
||||||
public const string GuestCurrentlyInStay = "GuestCurrentlyInStay";
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
using Somnia.GuestLog.Enums.Services;
|
||||||
using Somnia.GuestLog.Models.Configuration;
|
using Somnia.GuestLog.Models.Configuration;
|
||||||
using Somnia.GuestLog.Utils.DI;
|
using Somnia.GuestLog.Utils.DI;
|
||||||
|
|
||||||
@@ -11,8 +12,8 @@ public class ConfigFileAddressQueryFactory(
|
|||||||
{
|
{
|
||||||
public static void RegisterFactoryItems(IServiceCollection services)
|
public static void RegisterFactoryItems(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddKeyedTransient<IAddressQueryService, NominatimAddressQueryService>(AddressQueryConfig.AddressQueryProviderEnum.Nominatim);
|
services.AddKeyedTransient<IAddressQueryService, NominatimAddressQueryService>(AddressQueryProvider.Nominatim);
|
||||||
services.AddKeyedTransient<IAddressQueryService, GoogleApiAddressQueryService>(AddressQueryConfig.AddressQueryProviderEnum.GoogleApiV4);
|
services.AddKeyedTransient<IAddressQueryService, GoogleApiAddressQueryService>(AddressQueryProvider.GoogleApiV4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IAddressQueryService GetService()
|
public IAddressQueryService GetService()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using FluentValidation;
|
using FluentValidation;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Somnia.GuestLog.Enums.Services;
|
||||||
using Somnia.GuestLog.Infrastructure;
|
using Somnia.GuestLog.Infrastructure;
|
||||||
using Somnia.GuestLog.Models;
|
using Somnia.GuestLog.Models;
|
||||||
using Somnia.GuestLog.Models.DTOs;
|
using Somnia.GuestLog.Models.DTOs;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using Somnia.GuestLog.Enums.UI;
|
||||||
using Somnia.GuestLog.Models.DTOs;
|
using Somnia.GuestLog.Models.DTOs;
|
||||||
|
|
||||||
namespace Somnia.GuestLog.Services;
|
namespace Somnia.GuestLog.Services;
|
||||||
@@ -8,10 +9,4 @@ public interface IUserMessageService
|
|||||||
|
|
||||||
public void ShowResult(Result resultDto);
|
public void ShowResult(Result resultDto);
|
||||||
public void ShowResultWithMessage(Result resultDto, string message);
|
public void ShowResultWithMessage(Result resultDto, string message);
|
||||||
|
|
||||||
|
|
||||||
public enum MessageKind
|
|
||||||
{
|
|
||||||
Info, Warning, Error, Success, Normal
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using FluentValidation;
|
using FluentValidation;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Somnia.GuestLog.Enums.Services;
|
||||||
using Somnia.GuestLog.Infrastructure;
|
using Somnia.GuestLog.Infrastructure;
|
||||||
using Somnia.GuestLog.Models;
|
using Somnia.GuestLog.Models;
|
||||||
using Somnia.GuestLog.Models.DTOs;
|
using Somnia.GuestLog.Models.DTOs;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using Microsoft.Extensions.Localization;
|
using Microsoft.Extensions.Localization;
|
||||||
using MudBlazor;
|
using MudBlazor;
|
||||||
using Somnia.GuestLog.Models;
|
using Somnia.GuestLog.Enums.Services;
|
||||||
|
using Somnia.GuestLog.Enums.UI;
|
||||||
using Somnia.GuestLog.Models.DTOs;
|
using Somnia.GuestLog.Models.DTOs;
|
||||||
using Somnia.GuestLog.Resources;
|
using Somnia.GuestLog.Resources;
|
||||||
using MessageKind = Somnia.GuestLog.Services.IUserMessageService.MessageKind;
|
|
||||||
|
|
||||||
namespace Somnia.GuestLog.Services;
|
namespace Somnia.GuestLog.Services;
|
||||||
|
|
||||||
@@ -59,9 +59,9 @@ public class UserMessageService(
|
|||||||
snackbar.Add(message: msg, severity: GetSnackbarSeveryForMessageKind(kind));
|
snackbar.Add(message: msg, severity: GetSnackbarSeveryForMessageKind(kind));
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetMsgForResultCode(string resultCode)
|
private string GetMsgForResultCode(ResultCode resultCode)
|
||||||
{
|
{
|
||||||
return _localizer[$"resultCode.{resultCode}"];
|
return _localizer[$"resultCode.{Enum.GetName(resultCode)}"];
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetFormatedMessage(string template, params object[]? parameters)
|
private static string GetFormatedMessage(string template, params object[]? parameters)
|
||||||
|
|||||||
Reference in New Issue
Block a user