diff --git a/.editorconfig b/.editorconfig index dd3a701..938d5e0 100644 --- a/.editorconfig +++ b/.editorconfig @@ -150,6 +150,20 @@ dotnet_diagnostic.ca2016.severity = error #Forwarding cancellation tokens csharp_style_namespace_declarations = file_scoped:error resharper_entity_framework_model_validation_unlimited_string_length_highlighting = none +[*.{cs,vb}] + +# Async methods should have "Async" suffix +dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods +dotnet_naming_rule.async_methods_end_in_async.style = end_in_async +dotnet_naming_rule.async_methods_end_in_async.severity = error + +dotnet_naming_symbols.any_async_methods.applicable_kinds = method +dotnet_naming_symbols.any_async_methods.applicable_accessibilities = * +dotnet_naming_symbols.any_async_methods.required_modifiers = async + +dotnet_naming_style.end_in_async.required_suffix = Async +dotnet_naming_style.end_in_async.capitalization = pascal_case + ######################### # VS added settings # ######################### diff --git a/src/Pandatech.VerticalSlices/Features/Auth/Api/AuthenticationEndpoints.cs b/src/Pandatech.VerticalSlices/Features/Auth/Api/AuthenticationEndpoints.cs index 3262fc4..635bfef 100644 --- a/src/Pandatech.VerticalSlices/Features/Auth/Api/AuthenticationEndpoints.cs +++ b/src/Pandatech.VerticalSlices/Features/Auth/Api/AuthenticationEndpoints.cs @@ -8,6 +8,7 @@ using Pandatech.VerticalSlices.Features.Auth.Helpers; using Pandatech.VerticalSlices.Features.Auth.Helpers.ApiAuth.MinimalApiExtensions; using Pandatech.VerticalSlices.SharedKernel.Enums; +using Pandatech.VerticalSlices.SharedKernel.Extensions; using Pandatech.VerticalSlices.SharedKernel.Helpers; using ResponseCrafter.Extensions; @@ -46,7 +47,7 @@ public void AddRoutes(IEndpointRouteBuilder app) return TypedResults.Ok(response); } - var domain = configuration["Security:CookieDomain"]!; + var domain = configuration.GetCookieDomain(); httpContextAccessor.HttpContext!.PrepareAndSetCookies(response, environment, domain); return TypedResults.Ok(response); @@ -75,7 +76,7 @@ public void AddRoutes(IEndpointRouteBuilder app) return TypedResults.Ok(response); } - var domain = configuration["Security:CookieDomain"]!; + var domain = configuration.GetCookieDomain(); httpContextAccessor.HttpContext!.PrepareAndSetCookies(response, environment, domain); return TypedResults.Ok(response); diff --git a/src/Pandatech.VerticalSlices/Features/MyAccount/Api/MyAccountEndpoints.cs b/src/Pandatech.VerticalSlices/Features/MyAccount/Api/MyAccountEndpoints.cs index e8cce24..4ad2700 100644 --- a/src/Pandatech.VerticalSlices/Features/MyAccount/Api/MyAccountEndpoints.cs +++ b/src/Pandatech.VerticalSlices/Features/MyAccount/Api/MyAccountEndpoints.cs @@ -7,6 +7,7 @@ using Pandatech.VerticalSlices.Features.MyAccount.Application.Logout; using Pandatech.VerticalSlices.Features.MyAccount.Application.PersonalInformation; using Pandatech.VerticalSlices.Features.MyAccount.Application.UpdateOwnPassword; +using Pandatech.VerticalSlices.SharedKernel.Extensions; using Pandatech.VerticalSlices.SharedKernel.Helpers; using ResponseCrafter.Extensions; @@ -54,7 +55,7 @@ public void AddRoutes(IEndpointRouteBuilder app) IConfiguration configuration, CancellationToken token) => { - var domain = configuration["Security:CookieDomain"]!; + var domain = configuration.GetCookieDomain(); await sender.Send(new LogoutCommand(), token); httpContextAccessor.HttpContext!.DeleteAllCookies(environment, domain); return TypedResults.Ok(); diff --git a/src/Pandatech.VerticalSlices/SharedKernel/Extensions/ConfigurationExtensions.cs b/src/Pandatech.VerticalSlices/SharedKernel/Extensions/ConfigurationExtensions.cs index 24bc4c1..f723e12 100644 --- a/src/Pandatech.VerticalSlices/SharedKernel/Extensions/ConfigurationExtensions.cs +++ b/src/Pandatech.VerticalSlices/SharedKernel/Extensions/ConfigurationExtensions.cs @@ -13,6 +13,7 @@ public static class ConfigurationExtensions private const string SuperUserPasswordConfigurationPath = "Security:SuperUser:Password"; private const string PersistentConfigurationPath = "PersistentStorage"; private const string RepositoryNameConfigurationPath = "RepositoryName"; + private const string CookieDomainConfigurationPath = "Security:CookieDomain"; public static string GetFileStoragePath(this IConfiguration configuration) { @@ -74,4 +75,9 @@ public static string GetSuperuserPassword(this IConfiguration configuration) { return configuration[SuperUserPasswordConfigurationPath]!; } + + public static string GetCookieDomain(this IConfiguration configuration) + { + return configuration[CookieDomainConfigurationPath]!; + } } \ No newline at end of file