From 0ef7c58b98f79e8c73989f96294c352fb9ea4cc0 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Tue, 19 Dec 2023 11:55:33 +0100
Subject: [PATCH 1/7] Fix grammatical error in UserLoginState.razor file
A simple change has been made to correct a minor grammatical mistake in the UserLoginState.razor file within Components/Identity.
---
src/Server.UI/Components/Identity/UserLoginState.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Server.UI/Components/Identity/UserLoginState.razor b/src/Server.UI/Components/Identity/UserLoginState.razor
index 4cdbab88c..32f7ef3b9 100644
--- a/src/Server.UI/Components/Identity/UserLoginState.razor
+++ b/src/Server.UI/Components/Identity/UserLoginState.razor
@@ -1,4 +1,4 @@
-@using CleanArchitecture.Blazor.Application.Common.Interfaces.Identity
+@using CleanArchitecture.Blazor.Application.Common.Interfaces.Identity
@using CleanArchitecture.Blazor.Server.UI.Hubs
@using CleanArchitecture.Blazor.Server.UI.Models
@using Microsoft.AspNetCore.Components.Authorization
From 7267aa723a456cf831c89de11ce4c3c1ad49da31 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Tue, 19 Dec 2023 12:21:04 +0100
Subject: [PATCH 2/7] Completely reformatted the entire project.
---
.editorconfig | 362 ----------------
CleanArchitecture.Blazor.nuspec | 60 +--
README.md | 23 +-
docker-compose.dcproj | 38 +-
docker-compose.yml | 4 +-
src/Application/Application.csproj | 36 +-
.../EventHandlers/CreatedEventHandler.cs | 1 +
.../EventHandlers/DeletedEventHandler.cs | 1 +
.../EventHandlers/UpdatedEventHandler.cs | 1 +
.../ExceptionHandlers/ConflictException.cs | 7 +-
.../ExceptionHandlers/DbExceptionHandler.cs | 2 -
.../ForbiddenAccessException.cs | 8 +-
.../InternalServerException.cs | 3 +-
.../ExceptionHandlers/NotFoundException.cs | 13 +-
.../ExceptionHandlers/ServerException.cs | 11 +-
.../ServerExceptionHandler.cs | 15 +-
.../UnauthorizedException.cs | 8 +-
.../ValidationExceptionHandler.cs | 15 +-
.../Common/Extensions/DataRowExtensions.cs | 36 +-
.../DescriptionAttributeExtensions.cs | 31 +-
.../Common/Extensions/QueryableExtensions.cs | 31 +-
.../Common/Extensions/StringExtensions.cs | 12 +-
.../Common/Extensions/ValidationExtensions.cs | 7 +-
.../Caching/ICacheInvalidatorRequest.cs | 4 +-
.../Interfaces/Caching/ICacheableRequest.cs | 4 +-
.../Interfaces/IApplicationDbContext.cs | 3 +-
.../Interfaces/IApplicationHubWrapper.cs | 2 +-
.../Common/Interfaces/IApplicationSettings.cs | 3 +-
.../Common/Interfaces/ICurrentUserService.cs | 5 +-
.../Common/Interfaces/IDateTime.cs | 2 +-
.../Common/Interfaces/IDictionaryService.cs | 2 +-
.../Common/Interfaces/IDocumentOcrJob.cs | 2 +-
.../Common/Interfaces/IExcelService.cs | 5 +-
.../Common/Interfaces/IMailService.cs | 2 +-
.../Common/Interfaces/IPDFService.cs | 3 +-
.../Common/Interfaces/IPicklistService.cs | 5 +-
src/Application/Common/Interfaces/IResult.cs | 3 +-
src/Application/Common/Interfaces/IService.cs | 2 +-
.../Common/Interfaces/IUploadService.cs | 2 +-
.../Common/Interfaces/IValidationService.cs | 13 +-
.../Identity/DTOs/RefreshTokenRequest.cs | 5 +-
.../Interfaces/Identity/DTOs/TokenRequest.cs | 2 +-
.../Interfaces/Identity/DTOs/TokenResponse.cs | 2 +-
.../Interfaces/Identity/IIdentityService.cs | 2 +-
.../Interfaces/Identity/IIdentitySettings.cs | 17 +-
.../Interfaces/Identity/IUserDataProvider.cs | 5 +-
.../Identity/IUsersStateContainer.cs | 3 +-
.../Interfaces/MultiTenant/ITenantService.cs | 3 +-
.../DefaultJsonSerializerOptions.cs | 5 +-
.../Interfaces/Serialization/ISerializer.cs | 3 +-
.../Common/Mappings/MappingExtensions.cs | 27 +-
src/Application/Common/Models/MailRequest.cs | 2 +-
.../Common/Models/PaginatedData.cs | 18 +-
.../Common/Models/PaginatedList.cs | 12 +-
.../Common/Models/PaginationFilter.cs | 12 +-
.../Common/Models/PaginationRequest.cs | 8 +-
src/Application/Common/Models/Result.cs | 20 +-
.../Common/Models/UploadRequest.cs | 6 +-
src/Application/Common/Models/UserProfile.cs | 7 +-
.../ParallelNoWaitPublisher.cs | 8 +-
.../Common/Security/LoginFormModel.cs | 4 -
.../Common/Security/RegisterFormModel.cs | 19 +-
.../RegisterFormModelFluentValidator.cs | 25 +-
.../Security/RequestAuthorizeAttribute.cs | 16 +-
src/Application/DependencyInjection.cs | 3 +-
.../AuditTrails/DTOs/AuditTrailDto.cs | 3 +-
.../AuditTrailsWithPaginationQuery.cs | 13 +-
.../AuditTrailAdvancedFilter.cs | 9 +-
.../AuditTrailAdvancedSpecification.cs | 14 +-
.../Customers/Caching/CustomerCacheKey.cs | 42 +-
.../AddEdit/AddEditCustomerCommand.cs | 92 ++--
.../AddEditCustomerCommandValidator.cs | 13 +-
.../Commands/Create/CreateCustomerCommand.cs | 77 ++--
.../Create/CreateCustomerCommandValidator.cs | 18 +-
.../Commands/Delete/DeleteCustomerCommand.cs | 69 +--
.../Delete/DeleteCustomerCommandValidator.cs | 14 +-
.../Commands/Import/ImportCustomersCommand.cs | 151 +++----
.../Import/ImportCustomersCommandValidator.cs | 17 +-
.../Commands/Update/UpdateCustomerCommand.cs | 77 ++--
.../Update/UpdateCustomerCommandValidator.cs | 15 +-
.../Features/Customers/DTOs/CustomerDto.cs | 15 +-
.../CustomerCreatedEventHandler.cs | 27 +-
.../CustomerDeletedEventHandler.cs | 27 +-
.../CustomerUpdatedEventHandler.cs | 27 +-
.../Queries/Export/ExportCustomersQuery.cs | 80 ++--
.../Queries/GetAll/GetAllCustomersQuery.cs | 25 +-
.../Queries/GetById/GetCustomerByIdQuery.cs | 21 +-
.../Pagination/CustomersPaginationQuery.cs | 53 +--
.../Specifications/CustomerAdvancedFilter.cs | 12 +-
.../CustomerAdvancedSpecification.cs | 15 +-
.../CustomerByIdSpecification.cs | 2 +-
.../AddEdit/AddEditDocumentCommand.cs | 1 -
.../AddEditDocumentCommandValidator.cs | 2 -
.../Commands/Upload/UploadDocumentCommand.cs | 4 +-
.../Features/Documents/DTOs/DocumentDto.cs | 2 +-
.../GetFileStream/GetFileStreamQuery.cs | 10 +-
.../DocumentsWithPaginationQuery.cs | 14 +-
.../Specifications/AdvancedDocumentsFilter.cs | 7 +-
.../AdvancedDocumentsSpecification.cs | 21 +-
.../ResetPassword/ResetPasswordCommand.cs | 14 +-
.../AddEdit/AddEditKeyValueCommand.cs | 2 +-
.../AddEditKeyValueCommandValidator.cs | 2 -
.../Commands/Import/ImportKeyValuesCommand.cs | 2 +-
.../KeyValuesWithPaginationQuery.cs | 10 +-
.../Specifications/KeyValueAdvancedFilter.cs | 5 +-
.../KeyValueAdvancedSpecification.cs | 7 +-
.../Features/Loggers/DTOs/LogDto.cs | 2 -
.../LogsWithPaginationQuery.cs | 17 +-
.../Specifications/LoggerAdvancedFilter.cs | 4 +-
.../LoggerAdvancedSpecification.cs | 12 +-
.../Products/Caching/ProductCacheKey.cs | 16 +-
.../Commands/AddEdit/AddEditProductCommand.cs | 2 +-
.../Commands/Delete/DeleteProductCommand.cs | 2 +-
.../Queries/Export/ExportProductsQuery.cs | 5 +-
.../Queries/GetAll/GetAllProductsQuery.cs | 7 +-
.../Pagination/ProductsPaginationQuery.cs | 11 +-
.../Specifications/ProductAdvancedFilter.cs | 11 +-
.../ProductAdvancedSpecification.cs | 25 +-
.../Specifications/ProductListView.cs | 6 +-
.../Commands/AddEdit/AddEditTenantCommand.cs | 7 +-
.../AddEdit/AddEditTenantCommandValidator.cs | 2 -
.../Commands/Delete/DeleteTenantCommand.cs | 7 +-
.../Features/Tenants/DTOs/TenantDto.cs | 2 -
.../Pagination/TenantsPaginationQuery.cs | 9 +-
.../Pipeline/AuthorizationBehaviour.cs | 37 +-
.../Pipeline/CacheInvalidationBehaviour.cs | 15 +-
.../Pipeline/MemoryCacheBehaviour.cs | 10 +-
.../PreProcessors/LoggingPreProcessor.cs | 5 +-
.../PreProcessors/ValidationPreProcessor.cs | 7 +-
.../Pipeline/UnhandledExceptionBehaviour.cs | 13 +-
...egisterFormModelFluentValidator.ca-ES.resx | 249 +++++------
...egisterFormModelFluentValidator.de-DE.resx | 249 +++++------
.../RegisterFormModelFluentValidator.en.resx | 249 +++++------
...egisterFormModelFluentValidator.es-ES.resx | 249 +++++------
...egisterFormModelFluentValidator.fr-FR.resx | 249 +++++------
...egisterFormModelFluentValidator.ja-JP.resx | 249 +++++------
...egisterFormModelFluentValidator.km-KH.resx | 249 +++++------
.../RegisterFormModelFluentValidator.resx | 263 ++++++------
.../RegisterFormModelFluentValidator.ru.resx | 249 +++++------
...egisterFormModelFluentValidator.zh-CN.resx | 249 +++++------
.../Export/ExportAuditTrailsQuery.ca-ES.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.de-DE.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.en.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.es-ES.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.fr-FR.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.ja-JP.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.km-KH.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.ru.resx | 247 +++++------
.../Export/ExportAuditTrailsQuery.zh-CN.resx | 247 +++++------
...portDocumentTypesCommandHandler.ca-ES.resx | 241 +++++------
...portDocumentTypesCommandHandler.de-DE.resx | 241 +++++------
.../ImportDocumentTypesCommandHandler.en.resx | 241 +++++------
...portDocumentTypesCommandHandler.es-ES.resx | 241 +++++------
...portDocumentTypesCommandHandler.fr-FR.resx | 241 +++++------
...portDocumentTypesCommandHandler.ja-JP.resx | 241 +++++------
...portDocumentTypesCommandHandler.km-KH.resx | 241 +++++------
.../ImportDocumentTypesCommandHandler.resx | 241 +++++------
.../ImportDocumentTypesCommandHandler.ru.resx | 241 +++++------
...portDocumentTypesCommandHandler.zh-CN.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.ca-ES.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.de-DE.resx | 241 +++++------
.../ExportDocumentTypesQueryHandler.en.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.es-ES.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.fr-FR.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.ja-JP.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.km-KH.resx | 241 +++++------
.../ExportDocumentTypesQueryHandler.resx | 241 +++++------
.../ExportDocumentTypesQueryHandler.ru.resx | 241 +++++------
...ExportDocumentTypesQueryHandler.zh-CN.resx | 241 +++++------
.../ExportDocumentsQueryHandler.ca-ES.resx | 245 +++++------
.../ExportDocumentsQueryHandler.de-DE.resx | 245 +++++------
.../ExportDocumentsQueryHandler.en.resx | 245 +++++------
.../ExportDocumentsQueryHandler.es-ES.resx | 245 +++++------
.../ExportDocumentsQueryHandler.fr-FR.resx | 245 +++++------
.../ExportDocumentsQueryHandler.ja-JP.resx | 245 +++++------
.../ExportDocumentsQueryHandler.km-KH.resx | 245 +++++------
.../Export/ExportDocumentsQueryHandler.resx | 245 +++++------
.../ExportDocumentsQueryHandler.ru.resx | 245 +++++------
.../ExportDocumentsQueryHandler.zh-CN.resx | 245 +++++------
.../ResetPasswordCommandHandler.ca-ES.resx | 241 +++++------
.../ResetPasswordCommandHandler.de-DE.resx | 241 +++++------
.../ResetPasswordCommandHandler.en.resx | 241 +++++------
.../ResetPasswordCommandHandler.es-ES.resx | 241 +++++------
.../ResetPasswordCommandHandler.fr-FR.resx | 241 +++++------
.../ResetPasswordCommandHandler.ja-JP.resx | 241 +++++------
.../ResetPasswordCommandHandler.km-KH.resx | 241 +++++------
.../ResetPasswordCommandHandler.resx | 241 +++++------
.../ResetPasswordCommandHandler.ru.resx | 241 +++++------
.../ResetPasswordCommandHandler.zh-CN.resx | 241 +++++------
.../ImportKeyValuesCommandHandler.ca-ES.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.de-DE.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.en.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.es-ES.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.fr-FR.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.ja-JP.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.km-KH.resx | 245 +++++------
.../Import/ImportKeyValuesCommandHandler.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.ru.resx | 245 +++++------
.../ImportKeyValuesCommandHandler.zh-CN.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.ca-ES.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.de-DE.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.en.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.es-ES.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.fr-FR.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.ja-JP.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.km-KH.resx | 245 +++++------
.../Export/ExportKeyValuesQueryHandler.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.ru.resx | 245 +++++------
.../ExportKeyValuesQueryHandler.zh-CN.resx | 245 +++++------
.../Export/ExportLogsQueryHandler.ca-ES.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.de-DE.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.en.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.es-ES.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.fr-FR.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.ja-JP.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.km-KH.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.ru.resx | 251 +++++------
.../Export/ExportLogsQueryHandler.zh-CN.resx | 251 +++++------
.../ImportProductsCommandHandler.ca-ES.resx | 249 +++++------
.../ImportProductsCommandHandler.de-DE.resx | 249 +++++------
.../ImportProductsCommandHandler.en.resx | 249 +++++------
.../ImportProductsCommandHandler.es-ES.resx | 249 +++++------
.../ImportProductsCommandHandler.fr-FR.resx | 249 +++++------
.../ImportProductsCommandHandler.ja-JP.resx | 249 +++++------
.../ImportProductsCommandHandler.km-KH.resx | 249 +++++------
.../Import/ImportProductsCommandHandler.resx | 249 +++++------
.../ImportProductsCommandHandler.ru.resx | 249 +++++------
.../ImportProductsCommandHandler.zh-CN.resx | 249 +++++------
.../ExportProductsQueryHandler.ca-ES.resx | 249 +++++------
.../ExportProductsQueryHandler.de-DE.resx | 249 +++++------
.../Export/ExportProductsQueryHandler.en.resx | 249 +++++------
.../ExportProductsQueryHandler.es-ES.resx | 249 +++++------
.../ExportProductsQueryHandler.fr-FR.resx | 249 +++++------
.../ExportProductsQueryHandler.ja-JP.resx | 249 +++++------
.../ExportProductsQueryHandler.km-KH.resx | 249 +++++------
.../Export/ExportProductsQueryHandler.resx | 249 +++++------
.../Export/ExportProductsQueryHandler.ru.resx | 249 +++++------
.../ExportProductsQueryHandler.zh-CN.resx | 249 +++++------
src/Application/_Imports.cs | 2 +-
src/Domain/Common/DomainEvent.cs | 5 +-
.../Common/Entities/BaseAuditableEntity.cs | 2 +-
.../Entities/BaseAuditableSoftDeleteEntity.cs | 3 +-
src/Domain/Common/Entities/BaseEntity.cs | 8 +-
src/Domain/Common/Entities/IAuditTrial.cs | 2 +-
src/Domain/Common/Entities/IEntity.cs | 4 +-
src/Domain/Common/Entities/IMustHaveTenant.cs | 4 +-
src/Domain/Common/Entities/ISoftDelete.cs | 2 +-
.../Common/Entities/OwnerPropertyEntity.cs | 9 +-
src/Domain/Common/Enums/ExportType.cs | 1 +
src/Domain/Common/Enums/JobStatus.cs | 3 +-
src/Domain/Common/Enums/PartnerType.cs | 2 +-
src/Domain/Common/Enums/TrackingState.cs | 5 +-
src/Domain/Common/Enums/UploadType.cs | 11 +-
src/Domain/Common/Events/CreatedEvent.cs | 3 +-
src/Domain/Common/Events/DeletedEvent.cs | 3 +-
src/Domain/Common/Events/UpdatedEvent.cs | 3 +-
.../Exceptions/UnsupportedColourException.cs | 2 +-
src/Domain/Common/ValueObject.cs | 14 +-
src/Domain/Domain.csproj | 26 +-
src/Domain/Entities/AuditTrail.cs | 2 +-
src/Domain/Entities/Customer.cs | 4 +-
src/Domain/Entities/Document.cs | 4 +-
src/Domain/Entities/KeyValue.cs | 14 +-
src/Domain/Entities/Logger.cs | 2 +-
src/Domain/Entities/Product.cs | 4 +-
src/Domain/Entities/Tenant.cs | 5 +-
src/Domain/Events/CustomerCreatedEvent.cs | 14 +-
src/Domain/Events/CustomerDeletedEvent.cs | 13 +-
src/Domain/Events/CustomerUpdatedEvent.cs | 14 +-
src/Domain/Identity/ApplicationRole.cs | 11 +-
src/Domain/Identity/ApplicationRoleClaim.cs | 1 +
src/Domain/Identity/ApplicationUser.cs | 26 +-
src/Domain/Identity/ApplicationUserClaim.cs | 2 +-
src/Domain/Identity/ApplicationUserLogin.cs | 2 +-
src/Domain/Identity/ApplicationUserRole.cs | 3 +-
src/Domain/Identity/ApplicationUserToken.cs | 2 +-
src/Domain/ValueObjects/Colour.cs | 57 ++-
src/Domain/_Imports.cs | 2 +-
.../Configurations/DashbordSettings.cs | 32 +-
.../Configurations/DatabaseSettings.cs | 6 +-
.../Configurations/IdentitySettings.cs | 14 +-
.../ClaimTypes/ApplicationClaimTypes.cs | 2 +-
.../Constants/ConstantString.cs | 30 +-
.../Constants/Database/DbProviderKeys.cs | 3 +-
.../Constants/GlobalVariable.cs | 3 +-
.../Constants/LocalStorage/LocalStorage.cs | 3 +-
.../Localization/LocalizationConstants.cs | 108 ++---
.../Constants/Permission/PermissionModules.cs | 44 +-
.../Constants/Permission/Permissions.cs | 45 +-
.../Constants/Role/RoleNameConstants.cs | 7 +-
.../Constants/User/UserNameConstants.cs | 2 +-
src/Infrastructure/DependencyInjection.cs | 67 ++-
...ionProvidersServiceCollectionExtensions.cs | 36 +-
.../Extensions/ClaimsPrincipalExtensions.cs | 72 +++-
.../Extensions/IdentityResultExtensions.cs | 2 +-
.../Extensions/SerilogExtensions.cs | 1 -
src/Infrastructure/Infrastructure.csproj | 46 +-
.../Persistence/ApplicationDbContext.cs | 7 +-
.../ApplicationDbContextInitializer.cs | 116 +++--
.../Persistence/BlazorContextFactory.cs | 9 +-
.../Configurations/AuditTrailConfiguration.cs | 11 +-
.../Configurations/CustomerConfiguration.cs | 4 +-
.../Configurations/DocumentConfiguration.cs | 14 +-
.../IdentityUserConfiguration.cs | 46 +-
.../Configurations/KeyValueConfiguration.cs | 2 +-
.../Configurations/TenantConfiguration.cs | 3 +-
.../Conversions/ValueConversionExtensions.cs | 36 +-
.../Extensions/ModelBuilderExtensions.cs | 5 +-
.../AuditableEntityInterceptor.cs | 86 ++--
.../DispatchDomainEventsInterceptor.cs | 15 +-
.../Constants/ConstantString.ca-ES.resx | 347 +++++++--------
.../Constants/ConstantString.de-DE.resx | 347 +++++++--------
.../Constants/ConstantString.en.resx | 351 +++++++--------
.../Constants/ConstantString.es-ES.resx | 347 +++++++--------
.../Constants/ConstantString.fr-FR.resx | 347 +++++++--------
.../Constants/ConstantString.ja-JP.resx | 347 +++++++--------
.../Constants/ConstantString.km-KH.resx | 347 +++++++--------
.../Resources/Constants/ConstantString.resx | 351 +++++++--------
.../Constants/ConstantString.ru.resx | 347 +++++++--------
.../Constants/ConstantString.zh-CN.resx | 351 +++++++--------
.../ApplicationUserClaimsPrincipalFactory.cs | 35 +-
.../ConfigureCookieAuthenticationOptions.cs | 6 +-
.../Services/CurrentUserService.cs | 2 +-
.../Services/DateTimeService.cs | 2 +-
src/Infrastructure/Services/ExcelService.cs | 51 +--
.../Services/Identity/IdentityService.cs | 77 ++--
.../Services/Identity/UserDataProvider.cs | 24 +-
.../Services/Identity/UsersStateContainer.cs | 15 +-
.../Services/InMemoryTicketStore.cs | 23 +-
.../Services/JWT/AccessTokenGenerator.cs | 5 +-
.../Services/JWT/AccessTokenProvider.cs | 84 ++--
.../Services/JWT/AccessTokenValidator.cs | 16 +-
src/Infrastructure/Services/JWT/AuthStore.cs | 11 +-
.../Services/JWT/AuthenticatedUserResponse.cs | 5 +-
.../Services/JWT/BaseAuthStore.cs | 15 +-
.../Services/JWT/DefaultAuthenticator.cs | 45 +-
.../Services/JWT/DefaultClaimsProvider.cs | 20 +-
.../Services/JWT/IAccessTokenGenerator.cs | 2 +-
.../Services/JWT/IAccessTokenValidator.cs | 3 +-
.../Services/JWT/IAuthenticator.cs | 3 +-
.../Services/JWT/IClaimsProvider.cs | 9 +-
.../Services/JWT/ILoginService.cs | 3 +-
.../Services/JWT/IRefreshTokenGenerator.cs | 3 +-
.../Services/JWT/IRefreshTokenValidator.cs | 3 +-
.../Services/JWT/ITokenGeneratorService.cs | 2 +-
.../Services/JWT/JwtLoginService.cs | 14 +-
.../Services/JWT/JwtSigningOptions.cs | 22 +-
.../Services/JWT/RefreshTokenGenerator.cs | 4 +-
.../JWT/RefreshTokenNotFoundException.cs | 3 +-
.../Services/JWT/RefreshTokenValidator.cs | 16 +-
.../Services/JWT/SimpleJwtOptions.cs | 22 +-
.../Services/JWT/TokenGeneratorService.cs | 5 +-
src/Infrastructure/Services/MailService.cs | 48 +--
.../Services/MultiTenant/TenantProvider.cs | 16 +-
src/Infrastructure/Services/PDFService.cs | 173 ++++----
.../Services/PaddleOCR/DocumentOcrJob.cs | 55 +--
.../Serialization/SystemTextJsonSerializer.cs | 23 +-
src/Infrastructure/Services/UploadService.cs | 20 +-
.../Services/ValidationService.cs | 27 +-
src/Infrastructure/_Imports.cs | 2 +-
.../Migrators.MSSQL/Migrators.MSSQL.csproj | 22 +-
.../Migrators.PostgreSQL.csproj | 22 +-
.../Migrators.SqLite/Migrators.SqLite.csproj | 22 +-
src/Server.UI/Components/App.razor | 48 +--
.../MultiTenantAutocomplete.razor.cs | 11 +-
.../PickSuperiorIdAutocomplete.razor.cs | 7 +-
.../PickUserAutocomplete.razor.cs | 30 +-
.../PicklistAutocomplete.razor.cs | 10 +-
.../Dialogs/ConfirmationDialog.razor | 13 +-
.../Dialogs/DeleteConfirmation.razor | 26 +-
.../Dialogs/LogoutConfirmation.razor | 21 +-
.../Components/Identity/UserLoginState.razor | 40 +-
.../Localization/LanguageSelector.razor | 8 +-
.../OptionSelect/MudEnumSelect.razor | 13 +-
.../Redirections/RedirectToHome.razor | 7 +-
.../Redirections/RedirectToLogin.razor | 7 +-
src/Server.UI/Components/Routes.razor | 62 ++-
.../Components/Shared/CustomError.razor | 18 +-
.../Shared/CustomValidation.razor.cs | 14 +-
.../Components/Shared/ErrorHandler.razor | 8 +-
.../Components/Shared/Layout/HeaderMenu.razor | 45 +-
.../Shared/Layout/LoadingScreen.razor | 12 +-
.../Components/Shared/Layout/MainLayout.razor | 49 ++-
.../Shared/Layout/MudBlazorLogo.razor | 6 +-
.../Shared/Layout/NavigationMenu.razor | 20 +-
.../Shared/Layout/NotificationMenu.razor | 48 +--
.../Shared/Layout/SearchDialog.razor | 8 +-
.../Components/Shared/Layout/UserMenu.razor | 25 +-
.../Shared/Themes/ThemesButton.razor | 5 +-
.../Components/Shared/Themes/ThemesMenu.razor | 106 +++--
.../Components/Shared/WorldMap.razor | 342 ++++++++++++++-
src/Server.UI/Constants/Theme.cs | 76 ++--
src/Server.UI/DependencyInjection.cs | 16 +-
.../Extensions/DataGridExtensions.cs | 23 +-
src/Server.UI/Extensions/NumericExtensions.cs | 2 +-
src/Server.UI/Hubs/HubClient.cs | 29 +-
src/Server.UI/Models/DiscordInvite.cs | 2 +-
src/Server.UI/Models/GitHubRepository.cs | 5 +-
.../Models/Identity/ChangePasswordModel.cs | 2 +-
src/Server.UI/Models/Identity/OrgItem.cs | 2 +-
.../Models/Identity/PermissionsModel.cs | 2 +-
.../Models/Notification/NotificationModel.cs | 2 +-
.../Models/Notification/NotificationTypes.cs | 2 +-
src/Server.UI/Models/NugetPackage.cs | 72 ++--
src/Server.UI/Models/SharedResource.cs | 2 +-
.../Components/CustomerFormDialog.razor | 46 +-
.../CustomersAdvancedSearchComponent.razor | 10 +-
src/Server.UI/Pages/Customers/Customers.razor | 327 +++++++-------
.../Dashboard/Components/LandingSection.razor | 27 +-
src/Server.UI/Pages/Dashboard/Dashboard.razor | 400 +++++++++---------
.../Components/DocumentFormDialog.razor | 38 +-
.../Components/UploadFilesFormDialog.razor | 71 ++--
src/Server.UI/Pages/Documents/Documents.razor | 216 +++++-----
.../Pages/Documents/Documents.razor.js | 1 +
.../Identity/Authentication/Forgot.razor | 61 +--
.../Pages/Identity/Authentication/Login.razor | 99 ++---
.../Identity/Authentication/Register.razor | 75 ++--
.../Pages/Identity/Authentication/Reset.razor | 6 +-
.../Roles/Components/PermissionsDrawer.razor | 24 +-
.../Roles/Components/RoleFormDialog.razor | 14 +-
.../Pages/Identity/Roles/Roles.razor | 123 +++---
.../Components/ResetPasswordDialog.razor | 41 +-
.../Identity/Users/Components/UserForm.razor | 64 ++-
.../Users/Components/UserFormDialog.razor | 18 +-
.../Pages/Identity/Users/Profile.razor | 95 +++--
.../Pages/Identity/Users/Users.razor | 315 +++++++-------
.../Components/AdvancedSearchProducts.razor | 39 +-
.../Components/ProductFormDialog.razor | 46 +-
src/Server.UI/Pages/Products/Products.razor | 257 +++++------
.../Pages/SystemManagement/AuditTrails.razor | 146 +++----
.../Components/CreatePicklistDialog.razor | 31 +-
.../Components/LogsLineCharts.razor | 80 ++--
.../Pages/SystemManagement/Dictionaries.razor | 218 +++++-----
.../Pages/SystemManagement/Logs.razor | 69 ++-
.../Pages/Tenants/TenantFormDialog.razor | 31 +-
src/Server.UI/Pages/Tenants/Tenants.razor | 99 +++--
src/Server.UI/Program.cs | 4 -
.../Localization/LanguageSelector.ar-iq.resx | 251 +++++------
.../Localization/LanguageSelector.ca-ES.resx | 251 +++++------
.../Localization/LanguageSelector.de-DE.resx | 251 +++++------
.../Localization/LanguageSelector.en.resx | 251 +++++------
.../Localization/LanguageSelector.es-ES.resx | 251 +++++------
.../Localization/LanguageSelector.fr-FR.resx | 251 +++++------
.../Localization/LanguageSelector.ja-JP.resx | 251 +++++------
.../Localization/LanguageSelector.km-KH.resx | 251 +++++------
.../Localization/LanguageSelector.resx | 251 +++++------
.../Localization/LanguageSelector.ru.resx | 251 +++++------
.../Localization/LanguageSelector.zh-CN.resx | 251 +++++------
.../Components/Shared/SideMenu.ar-IQ.resx | 279 ++++++------
.../Components/Shared/SideMenu.ca-ES.resx | 279 ++++++------
.../Components/Shared/SideMenu.de-DE.resx | 279 ++++++------
.../Components/Shared/SideMenu.en.resx | 279 ++++++------
.../Components/Shared/SideMenu.es-ES.resx | 279 ++++++------
.../Components/Shared/SideMenu.fr-FR.resx | 279 ++++++------
.../Components/Shared/SideMenu.ja-JP.resx | 279 ++++++------
.../Components/Shared/SideMenu.km-KH.resx | 279 ++++++------
.../Resources/Components/Shared/SideMenu.resx | 279 ++++++------
.../Components/Shared/SideMenu.ru.resx | 279 ++++++------
.../Components/Shared/SideMenu.zh-CN.resx | 279 ++++++------
.../EmailTemplates/_recoverypassword.cshtml | 16 +-
.../Resources/EmailTemplates/_welcome.cshtml | 14 +-
.../Pages/Authentication/Forgot.ar-IQ.resx | 267 ++++++------
.../Pages/Authentication/Forgot.ca-ES.resx | 270 ++++++------
.../Pages/Authentication/Forgot.de-DE.resx | 270 ++++++------
.../Pages/Authentication/Forgot.en.resx | 270 ++++++------
.../Pages/Authentication/Forgot.es-ES.resx | 270 ++++++------
.../Pages/Authentication/Forgot.fr-FR.resx | 270 ++++++------
.../Pages/Authentication/Forgot.ja-JP.resx | 270 ++++++------
.../Pages/Authentication/Forgot.km-KH.resx | 270 ++++++------
.../Pages/Authentication/Forgot.resx | 269 ++++++------
.../Pages/Authentication/Forgot.ru.resx | 270 ++++++------
.../Pages/Authentication/Forgot.zh-CN.resx | 270 ++++++------
.../Pages/Authentication/Login.ar-IQ.resx | 278 ++++++------
.../Pages/Authentication/Login.ca-ES.resx | 278 ++++++------
.../Pages/Authentication/Login.de-DE.resx | 278 ++++++------
.../Pages/Authentication/Login.en.resx | 278 ++++++------
.../Pages/Authentication/Login.es-ES.resx | 278 ++++++------
.../Pages/Authentication/Login.fr-FR.resx | 278 ++++++------
.../Pages/Authentication/Login.ja-JP.resx | 278 ++++++------
.../Pages/Authentication/Login.km-KH.resx | 278 ++++++------
.../Resources/Pages/Authentication/Login.resx | 278 ++++++------
.../Pages/Authentication/Login.ru.resx | 278 ++++++------
.../Pages/Authentication/Login.zh-CN.resx | 278 ++++++------
.../Pages/Authentication/Register.ar-IQ.resx | 261 ++++++------
.../Pages/Authentication/Register.ca-ES.resx | 261 ++++++------
.../Pages/Authentication/Register.de-DE.resx | 261 ++++++------
.../Pages/Authentication/Register.en.resx | 261 ++++++------
.../Pages/Authentication/Register.es-ES.resx | 261 ++++++------
.../Pages/Authentication/Register.fr-FR.resx | 261 ++++++------
.../Pages/Authentication/Register.ja-JP.resx | 261 ++++++------
.../Pages/Authentication/Register.km-KH.resx | 261 ++++++------
.../Pages/Authentication/Register.resx | 261 ++++++------
.../Pages/Authentication/Register.ru.resx | 261 ++++++------
.../Pages/Authentication/Register.zh-CN.resx | 261 ++++++------
.../Pages/Authentication/Reset.ar-IQ.resx | 239 ++++++-----
.../Pages/Authentication/Reset.ca-ES.resx | 239 ++++++-----
.../Pages/Authentication/Reset.de-DE.resx | 239 ++++++-----
.../Pages/Authentication/Reset.en.resx | 239 ++++++-----
.../Pages/Authentication/Reset.es-ES.resx | 239 ++++++-----
.../Pages/Authentication/Reset.fr-FR.resx | 239 ++++++-----
.../Pages/Authentication/Reset.ja-JP.resx | 239 ++++++-----
.../Pages/Authentication/Reset.km-KH.resx | 239 ++++++-----
.../Resources/Pages/Authentication/Reset.resx | 239 ++++++-----
.../Pages/Authentication/Reset.ru.resx | 239 ++++++-----
.../Pages/Authentication/Reset.zh-CN.resx | 239 ++++++-----
.../Pages/Documents/Documents.ar-IQ.resx | 277 ++++++------
.../Pages/Documents/Documents.ca-ES.resx | 277 ++++++------
.../Pages/Documents/Documents.de-DE.resx | 277 ++++++------
.../Pages/Documents/Documents.en.resx | 277 ++++++------
.../Pages/Documents/Documents.es-ES.resx | 277 ++++++------
.../Pages/Documents/Documents.fr-FR.resx | 277 ++++++------
.../Pages/Documents/Documents.ja-JP.resx | 277 ++++++------
.../Pages/Documents/Documents.km-KH.resx | 277 ++++++------
.../Resources/Pages/Documents/Documents.resx | 277 ++++++------
.../Pages/Documents/Documents.ru.resx | 277 ++++++------
.../Pages/Documents/Documents.zh-CN.resx | 277 ++++++------
.../Pages/Identity/Roles/Roles.ar-IQ.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.ca-ES.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.de-DE.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.en.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.es-ES.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.fr-FR.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.ja-JP.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.km-KH.resx | 263 ++++++------
.../Resources/Pages/Identity/Roles/Roles.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.ru.resx | 263 ++++++------
.../Pages/Identity/Roles/Roles.zh-CN.resx | 263 ++++++------
.../Pages/Identity/Users/Profile.ar-IQ.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.ca-ES.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.de-DE.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.en.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.es-ES.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.fr-FR.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.ja-JP.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.km-KH.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.ru.resx | 271 ++++++------
.../Pages/Identity/Users/Profile.zh-CN.resx | 271 ++++++------
.../Pages/Identity/Users/Users.ar-IQ.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.ca-ES.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.de-DE.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.en.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.es-ES.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.fr-FR.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.ja-JP.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.km-KH.resx | 309 +++++++-------
.../Resources/Pages/Identity/Users/Users.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.ru.resx | 309 +++++++-------
.../Pages/Identity/Users/Users.zh-CN.resx | 309 +++++++-------
.../Pages/Products/Products.ar-IQ.resx | 269 ++++++------
.../Pages/Products/Products.ca-ES.resx | 269 ++++++------
.../Pages/Products/Products.de-DE.resx | 269 ++++++------
.../Resources/Pages/Products/Products.en.resx | 269 ++++++------
.../Pages/Products/Products.es-ES.resx | 269 ++++++------
.../Pages/Products/Products.fr-FR.resx | 269 ++++++------
.../Pages/Products/Products.ja-JP.resx | 269 ++++++------
.../Pages/Products/Products.km-KH.resx | 269 ++++++------
.../Resources/Pages/Products/Products.resx | 269 ++++++------
.../Resources/Pages/Products/Products.ru.resx | 269 ++++++------
.../Pages/Products/Products.zh-CN.resx | 269 ++++++------
.../SystemManagement/AuditTrails.ar-IQ.resx | 251 +++++------
.../SystemManagement/AuditTrails.ca-ES.resx | 251 +++++------
.../SystemManagement/AuditTrails.de-DE.resx | 251 +++++------
.../SystemManagement/AuditTrails.en.resx | 251 +++++------
.../SystemManagement/AuditTrails.es-ES.resx | 251 +++++------
.../SystemManagement/AuditTrails.fr-FR.resx | 251 +++++------
.../SystemManagement/AuditTrails.ja-JP.resx | 251 +++++------
.../SystemManagement/AuditTrails.km-KH.resx | 251 +++++------
.../Pages/SystemManagement/AuditTrails.resx | 251 +++++------
.../SystemManagement/AuditTrails.ru.resx | 251 +++++------
.../SystemManagement/AuditTrails.zh-CN.resx | 251 +++++------
.../SystemManagement/Dictionaries.ar-IQ.resx | 251 +++++------
.../SystemManagement/Dictionaries.ca-ES.resx | 251 +++++------
.../SystemManagement/Dictionaries.de-DE.resx | 251 +++++------
.../SystemManagement/Dictionaries.en.resx | 251 +++++------
.../SystemManagement/Dictionaries.es-ES.resx | 251 +++++------
.../SystemManagement/Dictionaries.fr-FR.resx | 251 +++++------
.../SystemManagement/Dictionaries.ja-JP.resx | 251 +++++------
.../SystemManagement/Dictionaries.km-KH.resx | 251 +++++------
.../Pages/SystemManagement/Dictionaries.resx | 251 +++++------
.../SystemManagement/Dictionaries.ru.resx | 251 +++++------
.../SystemManagement/Dictionaries.zh-CN.resx | 251 +++++------
.../Pages/SystemManagement/Logs.ar-IQ.resx | 249 +++++------
.../Pages/SystemManagement/Logs.ca-ES.resx | 249 +++++------
.../Pages/SystemManagement/Logs.de-DE.resx | 249 +++++------
.../Pages/SystemManagement/Logs.en.resx | 249 +++++------
.../Pages/SystemManagement/Logs.es-ES.resx | 249 +++++------
.../Pages/SystemManagement/Logs.fr-FR.resx | 249 +++++------
.../Pages/SystemManagement/Logs.ja-JP.resx | 249 +++++------
.../Pages/SystemManagement/Logs.km-KH.resx | 249 +++++------
.../Pages/SystemManagement/Logs.resx | 249 +++++------
.../Pages/SystemManagement/Logs.ru.resx | 249 +++++------
.../Pages/SystemManagement/Logs.zh-CN.resx | 249 +++++------
.../Pages/Tenants/Tenants.ar-IQ.resx | 253 +++++------
.../Pages/Tenants/Tenants.ca-ES.resx | 253 +++++------
.../Pages/Tenants/Tenants.de-DE.resx | 253 +++++------
.../Resources/Pages/Tenants/Tenants.en.resx | 253 +++++------
.../Pages/Tenants/Tenants.es-ES.resx | 253 +++++------
.../Pages/Tenants/Tenants.fr-FR.resx | 253 +++++------
.../Pages/Tenants/Tenants.ja-JP.resx | 253 +++++------
.../Pages/Tenants/Tenants.km-KH.resx | 253 +++++------
.../Resources/Pages/Tenants/Tenants.resx | 253 +++++------
.../Resources/Pages/Tenants/Tenants.ru.resx | 253 +++++------
.../Pages/Tenants/Tenants.zh-CN.resx | 253 +++++------
.../Shared/SharedResource.ar-IQ.resx | 288 +++++++------
.../Shared/SharedResource.ca-ES.resx | 288 +++++++------
.../Shared/SharedResource.de-DE.resx | 288 +++++++------
.../Resources/Shared/SharedResource.en.resx | 288 +++++++------
.../Shared/SharedResource.es-ES.resx | 288 +++++++------
.../Shared/SharedResource.fr-FR.resx | 288 +++++++------
.../Shared/SharedResource.ja-JP.resx | 288 +++++++------
.../Shared/SharedResource.km-KH.resx | 288 +++++++------
.../Resources/Shared/SharedResource.resx | 288 +++++++------
.../Resources/Shared/SharedResource.ru.resx | 288 +++++++------
.../Shared/SharedResource.zh-CN.resx | 288 +++++++------
src/Server.UI/Server.UI.csproj | 14 +-
.../BlazorAuthenticationStateProvider.cs | 12 +-
src/Server.UI/Services/JsInterop/Fancybox.cs | 9 +-
.../Services/JsInterop/InputClear.cs | 8 +-
.../Services/JsInterop/JSInteropConstants.cs | 4 +-
.../Services/JsInterop/OpenSeadragon.cs | 7 +-
src/Server.UI/Services/JsInterop/OrgChart.cs | 5 +-
.../Services/Layout/LayoutService.cs | 97 +++--
.../Services/Navigation/IMenuService.cs | 2 +-
.../Notifications/INotificationsService.cs | 1 -
.../InMemoryNotificationService.cs | 54 ++-
.../Notifications/NotificationMessages.cs | 10 +-
.../UserPreferences/UserPreferences.cs | 36 +-
.../UserPreferences/UserPreferencesService.cs | 15 +-
src/Server.UI/_Imports.cs | 2 +-
src/Server.UI/_Imports.razor | 5 +-
src/Server.UI/appsettings.json | 2 +-
src/Server.UI/wwwroot/js/appInterop.js | 16 +-
src/Server.UI/wwwroot/js/fancybox.js | 8 +-
src/Server.UI/wwwroot/js/msal/authConfig.js | 2 +-
src/Server.UI/wwwroot/js/openseadragon.js | 2 +-
src/Server.UI/wwwroot/js/orgchart.js | 14 +-
src/Server/Common/Interfaces/ISignalRHub.cs | 1 +
src/Server/DependencyInjection.cs | 10 +-
src/Server/EndPoints/AuthController.cs | 38 +-
.../ExceptionHandlingMiddleware.cs | 23 +-
.../HangfireDashboardAuthorizationFilter.cs | 3 +-
.../LocalizationCookiesMiddleware.cs | 10 +-
.../Middlewares/LocalizationMiddleware.cs | 9 +-
src/Server/Server.csproj | 34 +-
src/Server/Services/ServerHubWrapper.cs | 3 +-
src/Server/_Imports.cs | 2 +-
.../Application.IntegrationTests.csproj | 70 +--
.../Commands/AddEditKeyValueCommandTests.cs | 19 +-
.../KeyValues/Commands/DeleteKeyValueTests.cs | 56 ++-
.../Queries/ExportKeyValuesQueryTests.cs | 8 +-
.../KeyValues/Queries/KeyValuesQueryTests.cs | 24 +-
.../KeyValuesWithPaginationQueryTests.cs | 26 +-
.../Commands/AddEditProductCommandTests.cs | 31 +-
.../Commands/DeleteProductCommandTests.cs | 27 +-
.../Commands/ImportProductsCommandTests.cs | 7 +-
.../Queries/ExportProductsQueryTests.cs | 13 +-
.../Queries/GetAllProductsQueryTests.cs | 18 +-
.../Queries/ProductsPaginationQueryTests.cs | 20 +-
.../Services/PicklistServiceTests.cs | 18 +-
.../Services/TenantsServiceTests.cs | 15 +-
.../Application.IntegrationTests/TestBase.cs | 19 +-
tests/Application.IntegrationTests/Testing.cs | 15 +-
.../Application.UnitTests.csproj | 42 +-
.../Common/Behaviours/RequestLoggerTests.cs | 12 +-
.../Exceptions/ValidationExceptionTests.cs | 32 +-
.../Common/Mappings/MappingTests.cs | 12 +-
.../Constants/ConstantStringTests.cs | 4 +-
.../Domain.UnitTests/Domain.UnitTests.csproj | 38 +-
.../ValueObjects/ColourTests.cs | 79 ++--
672 files changed, 44499 insertions(+), 42741 deletions(-)
delete mode 100644 .editorconfig
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index f91d7643c..000000000
--- a/.editorconfig
+++ /dev/null
@@ -1,362 +0,0 @@
-root = true
-
-# All files
-[*]
-indent_style = space
-
-# Xml files
-[*.xml]
-indent_size = 2
-
-# C# files
-[*.cs]
-
-#### Core EditorConfig Options ####
-
-# Indentation and spacing
-indent_size = 4
-tab_width = 4
-
-# New line preferences
-end_of_line = crlf
-insert_final_newline = false
-
-#### .NET Coding Conventions ####
-[*.{cs,vb}]
-
-# Organize usings
-dotnet_separate_import_directive_groups = false
-dotnet_sort_system_directives_first = true
-file_header_template = unset
-
-# this. and Me. preferences
-dotnet_style_qualification_for_event = false:silent
-dotnet_style_qualification_for_field = false:silent
-dotnet_style_qualification_for_method = false:silent
-dotnet_style_qualification_for_property = false:silent
-
-# Language keywords vs BCL types preferences
-dotnet_style_predefined_type_for_locals_parameters_members = true:silent
-dotnet_style_predefined_type_for_member_access = true:silent
-
-# Parentheses preferences
-dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
-dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
-dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
-
-# Modifier preferences
-dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
-
-# Expression-level preferences
-dotnet_style_coalesce_expression = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_explicit_tuple_names = true:suggestion
-dotnet_style_null_propagation = true:suggestion
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_operator_placement_when_wrapping = beginning_of_line
-dotnet_style_prefer_auto_properties = true:suggestion
-dotnet_style_prefer_compound_assignment = true:suggestion
-dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
-dotnet_style_prefer_conditional_expression_over_return = true:suggestion
-dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
-dotnet_style_prefer_inferred_tuple_names = true:suggestion
-dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
-dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
-dotnet_style_prefer_simplified_interpolation = true:suggestion
-
-# Field preferences
-dotnet_style_readonly_field = true:warning
-
-# Parameter preferences
-dotnet_code_quality_unused_parameters = all:suggestion
-
-# Suppression preferences
-dotnet_remove_unnecessary_suppression_exclusions = none
-
-#### C# Coding Conventions ####
-[*.cs]
-
-# var preferences
-csharp_style_var_elsewhere = false:silent
-csharp_style_var_for_built_in_types = false:silent
-csharp_style_var_when_type_is_apparent = false:silent
-
-# Expression-bodied members
-csharp_style_expression_bodied_accessors = true:silent
-csharp_style_expression_bodied_constructors = false:silent
-csharp_style_expression_bodied_indexers = true:silent
-csharp_style_expression_bodied_lambdas = true:suggestion
-csharp_style_expression_bodied_local_functions = false:silent
-csharp_style_expression_bodied_methods = false:silent
-csharp_style_expression_bodied_operators = false:silent
-csharp_style_expression_bodied_properties = true:silent
-
-# Pattern matching preferences
-csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
-csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
-csharp_style_prefer_not_pattern = true:suggestion
-csharp_style_prefer_pattern_matching = true:silent
-csharp_style_prefer_switch_expression = true:suggestion
-
-# Null-checking preferences
-csharp_style_conditional_delegate_call = true:suggestion
-
-# Modifier preferences
-csharp_prefer_static_local_function = true:warning
-csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:silent
-
-# Code-block preferences
-csharp_prefer_braces = true:silent
-csharp_prefer_simple_using_statement = true:suggestion
-
-# Expression-level preferences
-csharp_prefer_simple_default_expression = true:suggestion
-csharp_style_deconstructed_variable_declaration = true:suggestion
-csharp_style_inlined_variable_declaration = true:suggestion
-csharp_style_pattern_local_over_anonymous_function = true:suggestion
-csharp_style_prefer_index_operator = true:suggestion
-csharp_style_prefer_range_operator = true:suggestion
-csharp_style_throw_expression = true:suggestion
-csharp_style_unused_value_assignment_preference = discard_variable:suggestion
-csharp_style_unused_value_expression_statement_preference = discard_variable:silent
-
-# 'using' directive preferences
-csharp_using_directive_placement = outside_namespace:silent
-
-#### C# Formatting Rules ####
-
-# Namespace preferences
-csharp_style_namespace_declarations = file_scoped:warning
-
-# New line preferences
-csharp_new_line_before_catch = true
-csharp_new_line_before_else = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_anonymous_types = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_open_brace = all
-csharp_new_line_between_query_expression_clauses = true
-
-# Indentation preferences
-csharp_indent_block_contents = true
-csharp_indent_braces = false
-csharp_indent_case_contents = true
-csharp_indent_case_contents_when_block = true
-csharp_indent_labels = one_less_than_current
-csharp_indent_switch_labels = true
-
-# Space preferences
-csharp_space_after_cast = false
-csharp_space_after_colon_in_inheritance_clause = true
-csharp_space_after_comma = true
-csharp_space_after_dot = false
-csharp_space_after_keywords_in_control_flow_statements = true
-csharp_space_after_semicolon_in_for_statement = true
-csharp_space_around_binary_operators = before_and_after
-csharp_space_around_declaration_statements = false
-csharp_space_before_colon_in_inheritance_clause = true
-csharp_space_before_comma = false
-csharp_space_before_dot = false
-csharp_space_before_open_square_brackets = false
-csharp_space_before_semicolon_in_for_statement = false
-csharp_space_between_empty_square_brackets = false
-csharp_space_between_method_call_empty_parameter_list_parentheses = false
-csharp_space_between_method_call_name_and_opening_parenthesis = false
-csharp_space_between_method_call_parameter_list_parentheses = false
-csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
-csharp_space_between_method_declaration_name_and_open_parenthesis = false
-csharp_space_between_method_declaration_parameter_list_parentheses = false
-csharp_space_between_parentheses = false
-csharp_space_between_square_brackets = false
-
-# Wrapping preferences
-csharp_preserve_single_line_blocks = true
-csharp_preserve_single_line_statements = true
-
-#### Naming styles ####
-[*.{cs,vb}]
-
-# Naming rules
-
-dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.symbols = types_and_namespaces
-dotnet_naming_rule.types_and_namespaces_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.interfaces_should_be_ipascalcase.severity = suggestion
-dotnet_naming_rule.interfaces_should_be_ipascalcase.symbols = interfaces
-dotnet_naming_rule.interfaces_should_be_ipascalcase.style = ipascalcase
-
-dotnet_naming_rule.type_parameters_should_be_tpascalcase.severity = suggestion
-dotnet_naming_rule.type_parameters_should_be_tpascalcase.symbols = type_parameters
-dotnet_naming_rule.type_parameters_should_be_tpascalcase.style = tpascalcase
-
-dotnet_naming_rule.methods_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.methods_should_be_pascalcase.symbols = methods
-dotnet_naming_rule.methods_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.properties_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.properties_should_be_pascalcase.symbols = properties
-dotnet_naming_rule.properties_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.events_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.events_should_be_pascalcase.symbols = events
-dotnet_naming_rule.events_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.local_variables_should_be_camelcase.severity = suggestion
-dotnet_naming_rule.local_variables_should_be_camelcase.symbols = local_variables
-dotnet_naming_rule.local_variables_should_be_camelcase.style = camelcase
-
-dotnet_naming_rule.local_constants_should_be_camelcase.severity = suggestion
-dotnet_naming_rule.local_constants_should_be_camelcase.symbols = local_constants
-dotnet_naming_rule.local_constants_should_be_camelcase.style = camelcase
-
-dotnet_naming_rule.parameters_should_be_camelcase.severity = suggestion
-dotnet_naming_rule.parameters_should_be_camelcase.symbols = parameters
-dotnet_naming_rule.parameters_should_be_camelcase.style = camelcase
-
-dotnet_naming_rule.public_fields_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.public_fields_should_be_pascalcase.symbols = public_fields
-dotnet_naming_rule.public_fields_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.private_fields_should_be__camelcase.severity = suggestion
-dotnet_naming_rule.private_fields_should_be__camelcase.symbols = private_fields
-dotnet_naming_rule.private_fields_should_be__camelcase.style = _camelcase
-
-dotnet_naming_rule.public_constant_fields_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.public_constant_fields_should_be_pascalcase.symbols = public_constant_fields
-dotnet_naming_rule.public_constant_fields_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.private_constant_fields_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.private_constant_fields_should_be_pascalcase.symbols = private_constant_fields
-dotnet_naming_rule.private_constant_fields_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.symbols = public_static_readonly_fields
-dotnet_naming_rule.public_static_readonly_fields_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.symbols = private_static_readonly_fields
-dotnet_naming_rule.private_static_readonly_fields_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.enums_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.enums_should_be_pascalcase.symbols = enums
-dotnet_naming_rule.enums_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.local_functions_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.local_functions_should_be_pascalcase.symbols = local_functions
-dotnet_naming_rule.local_functions_should_be_pascalcase.style = pascalcase
-
-dotnet_naming_rule.non_field_members_should_be_pascalcase.severity = suggestion
-dotnet_naming_rule.non_field_members_should_be_pascalcase.symbols = non_field_members
-dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase
-
-# Symbol specifications
-
-dotnet_naming_symbols.interfaces.applicable_kinds = interface
-dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interfaces.required_modifiers =
-
-dotnet_naming_symbols.enums.applicable_kinds = enum
-dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.enums.required_modifiers =
-
-dotnet_naming_symbols.events.applicable_kinds = event
-dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.events.required_modifiers =
-
-dotnet_naming_symbols.methods.applicable_kinds = method
-dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.methods.required_modifiers =
-
-dotnet_naming_symbols.properties.applicable_kinds = property
-dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.properties.required_modifiers =
-
-dotnet_naming_symbols.public_fields.applicable_kinds = field
-dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal
-dotnet_naming_symbols.public_fields.required_modifiers =
-
-dotnet_naming_symbols.private_fields.applicable_kinds = field
-dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
-dotnet_naming_symbols.private_fields.required_modifiers =
-
-dotnet_naming_symbols.private_static_fields.applicable_kinds = field
-dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
-dotnet_naming_symbols.private_static_fields.required_modifiers = static
-
-dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum
-dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types_and_namespaces.required_modifiers =
-
-dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
-dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers =
-
-dotnet_naming_symbols.type_parameters.applicable_kinds = namespace
-dotnet_naming_symbols.type_parameters.applicable_accessibilities = *
-dotnet_naming_symbols.type_parameters.required_modifiers =
-
-dotnet_naming_symbols.private_constant_fields.applicable_kinds = field
-dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
-dotnet_naming_symbols.private_constant_fields.required_modifiers = const
-
-dotnet_naming_symbols.local_variables.applicable_kinds = local
-dotnet_naming_symbols.local_variables.applicable_accessibilities = local
-dotnet_naming_symbols.local_variables.required_modifiers =
-
-dotnet_naming_symbols.local_constants.applicable_kinds = local
-dotnet_naming_symbols.local_constants.applicable_accessibilities = local
-dotnet_naming_symbols.local_constants.required_modifiers = const
-
-dotnet_naming_symbols.parameters.applicable_kinds = parameter
-dotnet_naming_symbols.parameters.applicable_accessibilities = *
-dotnet_naming_symbols.parameters.required_modifiers =
-
-dotnet_naming_symbols.public_constant_fields.applicable_kinds = field
-dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal
-dotnet_naming_symbols.public_constant_fields.required_modifiers = const
-
-dotnet_naming_symbols.public_static_readonly_fields.applicable_kinds = field
-dotnet_naming_symbols.public_static_readonly_fields.applicable_accessibilities = public, internal
-dotnet_naming_symbols.public_static_readonly_fields.required_modifiers = readonly, static
-
-dotnet_naming_symbols.private_static_readonly_fields.applicable_kinds = field
-dotnet_naming_symbols.private_static_readonly_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
-dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readonly, static
-
-dotnet_naming_symbols.local_functions.applicable_kinds = local_function
-dotnet_naming_symbols.local_functions.applicable_accessibilities = *
-dotnet_naming_symbols.local_functions.required_modifiers =
-
-# Naming styles
-
-dotnet_naming_style.pascalcase.required_prefix =
-dotnet_naming_style.pascalcase.required_suffix =
-dotnet_naming_style.pascalcase.word_separator =
-dotnet_naming_style.pascalcase.capitalization = pascal_case
-
-dotnet_naming_style.ipascalcase.required_prefix = I
-dotnet_naming_style.ipascalcase.required_suffix =
-dotnet_naming_style.ipascalcase.word_separator =
-dotnet_naming_style.ipascalcase.capitalization = pascal_case
-
-dotnet_naming_style.tpascalcase.required_prefix = T
-dotnet_naming_style.tpascalcase.required_suffix =
-dotnet_naming_style.tpascalcase.word_separator =
-dotnet_naming_style.tpascalcase.capitalization = pascal_case
-
-dotnet_naming_style._camelcase.required_prefix = _
-dotnet_naming_style._camelcase.required_suffix =
-dotnet_naming_style._camelcase.word_separator =
-dotnet_naming_style._camelcase.capitalization = camel_case
-
-dotnet_naming_style.camelcase.required_prefix =
-dotnet_naming_style.camelcase.required_suffix =
-dotnet_naming_style.camelcase.word_separator =
-dotnet_naming_style.camelcase.capitalization = camel_case
-
-dotnet_naming_style.s_camelcase.required_prefix = s_
-dotnet_naming_style.s_camelcase.required_suffix =
-dotnet_naming_style.s_camelcase.word_separator =
-dotnet_naming_style.s_camelcase.capitalization = camel_case
diff --git a/CleanArchitecture.Blazor.nuspec b/CleanArchitecture.Blazor.nuspec
index 95bad9fa4..50a1cb967 100644
--- a/CleanArchitecture.Blazor.nuspec
+++ b/CleanArchitecture.Blazor.nuspec
@@ -1,37 +1,39 @@
-
- CleanArchitecture.Blazor.Solution.Template
- 1.0.0-preview.17
- Clean Architecture Blazor Solution Template
- hl.z
- Clean Architecture Blazor Solution Template for .NET 8.
-
- A Clean Architecture Blazor Server Solution Template for creating a Single-Page Application (SPA) with ASP.NET Core.
-
-
- 1.0.0-preview.17
- - 🌈 support.net 8
-
+
+ CleanArchitecture.Blazor.Solution.Template
+ 1.0.0-preview.17
+ Clean Architecture Blazor Solution Template
+ hl.z
+ Clean Architecture Blazor Solution Template for .NET 8.
+
+ A Clean Architecture Blazor Server Solution Template for creating a Single-Page Application (SPA) with
+ ASP.NET Core.
+
+
+ 1.0.0-preview.17
+ - 🌈 support.net 8
+
- https://github.com/neozhu/CleanArchitectureWithBlazorServer
-
+ https://github.com/neozhu/CleanArchitectureWithBlazorServer
+
- MIT
- false
- clean-architecture blazor server application project template csharp
- icon.png
- README.md
+ MIT
+ false
+ clean-architecture blazor server application project template csharp
+ icon.png
+ README.md
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/README.md b/README.md
index 2dfd22580..918db647d 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,8 @@ Blazor technology.
## Docker compose https deployment
- Create self-signed development certificates for the project
- - cmd: `dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\CleanArchitecture.Blazor.Server.UI.pfx -p Password@123`
+ -
+ cmd: `dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\CleanArchitecture.Blazor.Server.UI.pfx -p Password@123`
- cmd: `dotnet dev-certs https --trust`
- Manage User secrets to save the password
- cmd: `dotnet user-secrets init`
@@ -52,24 +53,26 @@ Blazor technology.
### Install CleanArchitecture CodeGenerator For Blazor App
+
- Open Manage Extensions Search with `CleanArchitecture CodeGenerator For Blaozr App`
-
+ 
- Download to Install
### CleanArchitecture CodeGenerator For Blazor App Repo
+
- https://github.com/neozhu/CleanArchitectureCodeGenerator
- The code generator can automatically generate the standard code
- Application Layer Code
-
+
- 
- Domain Event
-
+
- 
- Blazor UI Layer Code
-
+
- 
- Task List
-
+
- 
## How to install solution templates
@@ -77,7 +80,7 @@ Blazor technology.
- install the project template
- run CLI: `dotnet new install ./`
- run CLI: `dotnet new list`
-
+
- create a solution with the template
@@ -90,12 +93,10 @@ Blazor technology.
- create a new project from Clean Architecture for Blazor Server Solution
-
-
-
## Why I chose Blazor Server
-- I hate switching between C# and JavaScript at the same time in order to develop a project, which is why I opted for Blazor Server.
+- I hate switching between C# and JavaScript at the same time in order to develop a project, which is why I opted for
+ Blazor Server.
## Characteristic
diff --git a/docker-compose.dcproj b/docker-compose.dcproj
index 591947d0e..0290d0819 100644
--- a/docker-compose.dcproj
+++ b/docker-compose.dcproj
@@ -1,22 +1,22 @@
-
- 2.1
- Linux
- 6bd2ec46-fa8f-44f3-af33-903bbb347116
- LaunchBrowser
- {Scheme}://localhost:{ServicePort}
- dashboard
-
-
-
-
-
-
-
-
-
-
-
-
+
+ 2.1
+ Linux
+ 6bd2ec46-fa8f-44f3-af33-903bbb347116
+ LaunchBrowser
+ {Scheme}://localhost:{ServicePort}
+ dashboard
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 98026a1a6..65ec4b7ce 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -14,8 +14,8 @@ services:
#- ASPNETCORE_Kestrel__Certificates__Default__Password=Password@123
#- ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/CleanArchitecture.Blazor.Server.UI.pfx
volumes:
- - ${APPDATA}\microsoft\UserSecrets\:/root/.microsoft/usersecrets:ro
- - ~/.aspnet/https:/root/.aspnet/https:ro
+ - ${APPDATA}\microsoft\UserSecrets\:/root/.microsoft/usersecrets:ro
+ - ~/.aspnet/https:/root/.aspnet/https:ro
ports:
- "5000:80"
- "5001:443"
diff --git a/src/Application/Application.csproj b/src/Application/Application.csproj
index 97ce5c1c6..fb5fe62e5 100644
--- a/src/Application/Application.csproj
+++ b/src/Application/Application.csproj
@@ -8,25 +8,25 @@
default
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/Application/Common/EventHandlers/CreatedEventHandler.cs b/src/Application/Common/EventHandlers/CreatedEventHandler.cs
index 543145f68..c45b4ec94 100644
--- a/src/Application/Common/EventHandlers/CreatedEventHandler.cs
+++ b/src/Application/Common/EventHandlers/CreatedEventHandler.cs
@@ -19,3 +19,4 @@
// return Task.CompletedTask;
// }
//}
+
diff --git a/src/Application/Common/EventHandlers/DeletedEventHandler.cs b/src/Application/Common/EventHandlers/DeletedEventHandler.cs
index 777a960dc..2cf348dc0 100644
--- a/src/Application/Common/EventHandlers/DeletedEventHandler.cs
+++ b/src/Application/Common/EventHandlers/DeletedEventHandler.cs
@@ -18,3 +18,4 @@
// return Task.CompletedTask;
// }
//}
+
diff --git a/src/Application/Common/EventHandlers/UpdatedEventHandler.cs b/src/Application/Common/EventHandlers/UpdatedEventHandler.cs
index 6204f59fe..af6b7d705 100644
--- a/src/Application/Common/EventHandlers/UpdatedEventHandler.cs
+++ b/src/Application/Common/EventHandlers/UpdatedEventHandler.cs
@@ -18,3 +18,4 @@
// return Task.CompletedTask;
// }
//}
+
diff --git a/src/Application/Common/ExceptionHandlers/ConflictException.cs b/src/Application/Common/ExceptionHandlers/ConflictException.cs
index 0716d42d3..71477085c 100644
--- a/src/Application/Common/ExceptionHandlers/ConflictException.cs
+++ b/src/Application/Common/ExceptionHandlers/ConflictException.cs
@@ -1,8 +1,11 @@
+using System.Net;
+
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
+
public class ConflictException : ServerException
{
public ConflictException(string message)
- : base(message, System.Net.HttpStatusCode.Conflict)
+ : base(message, HttpStatusCode.Conflict)
{
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/DbExceptionHandler.cs b/src/Application/Common/ExceptionHandlers/DbExceptionHandler.cs
index 2918a73e8..4d02021d6 100644
--- a/src/Application/Common/ExceptionHandlers/DbExceptionHandler.cs
+++ b/src/Application/Common/ExceptionHandlers/DbExceptionHandler.cs
@@ -29,7 +29,6 @@ private static string[] GetErrors(DbUpdateException exception)
&& exception.InnerException != null
&& exception.InnerException is SqlException sqlException
)
- {
switch (sqlException.Number)
{
case 2627: // Unique constraint error
@@ -52,7 +51,6 @@ private static string[] GetErrors(DbUpdateException exception)
errors.Add("A Missing Parameter has led to Error While Creating the record(s)!");
break;
}
- }
return errors.ToArray();
diff --git a/src/Application/Common/ExceptionHandlers/ForbiddenAccessException.cs b/src/Application/Common/ExceptionHandlers/ForbiddenAccessException.cs
index a57fed2c7..98eb1e63f 100644
--- a/src/Application/Common/ExceptionHandlers/ForbiddenAccessException.cs
+++ b/src/Application/Common/ExceptionHandlers/ForbiddenAccessException.cs
@@ -1,9 +1,13 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Net;
+
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
public class ForbiddenException : ServerException
{
- public ForbiddenException(string message) : base(message,System.Net.HttpStatusCode.Forbidden) { }
-}
+ public ForbiddenException(string message) : base(message, HttpStatusCode.Forbidden)
+ {
+ }
+}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/InternalServerException.cs b/src/Application/Common/ExceptionHandlers/InternalServerException.cs
index c81ea2496..c7fe6669b 100644
--- a/src/Application/Common/ExceptionHandlers/InternalServerException.cs
+++ b/src/Application/Common/ExceptionHandlers/InternalServerException.cs
@@ -1,8 +1,9 @@
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
+
public class InternalServerException : ServerException
{
public InternalServerException(string message)
- : base(message, System.Net.HttpStatusCode.InternalServerError)
+ : base(message)
{
}
}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/NotFoundException.cs b/src/Application/Common/ExceptionHandlers/NotFoundException.cs
index ffe1808ff..2c5529f0a 100644
--- a/src/Application/Common/ExceptionHandlers/NotFoundException.cs
+++ b/src/Application/Common/ExceptionHandlers/NotFoundException.cs
@@ -1,18 +1,19 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Net;
+
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
public class NotFoundException : ServerException
{
-
-
public NotFoundException(string message)
- : base(message,System.Net.HttpStatusCode.NotFound)
+ : base(message, HttpStatusCode.NotFound)
{
}
- public NotFoundException(string name, object key)
- : base($"Entity \"{name}\" ({key}) was not found.", System.Net.HttpStatusCode.NotFound)
+
+ public NotFoundException(string name, object key)
+ : base($"Entity \"{name}\" ({key}) was not found.", HttpStatusCode.NotFound)
{
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/ServerException.cs b/src/Application/Common/ExceptionHandlers/ServerException.cs
index 5a6aa9771..2de77dfaf 100644
--- a/src/Application/Common/ExceptionHandlers/ServerException.cs
+++ b/src/Application/Common/ExceptionHandlers/ServerException.cs
@@ -1,16 +1,17 @@
using System.Net;
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
+
public class ServerException : Exception
{
- public IEnumerable ErrorMessages { get; }
-
- public HttpStatusCode StatusCode { get; }
-
public ServerException(string message, HttpStatusCode statusCode = HttpStatusCode.InternalServerError)
: base(message)
{
- ErrorMessages = new string[] { message };
+ ErrorMessages = new[] { message };
StatusCode = statusCode;
}
+
+ public IEnumerable ErrorMessages { get; }
+
+ public HttpStatusCode StatusCode { get; }
}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/ServerExceptionHandler.cs b/src/Application/Common/ExceptionHandlers/ServerExceptionHandler.cs
index 7bd1cd996..d10e379a9 100644
--- a/src/Application/Common/ExceptionHandlers/ServerExceptionHandler.cs
+++ b/src/Application/Common/ExceptionHandlers/ServerExceptionHandler.cs
@@ -1,7 +1,9 @@
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
-public class ServerExceptionHandler : IRequestExceptionHandler
+
+public class
+ ServerExceptionHandler : IRequestExceptionHandler
where TRequest : IRequest>
- where TResponse: Result
+ where TResponse : Result
where TException : ServerException
{
private readonly ILogger> _logger;
@@ -11,11 +13,10 @@ public ServerExceptionHandler(ILogger state, CancellationToken cancellationToken)
+ public Task Handle(TRequest request, TException exception, RequestExceptionHandlerState state,
+ CancellationToken cancellationToken)
{
- state.SetHandled((TResponse)Result.Failure(new string[] { exception.Message }));
+ state.SetHandled((TResponse)Result.Failure(exception.Message));
return Task.CompletedTask;
}
-
-
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/UnauthorizedException.cs b/src/Application/Common/ExceptionHandlers/UnauthorizedException.cs
index c6505be82..21419e0bd 100644
--- a/src/Application/Common/ExceptionHandlers/UnauthorizedException.cs
+++ b/src/Application/Common/ExceptionHandlers/UnauthorizedException.cs
@@ -1,9 +1,11 @@
+using System.Net;
+
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
+
public class UnauthorizedException : ServerException
{
public UnauthorizedException(string message)
- : base(message, System.Net.HttpStatusCode.Unauthorized)
+ : base(message, HttpStatusCode.Unauthorized)
{
}
-}
-
+}
\ No newline at end of file
diff --git a/src/Application/Common/ExceptionHandlers/ValidationExceptionHandler.cs b/src/Application/Common/ExceptionHandlers/ValidationExceptionHandler.cs
index ab4d336ec..15cec28f7 100644
--- a/src/Application/Common/ExceptionHandlers/ValidationExceptionHandler.cs
+++ b/src/Application/Common/ExceptionHandlers/ValidationExceptionHandler.cs
@@ -1,7 +1,10 @@
namespace CleanArchitecture.Blazor.Application.Common.ExceptionHandlers;
-public class ValidationExceptionHandler : IRequestExceptionHandler
+
+public class
+ ValidationExceptionHandler : IRequestExceptionHandler
where TRequest : IRequest>
- where TResponse: Result
+ where TResponse : Result
where TException : ValidationException
{
private readonly ILogger> _logger;
@@ -11,9 +14,11 @@ public ValidationExceptionHandler(ILogger state, CancellationToken cancellationToken)
+ public Task Handle(TRequest request, TException exception, RequestExceptionHandlerState state,
+ CancellationToken cancellationToken)
{
- state.SetHandled((TResponse)Result.Failure(exception.Errors.Select(x => x.ErrorMessage).Distinct().ToArray()));
+ state.SetHandled(
+ (TResponse)Result.Failure(exception.Errors.Select(x => x.ErrorMessage).Distinct().ToArray()));
return Task.CompletedTask;
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Extensions/DataRowExtensions.cs b/src/Application/Common/Extensions/DataRowExtensions.cs
index b7aac1624..675b541f3 100644
--- a/src/Application/Common/Extensions/DataRowExtensions.cs
+++ b/src/Application/Common/Extensions/DataRowExtensions.cs
@@ -7,30 +7,50 @@ public static class DataRowExtensions
{
public static T? FieldOrDefault(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString()) ) ? default(T) : row.Field(columnName);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default
+ : row.Field(columnName);
}
+
public static decimal? FieldDecimalOrNull(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? default(decimal?) : Convert.ToDecimal(row[columnName]);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default(decimal?)
+ : Convert.ToDecimal(row[columnName]);
}
+
public static decimal FieldDecimalOrDefault(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? default(decimal) : Convert.ToDecimal(row[columnName]);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default
+ : Convert.ToDecimal(row[columnName]);
}
+
public static int? FieldIntOrNull(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? default(int?) : Convert.ToInt32(row[columnName]);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default(int?)
+ : Convert.ToInt32(row[columnName]);
}
+
public static int FieldIntOrDefault(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? default(int) : Convert.ToInt32(row[columnName]);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default
+ : Convert.ToInt32(row[columnName]);
}
+
public static DateTime? FieldDateTimeOrNull(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? default(DateTime?) : Convert.ToDateTime(row[columnName], System.Globalization.CultureInfo.InvariantCulture);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? default(DateTime?)
+ : Convert.ToDateTime(row[columnName], CultureInfo.InvariantCulture);
}
+
public static DateTime FieldDateTimeOrDefaultNow(this DataRow row, string columnName)
{
- return (row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())) ? DateTime.Now : Convert.ToDateTime(row[columnName], System.Globalization.CultureInfo.InvariantCulture);
+ return row.IsNull(columnName) || string.IsNullOrEmpty(row[columnName].ToString())
+ ? DateTime.Now
+ : Convert.ToDateTime(row[columnName], CultureInfo.InvariantCulture);
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Extensions/DescriptionAttributeExtensions.cs b/src/Application/Common/Extensions/DescriptionAttributeExtensions.cs
index a630b5e73..ed0938de7 100644
--- a/src/Application/Common/Extensions/DescriptionAttributeExtensions.cs
+++ b/src/Application/Common/Extensions/DescriptionAttributeExtensions.cs
@@ -1,41 +1,36 @@
namespace CleanArchitecture.Blazor.Application.Common.Extensions;
+
public static class DescriptionAttributeExtensions
{
public static string GetDescription(this Enum e)
{
var name = e.ToString();
var memberInfo = e.GetType().GetMember(name)[0];
- var descriptionAttributes = memberInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: false);
- if (descriptionAttributes.Any())
- {
- return ((DescriptionAttribute)descriptionAttributes.First()).Description;
- }
+ var descriptionAttributes = memberInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
+ if (descriptionAttributes.Any()) return ((DescriptionAttribute)descriptionAttributes.First()).Description;
return name;
}
- public static string GetMemberDescription(this T t, Expression> property) where T : class
+
+ public static string GetMemberDescription(this T t, Expression> property)
+ where T : class
{
if (t is null) t = Activator.CreateInstance();
var memberName = ((MemberExpression)property.Body).Member.Name;
var memberInfo = typeof(T).GetMember(memberName).FirstOrDefault();
if (memberInfo != null)
{
- var descriptionAttributes = memberInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: false);
- if (descriptionAttributes.Any())
- {
- return ((DescriptionAttribute)descriptionAttributes.First()).Description;
- }
+ var descriptionAttributes = memberInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
+ if (descriptionAttributes.Any()) return ((DescriptionAttribute)descriptionAttributes.First()).Description;
}
+
return memberName;
}
+
public static string GetClassDescription(this T t) where T : class
{
if (t is null) t = (T)Activator.CreateInstance(typeof(T))!;
- var descriptionAttributes = t.GetType().GetCustomAttributes(typeof(DescriptionAttribute), inherit: false);
- if (descriptionAttributes.Any())
- {
- return (descriptionAttributes.First() as DescriptionAttribute)!.Description;
- }
+ var descriptionAttributes = t.GetType().GetCustomAttributes(typeof(DescriptionAttribute), false);
+ if (descriptionAttributes.Any()) return (descriptionAttributes.First() as DescriptionAttribute)!.Description;
return nameof(t);
-
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Extensions/QueryableExtensions.cs b/src/Application/Common/Extensions/QueryableExtensions.cs
index 461a0caa9..953baa39a 100644
--- a/src/Application/Common/Extensions/QueryableExtensions.cs
+++ b/src/Application/Common/Extensions/QueryableExtensions.cs
@@ -9,25 +9,32 @@ namespace CleanArchitecture.Blazor.Application.Common.Extensions;
public static class QueryableExtensions
{
///
- /// Extension method to provided query by specification.
+ /// Extension method to provided query by specification.
///
///
- /// This method uses the SpecificationEvaluator to evaluate and modify the provided query based on the given specification.
+ /// This method uses the SpecificationEvaluator to evaluate and modify the provided query based on the given
+ /// specification.
///
/// Type of the entities in the query
/// The original query to which the specification should be applied
/// The specification to apply to the query
- /// Optional flag to determine if only the criteria should be evaluated or other configurations as well
+ ///
+ /// Optional flag to determine if only the criteria should be evaluated or other
+ /// configurations as well
+ ///
/// The modified query with the specification applied
- public static IQueryable ApplySpecification(this IQueryable query, ISpecification spec, bool evaluateCriteriaOnly=false) where T : class, IEntity
+ public static IQueryable ApplySpecification(this IQueryable query, ISpecification spec,
+ bool evaluateCriteriaOnly = false) where T : class, IEntity
{
return SpecificationEvaluator.Default.GetQuery(query, spec, evaluateCriteriaOnly);
}
+
///
- /// Extension method to provided ordered queryable data to a paginated result set.
+ /// Extension method to provided ordered queryable data to a paginated result set.
///
///
- /// This method will apply the given specification to the query, paginate the results, and project them to the desired result type.
+ /// This method will apply the given specification to the query, paginate the results, and project them to the desired
+ /// result type.
///
/// Source type of the entities in the query
/// Destination type to which the entities should be projected
@@ -38,14 +45,16 @@ public static IQueryable ApplySpecification(this IQueryable query, ISpe
/// Configuration for the projection
/// Optional cancellation token to cancel the operation
/// The paginated and projected data
- public static async Task> ProjectToPaginatedDataAsync(this IOrderedQueryable query, ISpecification spec,int pageNumber,int pageSize, IConfigurationProvider configuration, CancellationToken cancellationToken = default) where T : class, IEntity
+ public static async Task> ProjectToPaginatedDataAsync(
+ this IOrderedQueryable query, ISpecification spec, int pageNumber, int pageSize,
+ IConfigurationProvider configuration, CancellationToken cancellationToken = default) where T : class, IEntity
{
-
var specificationEvaluator = SpecificationEvaluator.Default;
- var count =await specificationEvaluator.GetQuery(query,spec).CountAsync();
- var data = await specificationEvaluator.GetQuery(query.AsNoTracking(), spec).Skip((pageNumber-1)* pageSize).Take(pageSize)
+ var count = await specificationEvaluator.GetQuery(query, spec).CountAsync();
+ var data = await specificationEvaluator.GetQuery(query.AsNoTracking(), spec).Skip((pageNumber - 1) * pageSize)
+ .Take(pageSize)
.ProjectTo(configuration)
.ToListAsync(cancellationToken);
return new PaginatedData(data, count, pageNumber, pageSize);
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Extensions/StringExtensions.cs b/src/Application/Common/Extensions/StringExtensions.cs
index dde7c4305..938b327af 100644
--- a/src/Application/Common/Extensions/StringExtensions.cs
+++ b/src/Application/Common/Extensions/StringExtensions.cs
@@ -1,6 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System.Security.Cryptography;
using System.Text;
namespace CleanArchitecture.Blazor.Application.Common.Extensions;
@@ -9,23 +10,20 @@ public static class StringExtensions
{
public static string ToMD5(this string input)
{
- using (System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create())
+ using (var md5 = MD5.Create())
{
var encoding = Encoding.ASCII;
var data = encoding.GetBytes(input);
Span hashBytes = stackalloc byte[16];
- md5.TryComputeHash(data, hashBytes, out int written);
+ md5.TryComputeHash(data, hashBytes, out var written);
if (written != hashBytes.Length)
throw new OverflowException();
Span stringBuffer = stackalloc char[32];
- for (int i = 0; i < hashBytes.Length; i++)
- {
- hashBytes[i].TryFormat(stringBuffer.Slice(2 * i), out _, "x2");
- }
+ for (var i = 0; i < hashBytes.Length; i++) hashBytes[i].TryFormat(stringBuffer.Slice(2 * i), out _, "x2");
return new string(stringBuffer);
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Extensions/ValidationExtensions.cs b/src/Application/Common/Extensions/ValidationExtensions.cs
index 09340114c..15771a9b7 100644
--- a/src/Application/Common/Extensions/ValidationExtensions.cs
+++ b/src/Application/Common/Extensions/ValidationExtensions.cs
@@ -1,9 +1,12 @@
using FluentValidation.Results;
namespace CleanArchitecture.Blazor.Application.Common.Extensions;
+
public static class ValidationExtensions
{
- public static async Task> ValidateAsync(this IEnumerable> validators, ValidationContext validationContext, CancellationToken cancellationToken = default)
+ public static async Task> ValidateAsync(
+ this IEnumerable> validators, ValidationContext validationContext,
+ CancellationToken cancellationToken = default)
{
if (!validators.Any()) return new List();
@@ -23,4 +26,4 @@ public static Dictionary ToDictionary(this List g.Key, g => g.ToArray())
: new Dictionary();
}
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/Caching/ICacheInvalidatorRequest.cs b/src/Application/Common/Interfaces/Caching/ICacheInvalidatorRequest.cs
index d5a23304c..d721fdf2f 100644
--- a/src/Application/Common/Interfaces/Caching/ICacheInvalidatorRequest.cs
+++ b/src/Application/Common/Interfaces/Caching/ICacheInvalidatorRequest.cs
@@ -5,6 +5,6 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces.Caching;
public interface ICacheInvalidatorRequest : IRequest
{
- string CacheKey { get => String.Empty; }
+ string CacheKey => string.Empty;
CancellationTokenSource? SharedExpiryTokenSource { get; }
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/Caching/ICacheableRequest.cs b/src/Application/Common/Interfaces/Caching/ICacheableRequest.cs
index 3e878561b..a307d7530 100644
--- a/src/Application/Common/Interfaces/Caching/ICacheableRequest.cs
+++ b/src/Application/Common/Interfaces/Caching/ICacheableRequest.cs
@@ -5,6 +5,6 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces.Caching;
public interface ICacheableRequest : IRequest
{
- string CacheKey { get=>String.Empty; }
+ string CacheKey => string.Empty;
MemoryCacheEntryOptions? Options { get; }
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IApplicationDbContext.cs b/src/Application/Common/Interfaces/IApplicationDbContext.cs
index cc5bbc619..b10fb1b6a 100644
--- a/src/Application/Common/Interfaces/IApplicationDbContext.cs
+++ b/src/Application/Common/Interfaces/IApplicationDbContext.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
-using CleanArchitecture.Blazor.Domain.Entities;
using Microsoft.EntityFrameworkCore.ChangeTracking;
namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
@@ -18,4 +17,4 @@ public interface IApplicationDbContext
DbSet Customers { get; set; }
ChangeTracker ChangeTracker { get; }
Task SaveChangesAsync(CancellationToken cancellationToken);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IApplicationHubWrapper.cs b/src/Application/Common/Interfaces/IApplicationHubWrapper.cs
index 5d668e444..1fdaa56ce 100644
--- a/src/Application/Common/Interfaces/IApplicationHubWrapper.cs
+++ b/src/Application/Common/Interfaces/IApplicationHubWrapper.cs
@@ -5,4 +5,4 @@ public interface IApplicationHubWrapper
{
Task JobStarted(string message);
Task JobCompleted(string message);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IApplicationSettings.cs b/src/Application/Common/Interfaces/IApplicationSettings.cs
index 5e14f95e4..f40f0a7c4 100644
--- a/src/Application/Common/Interfaces/IApplicationSettings.cs
+++ b/src/Application/Common/Interfaces/IApplicationSettings.cs
@@ -1,4 +1,5 @@
namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
+
public interface IApplicationSettings
{
///
@@ -16,4 +17,4 @@ public interface IApplicationSettings
/// The application name / title
///
string AppName { get; }
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/ICurrentUserService.cs b/src/Application/Common/Interfaces/ICurrentUserService.cs
index ee75fa8ff..f265df840 100644
--- a/src/Application/Common/Interfaces/ICurrentUserService.cs
+++ b/src/Application/Common/Interfaces/ICurrentUserService.cs
@@ -8,6 +8,5 @@ public interface ICurrentUserService
string? UserId { get; set; }
string? UserName { get; set; }
string? TenantId { get; set; }
- string? TenantName { get; set;}
-
-}
+ string? TenantName { get; set; }
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IDateTime.cs b/src/Application/Common/Interfaces/IDateTime.cs
index f34020874..b666421a3 100644
--- a/src/Application/Common/Interfaces/IDateTime.cs
+++ b/src/Application/Common/Interfaces/IDateTime.cs
@@ -6,4 +6,4 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
public interface IDateTime
{
DateTime Now { get; }
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IDictionaryService.cs b/src/Application/Common/Interfaces/IDictionaryService.cs
index ae3c4195e..687317937 100644
--- a/src/Application/Common/Interfaces/IDictionaryService.cs
+++ b/src/Application/Common/Interfaces/IDictionaryService.cs
@@ -6,4 +6,4 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
public interface IDictionaryService
{
Task> Fetch(string typeName);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IDocumentOcrJob.cs b/src/Application/Common/Interfaces/IDocumentOcrJob.cs
index 03fc2f106..8f11b31cf 100644
--- a/src/Application/Common/Interfaces/IDocumentOcrJob.cs
+++ b/src/Application/Common/Interfaces/IDocumentOcrJob.cs
@@ -7,4 +7,4 @@ public interface IDocumentOcrJob
{
void Do(int id);
Task Recognition(int id, CancellationToken cancellationToken);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IExcelService.cs b/src/Application/Common/Interfaces/IExcelService.cs
index 4e013167c..200dcf913 100644
--- a/src/Application/Common/Interfaces/IExcelService.cs
+++ b/src/Application/Common/Interfaces/IExcelService.cs
@@ -6,11 +6,12 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
public interface IExcelService
{
Task CreateTemplateAsync(IEnumerable fields, string sheetName = "Sheet1");
+
Task ExportAsync(IEnumerable data
, Dictionary> mappers
-, string sheetName = "Sheet1");
+ , string sheetName = "Sheet1");
Task>> ImportAsync(byte[] data
, Dictionary> mappers
, string sheetName = "Sheet1");
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IMailService.cs b/src/Application/Common/Interfaces/IMailService.cs
index ebc270985..02e02ceeb 100644
--- a/src/Application/Common/Interfaces/IMailService.cs
+++ b/src/Application/Common/Interfaces/IMailService.cs
@@ -9,4 +9,4 @@ public interface IMailService
{
Task SendAsync(string to, string subject, string body);
Task SendAsync(string to, string subject, string template, object model);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IPDFService.cs b/src/Application/Common/Interfaces/IPDFService.cs
index 6a88f6594..33ef2af8b 100644
--- a/src/Application/Common/Interfaces/IPDFService.cs
+++ b/src/Application/Common/Interfaces/IPDFService.cs
@@ -8,5 +8,4 @@ public interface IPDFService
Task ExportAsync(IEnumerable data
, Dictionary> mappers
, string title, bool landscape);
-
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IPicklistService.cs b/src/Application/Common/Interfaces/IPicklistService.cs
index af1d20187..eab7a5fc5 100644
--- a/src/Application/Common/Interfaces/IPicklistService.cs
+++ b/src/Application/Common/Interfaces/IPicklistService.cs
@@ -1,11 +1,12 @@
using CleanArchitecture.Blazor.Application.Features.KeyValues.DTOs;
namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
+
public interface IPicklistService
{
- List DataSource { get; }
+ List DataSource { get; }
event Action? OnChange;
Task InitializeAsync();
void Initialize();
Task Refresh();
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IResult.cs b/src/Application/Common/Interfaces/IResult.cs
index 413097c8d..5f5c74540 100644
--- a/src/Application/Common/Interfaces/IResult.cs
+++ b/src/Application/Common/Interfaces/IResult.cs
@@ -9,7 +9,8 @@ public interface IResult
bool Succeeded { get; init; }
}
+
public interface IResult : IResult
{
T? Data { get; }
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IService.cs b/src/Application/Common/Interfaces/IService.cs
index 0bdb58d46..a3ff17305 100644
--- a/src/Application/Common/Interfaces/IService.cs
+++ b/src/Application/Common/Interfaces/IService.cs
@@ -5,4 +5,4 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
public interface IService
{
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IUploadService.cs b/src/Application/Common/Interfaces/IUploadService.cs
index 1c1708658..e42e408d2 100644
--- a/src/Application/Common/Interfaces/IUploadService.cs
+++ b/src/Application/Common/Interfaces/IUploadService.cs
@@ -6,4 +6,4 @@ namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
public interface IUploadService
{
Task UploadAsync(UploadRequest request);
-}
+}
\ No newline at end of file
diff --git a/src/Application/Common/Interfaces/IValidationService.cs b/src/Application/Common/Interfaces/IValidationService.cs
index ef8b52225..a4110f58e 100644
--- a/src/Application/Common/Interfaces/IValidationService.cs
+++ b/src/Application/Common/Interfaces/IValidationService.cs
@@ -1,15 +1,22 @@
using FluentValidation.Internal;
namespace CleanArchitecture.Blazor.Application.Common.Interfaces;
+
public interface IValidationService
{
Func