From 5c861f573b86bbeab0885eb5d9b3ae1e98ed8104 Mon Sep 17 00:00:00 2001 From: bharathwajv Date: Sun, 15 May 2022 23:04:00 +0530 Subject: [PATCH] removed unused files --- blazor-wasm-boilerplate-main/.dockerignore | 25 - blazor-wasm-boilerplate-main/.editorconfig | 158 - .../.github/FUNDING.yml | 3 - .../.github/dependabot.yml | 11 - .../.github/workflows/dotnet.yml | 25 - blazor-wasm-boilerplate-main/.gitignore | 454 -- .../.template.config/icon.png | Bin 153939 -> 0 bytes .../.template.config/ide.host.json | 5 - .../.template.config/template.json | 51 - .../.vscode/launch.json | 12 - .../.vscode/settings.json | 8 - .../.vscode/tasks.json | 42 - .../Directory.Build.props | 27 - .../Directory.Build.targets | 5 - blazor-wasm-boilerplate-main/Dockerfile | 26 - .../FSH.BlazorWebAssembly.nuspec | 25 - .../FSH.BlazorWebAssembly.sln | 62 - blazor-wasm-boilerplate-main/LICENSE | 21 - blazor-wasm-boilerplate-main/README.md | 82 - blazor-wasm-boilerplate-main/dotnet.ruleset | 164 - blazor-wasm-boilerplate-main/global.json | 7 - blazor-wasm-boilerplate-main/icon.png | Bin 153939 -> 0 bytes .../scripts/nswag-regen.ps1 | 20 - .../scripts/pull-shared-from-webapi.ps1 | 40 - .../Client.Infrastructure/ApiClient/FSHApi.cs | 6849 ----------------- .../ApiClient/IApiService.cs | 5 - .../ApiClient/nswag.json | 100 - .../Auth/AuthProvider.cs | 7 - .../Auth/AuthorizationServiceExtensions.cs | 10 - .../AzureAd/AzureAdAuthenticationService.cs | 34 - .../AzureAdAuthorizationMessageHandler.cs | 12 - .../AzureAd/AzureAdClaimsPrincipalFactory.cs | 73 - .../Auth/IAuthenticationService.cs | 16 - .../Auth/Jwt/AccessTokenProviderAccessor.cs | 17 - .../Jwt/JwtAuthenticationHeaderHandler.cs | 34 - .../Auth/Jwt/JwtAuthenticationService.cs | 222 - .../Auth/MustHavePermissionAttribute.cs | 10 - .../src/Client.Infrastructure/Auth/Startup.cs | 47 - .../Client.Infrastructure.csproj | 39 - .../Common/AccessTokenProviderExtensions.cs | 12 - .../Common/ApplicationConstants.cs | 15 - .../Common/ConfigNames.cs | 7 - .../Common/IAppService.cs | 5 - .../Common/LocalizationConstants.cs | 21 - .../Common/StorageConstants.cs | 14 - .../src/Client.Infrastructure/GlobalUsings.cs | 7 - .../Notifications/ConnectionState.cs | 8 - .../Notifications/ConnectionStateChanged.cs | 5 - .../Notifications/INotificationPublisher.cs | 8 - .../Notifications/NotificationPublisher.cs | 24 - .../Notifications/NotificationWrapper.cs | 12 - .../Notifications/Startup.cs | 34 - .../Preferences/ClientPreference.cs | 15 - .../Preferences/ClientPreferenceManager.cs | 137 - .../Preferences/FshTablePreference.cs | 11 - .../Preferences/IClientPreferenceManager.cs | 14 - .../Preferences/IPreference.cs | 6 - .../Preferences/IPreferenceManager.cs | 10 - .../src/Client.Infrastructure/Startup.cs | 81 - .../Theme/CustomColors.cs | 42 - .../Theme/CustomTypography.cs | 114 - .../Client.Infrastructure/Theme/DarkTheme.cs | 44 - .../Client.Infrastructure/Theme/LightTheme.cs | 31 - .../src/Client/App.razor | 23 - .../src/Client/Client.csproj | 35 - .../Components/Common/CustomValidation.cs | 51 - .../Components/Common/ErrorHandler.razor | 2 - .../Components/Common/ErrorHandler.razor.cs | 31 - .../Components/Common/FshCustomError.razor | 1 - .../src/Client/Components/Common/FshTable.cs | 39 - .../Client/Components/Common/FshTitle.razor | 8 - .../Client/Components/Common/PersonCard.razor | 19 - .../Components/Common/PersonCard.razor.cs | 46 - .../Client/Components/Common/TablePager.razor | 3 - .../Dialogs/DeleteConfirmation.razor | 31 - .../Client/Components/Dialogs/Logout.razor | 40 - .../Components/EntityTable/AddEditModal.razor | 51 - .../EntityTable/AddEditModal.razor.cs | 49 - .../EntityTable/EntityClientTableContext.cs | 67 - .../Components/EntityTable/EntityField.cs | 35 - .../EntityTable/EntityServerTableContext.cs | 73 - .../Components/EntityTable/EntityTable.razor | 158 - .../EntityTable/EntityTable.razor.cs | 321 - .../EntityTable/EntityTableContext.cs | 197 - .../Components/EntityTable/IAddEditModal.cs | 8 - .../EntityTable/PaginationResponse.cs | 9 - .../Localization/LanguageSelector.razor | 41 - .../NotificationConnection.razor | 3 - .../NotificationConnection.razor.cs | 153 - .../NotificationConnectionStatus.razor | 49 - .../Components/ThemeManager/ColorPanel.razor | 27 - .../ThemeManager/ColorPanel.razor.cs | 24 - .../ThemeManager/DarkModePanel.razor | 17 - .../ThemeManager/DarkModePanel.razor.cs | 24 - .../Components/ThemeManager/RadiusPanel.razor | 15 - .../ThemeManager/RadiusPanel.razor.cs | 28 - .../TableCustomizationPanel.razor | 19 - .../TableCustomizationPanel.razor.cs | 74 - .../Components/ThemeManager/ThemeButton.razor | 16 - .../ThemeManager/ThemeButton.razor.cs | 10 - .../Components/ThemeManager/ThemeDrawer.razor | 28 - .../ThemeManager/ThemeDrawer.razor.cs | 96 - .../Pages/Authentication/Authentication.razor | 74 - .../Pages/Authentication/ForgotPassword.razor | 45 - .../Authentication/ForgotPassword.razor.cs | 31 - .../Client/Pages/Authentication/Login.razor | 47 - .../Pages/Authentication/Login.razor.cs | 81 - .../Pages/Authentication/SelfRegister.razor | 74 - .../Authentication/SelfRegister.razor.cs | 58 - .../Client/Pages/Catalog/BrandAutocomplete.cs | 68 - .../src/Client/Pages/Catalog/Brands.razor | 52 - .../src/Client/Pages/Catalog/Products.razor | 78 - .../Client/Pages/Catalog/Products.razor.cs | 159 - .../Pages/Identity/Account/Account.razor | 33 - .../Pages/Identity/Account/Profile.razor | 84 - .../Pages/Identity/Account/Profile.razor.cs | 101 - .../Pages/Identity/Account/Security.razor | 41 - .../Pages/Identity/Account/Security.razor.cs | 72 - .../Identity/Roles/RolePermissions.razor | 75 - .../Identity/Roles/RolePermissions.razor.cs | 114 - .../Client/Pages/Identity/Roles/Roles.razor | 33 - .../Pages/Identity/Roles/Roles.razor.cs | 60 - .../Pages/Identity/Users/UserProfile.razor | 148 - .../Pages/Identity/Users/UserProfile.razor.cs | 74 - .../Pages/Identity/Users/UserRoles.razor | 67 - .../Pages/Identity/Users/UserRoles.razor.cs | 77 - .../Client/Pages/Identity/Users/Users.razor | 46 - .../Pages/Identity/Users/Users.razor.cs | 95 - .../src/Client/Pages/Index.razor | 95 - .../Client/Pages/Multitenancy/Tenants.razor | 107 - .../Pages/Multitenancy/Tenants.razor.cs | 121 - .../UpgradeSubscriptionModal.razor | 58 - .../src/Client/Pages/Personal/AuditLogs.razor | 131 - .../Client/Pages/Personal/AuditLogs.razor.cs | 71 - .../src/Client/Pages/Personal/Dashboard.razor | 65 - .../Client/Pages/Personal/Dashboard.razor.cs | 62 - .../src/Client/Program.cs | 30 - .../src/Client/Properties/launchSettings.json | 30 - .../Components/Common/TablePager.ar.resx | 126 - .../Components/Common/TablePager.de.resx | 126 - .../Components/Common/TablePager.en.resx | 126 - .../Components/Common/TablePager.es.resx | 126 - .../Components/Common/TablePager.fr.resx | 126 - .../Components/Common/TablePager.id.resx | 126 - .../Components/Common/TablePager.it.resx | 126 - .../Components/Common/TablePager.km.resx | 126 - .../Components/Common/TablePager.nl.resx | 126 - .../Components/Common/TablePager.ru.resx | 126 - .../Components/Common/TablePager.sv.resx | 126 - .../Resources/Pages/Account/Register.ar.resx | 147 - .../Resources/Pages/Account/Register.de.resx | 147 - .../Resources/Pages/Account/Register.en.resx | 147 - .../Resources/Pages/Account/Register.es.resx | 147 - .../Resources/Pages/Account/Register.fr.resx | 147 - .../Resources/Pages/Account/Register.id.resx | 147 - .../Resources/Pages/Account/Register.it.resx | 144 - .../Resources/Pages/Account/Register.km.resx | 147 - .../Resources/Pages/Account/Register.nl.resx | 147 - .../Resources/Pages/Account/Register.ru.resx | 147 - .../Resources/Pages/Account/Register.sv.resx | 147 - .../Resources/Pages/Account/Reset.ar.resx | 132 - .../Resources/Pages/Account/Reset.de.resx | 132 - .../Resources/Pages/Account/Reset.en.resx | 132 - .../Resources/Pages/Account/Reset.es.resx | 129 - .../Resources/Pages/Account/Reset.fr.resx | 132 - .../Resources/Pages/Account/Reset.id.resx | 132 - .../Resources/Pages/Account/Reset.it.resx | 132 - .../Resources/Pages/Account/Reset.km.resx | 129 - .../Resources/Pages/Account/Reset.nl.resx | 132 - .../Resources/Pages/Account/Reset.ru.resx | 132 - .../Resources/Pages/Account/Reset.sv.resx | 132 - .../Authentication/Authentication.ar.resx | 147 - .../Authentication/Authentication.de.resx | 147 - .../Authentication/Authentication.en.resx | 147 - .../Authentication/Authentication.es.resx | 147 - .../Authentication/Authentication.fr.resx | 147 - .../Authentication/Authentication.id.resx | 147 - .../Authentication/Authentication.it.resx | 147 - .../Authentication/Authentication.km.resx | 147 - .../Authentication/Authentication.nl.resx | 147 - .../Authentication/Authentication.ru.resx | 147 - .../Authentication/Authentication.sv.resx | 147 - .../Authentication/ForgotPassword.ar.resx | 135 - .../Authentication/ForgotPassword.de.resx | 135 - .../Authentication/ForgotPassword.en.resx | 135 - .../Authentication/ForgotPassword.es.resx | 132 - .../Authentication/ForgotPassword.fr.resx | 135 - .../Authentication/ForgotPassword.id.resx | 135 - .../Authentication/ForgotPassword.it.resx | 138 - .../Authentication/ForgotPassword.km.resx | 132 - .../Authentication/ForgotPassword.nl.resx | 135 - .../Authentication/ForgotPassword.ru.resx | 135 - .../Authentication/ForgotPassword.sv.resx | 135 - .../Pages/Authentication/Login.ar.resx | 159 - .../Pages/Authentication/Login.de.resx | 162 - .../Pages/Authentication/Login.en.resx | 162 - .../Pages/Authentication/Login.es.resx | 159 - .../Pages/Authentication/Login.fr.resx | 147 - .../Pages/Authentication/Login.id.resx | 159 - .../Pages/Authentication/Login.it.resx | 156 - .../Pages/Authentication/Login.km.resx | 147 - .../Pages/Authentication/Login.nl.resx | 156 - .../Pages/Authentication/Login.ru.resx | 159 - .../Pages/Authentication/Login.sv.resx | 159 - .../Pages/Authentication/Register.ar.resx | 150 - .../Pages/Authentication/Register.de.resx | 150 - .../Pages/Authentication/Register.en.resx | 150 - .../Pages/Authentication/Register.es.resx | 150 - .../Pages/Authentication/Register.fr.resx | 150 - .../Pages/Authentication/Register.id.resx | 150 - .../Pages/Authentication/Register.it.resx | 150 - .../Pages/Authentication/Register.km.resx | 150 - .../Pages/Authentication/Register.nl.resx | 150 - .../Pages/Authentication/Register.ru.resx | 150 - .../Pages/Authentication/Register.sv.resx | 150 - .../Pages/Catalog/AddEditBrandModal.ar.resx | 153 - .../Pages/Catalog/AddEditBrandModal.de.resx | 153 - .../Pages/Catalog/AddEditBrandModal.en.resx | 153 - .../Pages/Catalog/AddEditBrandModal.es.resx | 153 - .../Pages/Catalog/AddEditBrandModal.fr.resx | 153 - .../Pages/Catalog/AddEditBrandModal.id.resx | 153 - .../Pages/Catalog/AddEditBrandModal.it.resx | 133 - .../Pages/Catalog/AddEditBrandModal.km.resx | 153 - .../Pages/Catalog/AddEditBrandModal.nl.resx | 153 - .../Pages/Catalog/AddEditBrandModal.ru.resx | 153 - .../Pages/Catalog/AddEditProductModal.ar.resx | 168 - .../Pages/Catalog/AddEditProductModal.de.resx | 168 - .../Pages/Catalog/AddEditProductModal.en.resx | 168 - .../Pages/Catalog/AddEditProductModal.es.resx | 168 - .../Pages/Catalog/AddEditProductModal.fr.resx | 168 - .../Pages/Catalog/AddEditProductModal.id.resx | 168 - .../Pages/Catalog/AddEditProductModal.it.resx | 168 - .../Pages/Catalog/AddEditProductModal.km.resx | 168 - .../Pages/Catalog/AddEditProductModal.nl.resx | 168 - .../Pages/Catalog/AddEditProductModal.ru.resx | 168 - .../Pages/Catalog/AddEditProductModal.sv.resx | 168 - .../Resources/Pages/Catalog/Brands.ar.resx | 186 - .../Resources/Pages/Catalog/Brands.de.resx | 186 - .../Resources/Pages/Catalog/Brands.en.resx | 186 - .../Resources/Pages/Catalog/Brands.es.resx | 186 - .../Resources/Pages/Catalog/Brands.fr.resx | 186 - .../Resources/Pages/Catalog/Brands.id.resx | 177 - .../Resources/Pages/Catalog/Brands.it.resx | 177 - .../Resources/Pages/Catalog/Brands.km.resx | 174 - .../Resources/Pages/Catalog/Brands.nl.resx | 186 - .../Resources/Pages/Catalog/Brands.ru.resx | 186 - .../Resources/Pages/Catalog/Brands.sv.resx | 177 - .../Resources/Pages/Catalog/Products.ar.resx | 186 - .../Resources/Pages/Catalog/Products.de.resx | 192 - .../Resources/Pages/Catalog/Products.en.resx | 192 - .../Resources/Pages/Catalog/Products.es.resx | 186 - .../Resources/Pages/Catalog/Products.fr.resx | 186 - .../Resources/Pages/Catalog/Products.id.resx | 177 - .../Resources/Pages/Catalog/Products.it.resx | 180 - .../Resources/Pages/Catalog/Products.km.resx | 168 - .../Resources/Pages/Catalog/Products.nl.resx | 186 - .../Resources/Pages/Catalog/Products.ru.resx | 186 - .../Resources/Pages/Catalog/Products.sv.resx | 177 - .../Pages/Communication/Chat.ar.resx | 147 - .../Pages/Communication/Chat.de.resx | 147 - .../Pages/Communication/Chat.en.resx | 147 - .../Pages/Communication/Chat.es.resx | 147 - .../Pages/Communication/Chat.fr.resx | 147 - .../Pages/Communication/Chat.id.resx | 147 - .../Pages/Communication/Chat.it.resx | 147 - .../Pages/Communication/Chat.km.resx | 147 - .../Pages/Communication/Chat.nl.resx | 147 - .../Pages/Communication/Chat.ru.resx | 147 - .../Pages/Communication/Chat.sv.resx | 147 - .../Resources/Pages/Content/Home.ar.resx | 192 - .../Resources/Pages/Content/Home.de.resx | 192 - .../Resources/Pages/Content/Home.en.resx | 192 - .../Resources/Pages/Content/Home.es.resx | 192 - .../Resources/Pages/Content/Home.fr.resx | 192 - .../Resources/Pages/Content/Home.id.resx | 198 - .../Resources/Pages/Content/Home.it.resx | 195 - .../Resources/Pages/Content/Home.km.resx | 192 - .../Resources/Pages/Content/Home.nl.resx | 192 - .../Resources/Pages/Content/Home.ru.resx | 192 - .../Resources/Pages/Content/Home.sv.resx | 192 - .../Resources/Pages/Content/Resources.ar.resx | 132 - .../Resources/Pages/Content/Resources.de.resx | 132 - .../Resources/Pages/Content/Resources.en.resx | 132 - .../Resources/Pages/Content/Resources.es.resx | 132 - .../Resources/Pages/Content/Resources.fr.resx | 132 - .../Resources/Pages/Content/Resources.id.resx | 132 - .../Resources/Pages/Content/Resources.it.resx | 132 - .../Resources/Pages/Content/Resources.km.resx | 132 - .../Resources/Pages/Content/Resources.nl.resx | 132 - .../Resources/Pages/Content/Resources.ru.resx | 132 - .../Resources/Pages/Content/Resources.sv.resx | 132 - .../Pages/Identity/Account/Account.ar.resx | 132 - .../Pages/Identity/Account/Account.de.resx | 132 - .../Pages/Identity/Account/Account.en.resx | 132 - .../Pages/Identity/Account/Account.es.resx | 132 - .../Pages/Identity/Account/Account.fr.resx | 132 - .../Pages/Identity/Account/Account.id.resx | 132 - .../Pages/Identity/Account/Account.it.resx | 132 - .../Pages/Identity/Account/Account.km.resx | 132 - .../Pages/Identity/Account/Account.nl.resx | 132 - .../Pages/Identity/Account/Account.ru.resx | 132 - .../Pages/Identity/Account/Account.sv.resx | 132 - .../Pages/Identity/Account/Profile.ar.resx | 162 - .../Pages/Identity/Account/Profile.de.resx | 162 - .../Pages/Identity/Account/Profile.en.resx | 162 - .../Pages/Identity/Account/Profile.es.resx | 162 - .../Pages/Identity/Account/Profile.fr.resx | 162 - .../Pages/Identity/Account/Profile.id.resx | 162 - .../Pages/Identity/Account/Profile.it.resx | 162 - .../Pages/Identity/Account/Profile.km.resx | 162 - .../Pages/Identity/Account/Profile.nl.resx | 162 - .../Pages/Identity/Account/Profile.ru.resx | 159 - .../Pages/Identity/Account/Profile.sv.resx | 162 - .../Pages/Identity/Account/Security.ar.resx | 159 - .../Pages/Identity/Account/Security.de.resx | 159 - .../Pages/Identity/Account/Security.en.resx | 159 - .../Pages/Identity/Account/Security.es.resx | 132 - .../Pages/Identity/Account/Security.fr.resx | 159 - .../Pages/Identity/Account/Security.id.resx | 138 - .../Pages/Identity/Account/Security.it.resx | 138 - .../Pages/Identity/Account/Security.km.resx | 132 - .../Pages/Identity/Account/Security.nl.resx | 159 - .../Pages/Identity/Account/Security.ru.resx | 138 - .../Pages/Identity/Account/Security.sv.resx | 138 - .../Pages/Identity/RegisterUserModal.ar.resx | 171 - .../Pages/Identity/RegisterUserModal.de.resx | 171 - .../Pages/Identity/RegisterUserModal.en.resx | 171 - .../Pages/Identity/RegisterUserModal.es.resx | 171 - .../Pages/Identity/RegisterUserModal.fr.resx | 171 - .../Pages/Identity/RegisterUserModal.id.resx | 171 - .../Pages/Identity/RegisterUserModal.it.resx | 148 - .../Pages/Identity/RegisterUserModal.km.resx | 171 - .../Pages/Identity/RegisterUserModal.nl.resx | 171 - .../Pages/Identity/RegisterUserModal.ru.resx | 171 - .../Pages/Identity/RegisterUserModal.sv.resx | 171 - .../Resources/Pages/Identity/Reset.ar.resx | 138 - .../Resources/Pages/Identity/Reset.de.resx | 138 - .../Resources/Pages/Identity/Reset.en.resx | 138 - .../Resources/Pages/Identity/Reset.es.resx | 138 - .../Resources/Pages/Identity/Reset.fr.resx | 138 - .../Resources/Pages/Identity/Reset.id.resx | 138 - .../Resources/Pages/Identity/Reset.it.resx | 138 - .../Resources/Pages/Identity/Reset.km.resx | 138 - .../Resources/Pages/Identity/Reset.nl.resx | 138 - .../Resources/Pages/Identity/Reset.ru.resx | 138 - .../Resources/Pages/Identity/Reset.sv.resx | 138 - .../Pages/Identity/RoleModal.ar.resx | 141 - .../Pages/Identity/RoleModal.de.resx | 141 - .../Pages/Identity/RoleModal.en.resx | 141 - .../Pages/Identity/RoleModal.es.resx | 141 - .../Pages/Identity/RoleModal.fr.resx | 141 - .../Pages/Identity/RoleModal.id.resx | 144 - .../Pages/Identity/RoleModal.it.resx | 141 - .../Pages/Identity/RoleModal.km.resx | 141 - .../Pages/Identity/RoleModal.nl.resx | 141 - .../Pages/Identity/RoleModal.ru.resx | 141 - .../Pages/Identity/RoleModal.sv.resx | 141 - .../Identity/Roles/RolePermissions.ar.resx | 165 - .../Identity/Roles/RolePermissions.de.resx | 165 - .../Identity/Roles/RolePermissions.en.resx | 165 - .../Identity/Roles/RolePermissions.es.resx | 165 - .../Identity/Roles/RolePermissions.fr.resx | 165 - .../Identity/Roles/RolePermissions.id.resx | 153 - .../Identity/Roles/RolePermissions.it.resx | 156 - .../Identity/Roles/RolePermissions.km.resx | 153 - .../Identity/Roles/RolePermissions.nl.resx | 165 - .../Identity/Roles/RolePermissions.ru.resx | 165 - .../Identity/Roles/RolePermissions.sv.resx | 153 - .../Pages/Identity/Roles/Roles.ar.resx | 171 - .../Pages/Identity/Roles/Roles.de.resx | 171 - .../Pages/Identity/Roles/Roles.en.resx | 171 - .../Pages/Identity/Roles/Roles.es.resx | 171 - .../Pages/Identity/Roles/Roles.fr.resx | 171 - .../Pages/Identity/Roles/Roles.id.resx | 162 - .../Pages/Identity/Roles/Roles.it.resx | 162 - .../Pages/Identity/Roles/Roles.km.resx | 156 - .../Pages/Identity/Roles/Roles.nl.resx | 171 - .../Pages/Identity/Roles/Roles.ru.resx | 171 - .../Pages/Identity/Roles/Roles.sv.resx | 162 - .../Pages/Identity/Users/UserProfile.ar.resx | 153 - .../Pages/Identity/Users/UserProfile.de.resx | 153 - .../Pages/Identity/Users/UserProfile.en.resx | 153 - .../Pages/Identity/Users/UserProfile.es.resx | 150 - .../Pages/Identity/Users/UserProfile.fr.resx | 153 - .../Pages/Identity/Users/UserProfile.id.resx | 153 - .../Pages/Identity/Users/UserProfile.it.resx | 153 - .../Pages/Identity/Users/UserProfile.km.resx | 150 - .../Pages/Identity/Users/UserProfile.nl.resx | 153 - .../Pages/Identity/Users/UserProfile.ru.resx | 153 - .../Pages/Identity/Users/UserProfile.sv.resx | 153 - .../Pages/Identity/Users/UserRoles.ar.resx | 147 - .../Pages/Identity/Users/UserRoles.de.resx | 147 - .../Pages/Identity/Users/UserRoles.en.resx | 147 - .../Pages/Identity/Users/UserRoles.es.resx | 150 - .../Pages/Identity/Users/UserRoles.fr.resx | 147 - .../Pages/Identity/Users/UserRoles.id.resx | 135 - .../Pages/Identity/Users/UserRoles.it.resx | 135 - .../Pages/Identity/Users/UserRoles.km.resx | 135 - .../Pages/Identity/Users/UserRoles.nl.resx | 147 - .../Pages/Identity/Users/UserRoles.ru.resx | 147 - .../Pages/Identity/Users/UserRoles.sv.resx | 135 - .../Pages/Identity/Users/Users.ar.resx | 192 - .../Pages/Identity/Users/Users.de.resx | 198 - .../Pages/Identity/Users/Users.en.resx | 198 - .../Pages/Identity/Users/Users.es.resx | 192 - .../Pages/Identity/Users/Users.fr.resx | 174 - .../Pages/Identity/Users/Users.id.resx | 177 - .../Pages/Identity/Users/Users.it.resx | 195 - .../Pages/Identity/Users/Users.km.resx | 174 - .../Pages/Identity/Users/Users.nl.resx | 192 - .../Pages/Identity/Users/Users.ru.resx | 192 - .../Pages/Identity/Users/Users.sv.resx | 177 - .../src/Client/Resources/Pages/Index.de.resx | 141 - .../src/Client/Resources/Pages/Index.en.resx | 141 - .../src/Client/Resources/Pages/Index.it.resx | 141 - .../Pages/Misc/AddEditDocumentModal.ar.resx | 156 - .../Pages/Misc/AddEditDocumentModal.de.resx | 156 - .../Pages/Misc/AddEditDocumentModal.en.resx | 156 - .../Pages/Misc/AddEditDocumentModal.es.resx | 156 - .../Pages/Misc/AddEditDocumentModal.fr.resx | 156 - .../Pages/Misc/AddEditDocumentModal.id.resx | 156 - .../Pages/Misc/AddEditDocumentModal.it.resx | 156 - .../Pages/Misc/AddEditDocumentModal.km.resx | 156 - .../Pages/Misc/AddEditDocumentModal.nl.resx | 156 - .../Pages/Misc/AddEditDocumentModal.ru.resx | 156 - .../Pages/Misc/AddEditDocumentModal.sv.resx | 156 - .../Misc/AddEditDocumentTypeModal.ar.resx | 144 - .../Misc/AddEditDocumentTypeModal.de.resx | 144 - .../Misc/AddEditDocumentTypeModal.en.resx | 144 - .../Misc/AddEditDocumentTypeModal.es.resx | 144 - .../Misc/AddEditDocumentTypeModal.fr.resx | 144 - .../Misc/AddEditDocumentTypeModal.km.resx | 144 - .../Misc/AddEditDocumentTypeModal.nl.resx | 144 - .../Misc/AddEditDocumentTypeModal.ru.resx | 144 - .../Pages/Misc/DocumentStore.ar.resx | 189 - .../Pages/Misc/DocumentStore.de.resx | 189 - .../Pages/Misc/DocumentStore.en.resx | 189 - .../Pages/Misc/DocumentStore.es.resx | 189 - .../Pages/Misc/DocumentStore.fr.resx | 189 - .../Pages/Misc/DocumentStore.id.resx | 180 - .../Pages/Misc/DocumentStore.it.resx | 180 - .../Pages/Misc/DocumentStore.km.resx | 180 - .../Pages/Misc/DocumentStore.nl.resx | 189 - .../Pages/Misc/DocumentStore.ru.resx | 189 - .../Pages/Misc/DocumentStore.sv.resx | 180 - .../Pages/Misc/DocumentTypes.ar.resx | 177 - .../Pages/Misc/DocumentTypes.de.resx | 177 - .../Pages/Misc/DocumentTypes.en.resx | 177 - .../Pages/Misc/DocumentTypes.es.resx | 177 - .../Pages/Misc/DocumentTypes.fr.resx | 177 - .../Pages/Misc/DocumentTypes.km.resx | 177 - .../Pages/Misc/DocumentTypes.nl.resx | 177 - .../Pages/Misc/DocumentTypes.ru.resx | 177 - .../Pages/Multitenancy/Tenants.de.resx | 132 - .../Pages/Multitenancy/Tenants.en.resx | 132 - .../Pages/Multitenancy/Tenants.it.resx | 132 - .../UpgradeSubscriptionModal.de.resx | 138 - .../UpgradeSubscriptionModal.en.resx | 138 - .../UpgradeSubscriptionModal.it.resx | 138 - .../Pages/Personal/AuditLogs.ar.resx | 207 - .../Pages/Personal/AuditLogs.de.resx | 207 - .../Pages/Personal/AuditLogs.en.resx | 207 - .../Pages/Personal/AuditLogs.es.resx | 207 - .../Pages/Personal/AuditLogs.fr.resx | 207 - .../Pages/Personal/AuditLogs.it.resx | 180 - .../Pages/Personal/AuditLogs.km.resx | 180 - .../Pages/Personal/AuditLogs.nl.resx | 207 - .../Pages/Personal/AuditLogs.ru.resx | 207 - .../Pages/Personal/AuditLogs.sv.resx | 180 - .../Pages/Personal/Dashboard.ar.resx | 189 - .../Pages/Personal/Dashboard.de.resx | 189 - .../Pages/Personal/Dashboard.en.resx | 189 - .../Pages/Personal/Dashboard.es.resx | 189 - .../Pages/Personal/Dashboard.fr.resx | 186 - .../Pages/Personal/Dashboard.id.resx | 150 - .../Pages/Personal/Dashboard.it.resx | 153 - .../Pages/Personal/Dashboard.km.resx | 150 - .../Pages/Personal/Dashboard.nl.resx | 189 - .../Pages/Personal/Dashboard.ru.resx | 189 - .../Pages/Personal/Dashboard.sv.resx | 150 - ...ExtendedAttributeModalLocalization.ar.resx | 180 - ...ExtendedAttributeModalLocalization.de.resx | 180 - ...ExtendedAttributeModalLocalization.en.resx | 180 - ...ExtendedAttributeModalLocalization.es.resx | 180 - ...ExtendedAttributeModalLocalization.fr.resx | 180 - ...ExtendedAttributeModalLocalization.id.resx | 180 - ...ExtendedAttributeModalLocalization.it.resx | 180 - ...ExtendedAttributeModalLocalization.km.resx | 180 - ...ExtendedAttributeModalLocalization.nl.resx | 180 - ...ExtendedAttributeModalLocalization.ru.resx | 180 - ...ExtendedAttributeModalLocalization.sv.resx | 180 - .../ExtendedAttributesLocalization.ar.resx | 213 - .../ExtendedAttributesLocalization.de.resx | 213 - .../ExtendedAttributesLocalization.en.resx | 213 - .../ExtendedAttributesLocalization.es.resx | 213 - .../ExtendedAttributesLocalization.fr.resx | 213 - .../ExtendedAttributesLocalization.id.resx | 213 - .../ExtendedAttributesLocalization.it.resx | 213 - .../ExtendedAttributesLocalization.km.resx | 213 - .../ExtendedAttributesLocalization.nl.resx | 213 - .../ExtendedAttributesLocalization.ru.resx | 213 - .../ExtendedAttributesLocalization.sv.resx | 213 - .../Components/ImportExcelModal.ar.resx | 132 - .../Components/ImportExcelModal.de.resx | 132 - .../Components/ImportExcelModal.en.resx | 132 - .../Components/ImportExcelModal.es.resx | 132 - .../Components/ImportExcelModal.fr.resx | 132 - .../Components/ImportExcelModal.id.resx | 132 - .../Components/ImportExcelModal.it.resx | 132 - .../Components/ImportExcelModal.km.resx | 132 - .../Components/ImportExcelModal.nl.resx | 132 - .../Components/ImportExcelModal.ru.resx | 132 - .../Components/ImportExcelModal.sv.resx | 132 - .../Components/LanguageSelector.ar.resx | 153 - .../Components/LanguageSelector.de.resx | 153 - .../Components/LanguageSelector.en.resx | 153 - .../Components/LanguageSelector.es.resx | 153 - .../Components/LanguageSelector.fr.resx | 153 - .../Components/LanguageSelector.id.resx | 153 - .../Components/LanguageSelector.it.resx | 153 - .../Components/LanguageSelector.nl.resx | 153 - .../Components/LanguageSelector.ru.resx | 153 - .../Shared/Dialogs/DeleteConfirmation.en.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.es.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.fr.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.id.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.it.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.km.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.nl.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.ru.resx | 129 - .../Shared/Dialogs/DeleteConfirmation.sv.resx | 129 - .../Resources/Shared/Dialogs/Logout.en.resx | 126 - .../Resources/Shared/Dialogs/Logout.es.resx | 126 - .../Resources/Shared/Dialogs/Logout.fr.resx | 126 - .../Resources/Shared/Dialogs/Logout.id.resx | 126 - .../Resources/Shared/Dialogs/Logout.it.resx | 126 - .../Resources/Shared/Dialogs/Logout.km.resx | 126 - .../Resources/Shared/Dialogs/Logout.nl.resx | 126 - .../Resources/Shared/Dialogs/Logout.ru.resx | 126 - .../Resources/Shared/Dialogs/Logout.sv.resx | 126 - ...217\342\200\217DeleteConfirmation.ar.resx" | 129 - .../\342\200\217\342\200\217Logout.ar.resx" | 126 - .../Resources/Shared/MainLayout.de.resx | 180 - .../Resources/Shared/MainLayout.en.resx | 180 - .../Resources/Shared/MainLayout.es.resx | 177 - .../Resources/Shared/MainLayout.fr.resx | 180 - .../Resources/Shared/MainLayout.id.resx | 180 - .../Resources/Shared/MainLayout.it.resx | 180 - .../Resources/Shared/MainLayout.km.resx | 177 - .../Resources/Shared/MainLayout.nl.resx | 180 - .../Resources/Shared/MainLayout.ru.resx | 180 - .../Resources/Shared/MainLayout.sv.resx | 180 - .../Client/Resources/Shared/NavMenu.de.resx | 186 - .../Client/Resources/Shared/NavMenu.en.resx | 186 - .../Client/Resources/Shared/NavMenu.es.resx | 186 - .../Client/Resources/Shared/NavMenu.fr.resx | 186 - .../Client/Resources/Shared/NavMenu.id.resx | 186 - .../Client/Resources/Shared/NavMenu.it.resx | 186 - .../Client/Resources/Shared/NavMenu.km.resx | 165 - .../Client/Resources/Shared/NavMenu.nl.resx | 186 - .../Client/Resources/Shared/NavMenu.ru.resx | 186 - .../Client/Resources/Shared/NavMenu.sv.resx | 186 - .../Resources/Shared/NotFoundLayout.de.resx | 126 - .../Resources/Shared/NotFoundLayout.en.resx | 126 - .../Resources/Shared/NotFoundLayout.es.resx | 126 - .../Resources/Shared/NotFoundLayout.fr.resx | 126 - .../Resources/Shared/NotFoundLayout.id.resx | 126 - .../Resources/Shared/NotFoundLayout.it.resx | 126 - .../Resources/Shared/NotFoundLayout.km.resx | 126 - .../Resources/Shared/NotFoundLayout.nl.resx | 126 - .../Resources/Shared/NotFoundLayout.ru.resx | 126 - .../Resources/Shared/NotFoundLayout.sv.resx | 126 - .../Resources/Shared/SharedResource.de.resx | 156 - .../Resources/Shared/SharedResource.en.resx | 156 - .../Resources/Shared/SharedResource.it.resx | 156 - ...342\200\217\342\200\217MainLayout.ar.resx" | 180 - .../\342\200\217\342\200\217NavMenu.ar.resx" | 186 - ...200\217\342\200\217NotFoundLayout.ar.resx" | 126 - .../src/Client/Shared/ApiHelper.cs | 86 - .../src/Client/Shared/BaseLayout.razor | 33 - .../src/Client/Shared/BaseLayout.razor.cs | 49 - .../Client/Shared/DialogServiceExtensions.cs | 19 - .../src/Client/Shared/MainLayout.razor | 107 - .../src/Client/Shared/MainLayout.razor.cs | 63 - .../src/Client/Shared/NavMenu.razor | 55 - .../src/Client/Shared/NavMenu.razor.cs | 39 - .../src/Client/Shared/NotFound.razor | 56 - .../src/Client/Shared/SharedResource.cs | 5 - .../src/Client/_Imports.razor | 42 - .../wwwroot/appsettings.Development.json | 1 - .../src/Client/wwwroot/appsettings.json | 10 - .../src/Client/wwwroot/css/fsh.css | 72 - .../src/Client/wwwroot/favicon.ico | Bin 18409 -> 0 bytes .../Client/wwwroot/full-stack-hero-logo.png | Bin 160036 -> 0 bytes .../src/Client/wwwroot/index.html | 110 - .../src/Client/wwwroot/manifest.json | 21 - .../src/Client/wwwroot/service-worker.js | 4 - .../wwwroot/service-worker.published.js | 48 - .../src/Host/Host.csproj | 24 - .../src/Host/Pages/Error.cshtml | 44 - .../src/Host/Pages/Error.cshtml.cs | 19 - .../src/Host/Program.cs | 26 - .../src/Host/Properties/launchSettings.json | 30 - .../src/Host/appsettings.Development.json | 8 - .../src/Host/appsettings.json | 9 - .../ClaimsPrincipalExtensions.cs | 39 - .../src/Shared/Authorization/FSHClaims.cs | 11 - .../Shared/Authorization/FSHPermissions.cs | 80 - .../src/Shared/Authorization/FSHRoles.cs | 17 - .../src/Shared/Events/IEvent.cs | 5 - .../MultiTenancy/MultitenancyConstants.cs | 15 - .../Shared/Notifications/BasicNotification.cs | 15 - .../Notifications/INotificationMessage.cs | 5 - .../Shared/Notifications/JobNotification.cs | 8 - .../Notifications/NotificationConstants.cs | 6 - .../Notifications/StatsChangedNotification.cs | 5 - .../src/Shared/Shared.csproj | 7 - blazor-wasm-boilerplate-main/stylecop.json | 12 - 618 files changed, 84417 deletions(-) delete mode 100644 blazor-wasm-boilerplate-main/.dockerignore delete mode 100644 blazor-wasm-boilerplate-main/.editorconfig delete mode 100644 blazor-wasm-boilerplate-main/.github/FUNDING.yml delete mode 100644 blazor-wasm-boilerplate-main/.github/dependabot.yml delete mode 100644 blazor-wasm-boilerplate-main/.github/workflows/dotnet.yml delete mode 100644 blazor-wasm-boilerplate-main/.gitignore delete mode 100644 blazor-wasm-boilerplate-main/.template.config/icon.png delete mode 100644 blazor-wasm-boilerplate-main/.template.config/ide.host.json delete mode 100644 blazor-wasm-boilerplate-main/.template.config/template.json delete mode 100644 blazor-wasm-boilerplate-main/.vscode/launch.json delete mode 100644 blazor-wasm-boilerplate-main/.vscode/settings.json delete mode 100644 blazor-wasm-boilerplate-main/.vscode/tasks.json delete mode 100644 blazor-wasm-boilerplate-main/Directory.Build.props delete mode 100644 blazor-wasm-boilerplate-main/Directory.Build.targets delete mode 100644 blazor-wasm-boilerplate-main/Dockerfile delete mode 100644 blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.nuspec delete mode 100644 blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.sln delete mode 100644 blazor-wasm-boilerplate-main/LICENSE delete mode 100644 blazor-wasm-boilerplate-main/README.md delete mode 100644 blazor-wasm-boilerplate-main/dotnet.ruleset delete mode 100644 blazor-wasm-boilerplate-main/global.json delete mode 100644 blazor-wasm-boilerplate-main/icon.png delete mode 100644 blazor-wasm-boilerplate-main/scripts/nswag-regen.ps1 delete mode 100644 blazor-wasm-boilerplate-main/scripts/pull-shared-from-webapi.ps1 delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/FSHApi.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/IApiService.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/nswag.json delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthProvider.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthorizationServiceExtensions.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthenticationService.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthorizationMessageHandler.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdClaimsPrincipalFactory.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/IAuthenticationService.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/AccessTokenProviderAccessor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationHeaderHandler.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationService.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/MustHavePermissionAttribute.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Startup.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Client.Infrastructure.csproj delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/AccessTokenProviderExtensions.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ApplicationConstants.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ConfigNames.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/IAppService.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/LocalizationConstants.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/StorageConstants.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/GlobalUsings.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionState.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionStateChanged.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/INotificationPublisher.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationPublisher.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationWrapper.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/Startup.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreference.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreferenceManager.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/FshTablePreference.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IClientPreferenceManager.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreference.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreferenceManager.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Startup.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomColors.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomTypography.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/DarkTheme.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/LightTheme.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/App.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Client.csproj delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/CustomValidation.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/FshCustomError.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTable.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTitle.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Common/TablePager.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/DeleteConfirmation.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/Logout.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityClientTableContext.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityField.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityServerTableContext.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTableContext.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/IAddEditModal.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/PaginationResponse.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Localization/LanguageSelector.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnectionStatus.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Authentication.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/BrandAutocomplete.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Brands.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Account.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Index.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/UpgradeSubscriptionModal.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Program.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Properties/launchSettings.json delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ar.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.sv.resx delete mode 100644 "blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217DeleteConfirmation.ar.resx" delete mode 100644 "blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217Logout.ar.resx" delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.es.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.fr.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.id.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.it.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.km.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.nl.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.ru.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.sv.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.de.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.en.resx delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.it.resx delete mode 100644 "blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217MainLayout.ar.resx" delete mode 100644 "blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NavMenu.ar.resx" delete mode 100644 "blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NotFoundLayout.ar.resx" delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/ApiHelper.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/DialogServiceExtensions.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/NotFound.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/Shared/SharedResource.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Client/_Imports.razor delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.Development.json delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.json delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/css/fsh.css delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/favicon.ico delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/full-stack-hero-logo.png delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/index.html delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/manifest.json delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.js delete mode 100644 blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.published.js delete mode 100644 blazor-wasm-boilerplate-main/src/Host/Host.csproj delete mode 100644 blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml delete mode 100644 blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Host/Program.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Host/Properties/launchSettings.json delete mode 100644 blazor-wasm-boilerplate-main/src/Host/appsettings.Development.json delete mode 100644 blazor-wasm-boilerplate-main/src/Host/appsettings.json delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Authorization/ClaimsPrincipalExtensions.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHClaims.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHPermissions.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHRoles.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Events/IEvent.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/MultiTenancy/MultitenancyConstants.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Notifications/BasicNotification.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Notifications/INotificationMessage.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Notifications/JobNotification.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Notifications/NotificationConstants.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Notifications/StatsChangedNotification.cs delete mode 100644 blazor-wasm-boilerplate-main/src/Shared/Shared.csproj delete mode 100644 blazor-wasm-boilerplate-main/stylecop.json diff --git a/blazor-wasm-boilerplate-main/.dockerignore b/blazor-wasm-boilerplate-main/.dockerignore deleted file mode 100644 index 3729ff0..0000000 --- a/blazor-wasm-boilerplate-main/.dockerignore +++ /dev/null @@ -1,25 +0,0 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.editorconfig b/blazor-wasm-boilerplate-main/.editorconfig deleted file mode 100644 index c426b48..0000000 --- a/blazor-wasm-boilerplate-main/.editorconfig +++ /dev/null @@ -1,158 +0,0 @@ -root = true - -[*] -roslynator_accessibility_modifiers = explicit -roslynator_use_anonymous_function_or_method_group = anonymous_function|method_group -roslynator_enum_has_flag_style = method -roslynator_object_creation_type_style = explicit|implicit|implicit_when_type_is_obvious - -indent_style = space - -trim_trailing_whitespace = true - -insert_final_newline = false - -[*.md] -trim_trailing_whitespace = false - -[*.json] -indent_size = 2 - -[*.cs] -dotnet_sort_system_directives_first = true:warning - -csharp_style_namespace_declarations = file_scoped:warning - -csharp_style_var_for_built_in_types = false:warning - -csharp_style_var_when_type_is_apparent = true:warning - -csharp_style_var_elsewhere = true:warning - -csharp_new_line_before_members_in_anonymous_types = true:warning - -# SA1623: Property summary documentation should match accessors -dotnet_diagnostic.SA1623.severity = none - -# SA1101: Prefix local calls with this -dotnet_diagnostic.SA1101.severity = none - -# SA1642: Constructor summary documentation should begin with standard text -dotnet_diagnostic.SA1642.severity = none - -# SA1309: Field names should not begin with underscore -dotnet_diagnostic.SA1309.severity = none - -# RCS1194: Implement exception constructors. -dotnet_diagnostic.RCS1194.severity = none - -# SA1000: Keywords should be spaced correctly -dotnet_diagnostic.SA1000.severity = none - -# SA1124: Do not use regions -dotnet_diagnostic.SA1124.severity = none - -# SA1413: Use trailing comma in multi-line initializers -dotnet_diagnostic.SA1413.severity = none - -# SA1201: Elements should appear in the correct order -dotnet_diagnostic.SA1201.severity = suggestion - -# SA1638: File header file name documentation should match file name -dotnet_diagnostic.SA1638.severity = warning - -# SA1633: File should have header -dotnet_diagnostic.SA1633.severity = none - -# SA1404: Code analysis suppression should have justification -dotnet_diagnostic.SA1404.severity = none - -# SA1206: Declaration keywords should follow order -dotnet_diagnostic.SA1206.severity = none - -# CA1040: Avoid empty interfaces -dotnet_diagnostic.CA1040.severity = none - -# RCS1012: Use explicit type instead of 'var' -dotnet_diagnostic.RCS1012.severity = none - -# RCS1008: Use explicit type instead of 'var' -dotnet_diagnostic.RCS1008.severity = none - -# CA1725 -dotnet_diagnostic.CA1725.severity = none - -# RCS1009: Use explicit type instead of 'var' -dotnet_diagnostic.RCS1009.severity = none - -# SA1402: File may only contain a single type -dotnet_diagnostic.SA1402.severity = suggestion - -# CA1711 -dotnet_diagnostic.CA1711.severity = none - -# CA1720: Identifier contains type name -dotnet_diagnostic.CA1720.severity = none - -# IDE0022: Use block body for methods -dotnet_diagnostic.IDE0022.severity = none - -# SA1011: Closing square brackets should be spaced correctly -dotnet_diagnostic.SA1011.severity = none - -# CA1721 -dotnet_diagnostic.CA1721.severity = none - -# SA1313: Parameter names should begin with lower-case letter -dotnet_diagnostic.SA1313.severity = none - -# SecurityIntelliSenseCS: MS Security rules violation -dotnet_diagnostic.SecurityIntelliSenseCS.severity = suggestion - -# SA1123: Do not place regions within elements -dotnet_diagnostic.SA1123.severity = none - -# RCS1046: Add suffix 'Async' to asynchronous method name -dotnet_diagnostic.RCS1046.severity = warning - -# SA1625: Element documentation should not be copied and pasted -dotnet_diagnostic.SA1625.severity = none - -# SCS9999 -dotnet_diagnostic.SCS9999.severity = none - -# RCS1090 Add call to 'ConfigureAwait' -dotnet_diagnostic.RCS1090.severity = none - -# RCS1170 Use read-only auto-implemented property -dotnet_diagnostic.RCS1170.severity = none - -# SA1649 -dotnet_diagnostic.SA1649.severity = none - -# RCS1021 Use expression-bodied lambda. -dotnet_diagnostic.RCS1021.severity = none - -# RCS1047 Remove suffix 'Async' from non-asynchronous method name. -# dotnet_diagnostic.RCS1047.severity = silent - -# SA1600 Elements should be documented -dotnet_diagnostic.SA1600.severity = silent - -# CS1591 Missing XML comment for publicly visible type or member -dotnet_diagnostic.CS1591.severity = none - -# SA1602: Enumeration items should be documented -dotnet_diagnostic.SA1602.severity = none - -# CA1720 Identifier 'Decimal' contains type name -dotnet_diagnostic.CA1720.severity = none - -# SA1601: Partial elements should be documented -dotnet_diagnostic.SA1601.severity = silent - -# CA1711 Rename type name UserEventHandler so that it does not end in 'EventHandler' -dotnet_diagnostic.CA1711.severity = none - -# CA1307: Specify StringComparison for clarity -dotnet_diagnostic.CA1307.severity = none \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.github/FUNDING.yml b/blazor-wasm-boilerplate-main/.github/FUNDING.yml deleted file mode 100644 index 14b7856..0000000 --- a/blazor-wasm-boilerplate-main/.github/FUNDING.yml +++ /dev/null @@ -1,3 +0,0 @@ -# These are supported funding model platforms -open_collective: fullstackhero -custom: ['https://www.buymeacoffee.com/codewithmukesh'] diff --git a/blazor-wasm-boilerplate-main/.github/dependabot.yml b/blazor-wasm-boilerplate-main/.github/dependabot.yml deleted file mode 100644 index 03ec545..0000000 --- a/blazor-wasm-boilerplate-main/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "nuget" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "daily" diff --git a/blazor-wasm-boilerplate-main/.github/workflows/dotnet.yml b/blazor-wasm-boilerplate-main/.github/workflows/dotnet.yml deleted file mode 100644 index 31607fa..0000000 --- a/blazor-wasm-boilerplate-main/.github/workflows/dotnet.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: .NET - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Setup .NET - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 6.0.x - - name: Restore dependencies - run: dotnet restore - - name: Build - run: dotnet build --no-restore - - name: Test - run: dotnet test --no-build --verbosity normal diff --git a/blazor-wasm-boilerplate-main/.gitignore b/blazor-wasm-boilerplate-main/.gitignore deleted file mode 100644 index 8afdcb6..0000000 --- a/blazor-wasm-boilerplate-main/.gitignore +++ /dev/null @@ -1,454 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# Tye -.tye/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -## -## Visual studio for Mac -## - - -# globs -Makefile.in -*.userprefs -*.usertasks -config.make -config.status -aclocal.m4 -install-sh -autom4te.cache/ -*.tar.gz -tarballs/ -test-results/ - -# Mac bundle stuff -*.dmg -*.app - -# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore -# Windows thumbnail cache files -Thumbs.db -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -# JetBrains Rider -.idea/ -*.sln.iml - -## -## Visual Studio Code -## -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json diff --git a/blazor-wasm-boilerplate-main/.template.config/icon.png b/blazor-wasm-boilerplate-main/.template.config/icon.png deleted file mode 100644 index fd9fa41873a242c485b6b8570e273e8246be3259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153939 zcmeFZcU05q+BOjE`$E*l;4o-?ZGv!r0#~f@Fd5k1AMKnn& z1bYW{9~Xk2kCwi*&sA$#8y;n)V+vk!@Bl}Go8>VtN1~IfoR=aGE%Sz%Er2@!EA!DC_~qOw>K8LX(dkcg<9 zh?Jb9^s%k~cwjac8(TTuvuay&!QT{l?A_c*a#*aVr>C%|xUjQ}9adCU7M>x76%!MJ zPYAhsJGohU2|2kQ|MrBl1XpVp2a=nEv(qv3L`y4YcQ-{ISSfQ0j->C8b#mQ0CO9yx zmn8`+DlCGw#P}e|-r3FB)!zBP`1to9|JxuN>+cUIxw{Y3+{u~SA4PBzY-uKZ}WtpS9ymTm+^ z9x)NPC=pR1aS?q{895P2IWbWI_`kRa^P`$zL^hUgmVf;)`n3ovaDCvx+>hS78SS8?Z1dF&i6e zTOnIXut*7O2^k?vYZ+@Hf~15vL0raCO3X^^+xWB2*6zp@(0HaR**IInGyYthtcZ=c zsI`o&kQBjER!Brvf*>SgEiEA=EoCJpA#NohDMFC=_B3r52k>S~;$NSNR%HWEloXYg z6_XZ)=ZHy*3yF(MND0XhL_~yOwW8vdlH!)OqO!3X=*MnvJ1U-iN6D*9zA|GTv2>V}5_2)l-+sDsv!meO*|7jsg z-!`cFvznyD&oUC?QZlNdqN*~oKTAvg{ELLFn&erLpUNiJnA5mA z+q!vLx)6T0155hf`XssqbO~^W|Gs!vOOOBc(xt3LEUj!r2|^;4(%_X~dqOf+qLxBp zwghP@OA%XZS#j%cTmMf>7n76|k^Sbu|0he|TClafrIQ^2$O_Bzf4&(RNl6JteC8&n60&~?SIw3+nDf9c+x((gQ1Br`0Tt1=64t( zaTg!++mB}leqel8{qPjXZuFn=ftv@I-(7t|+RpgSLX%C4`A->lUjB{oU67=X%r?e% zIVb<;VgGYx7|j2e1_tv#?u5bo{|+@GeA>1ZkrSNpUWjv|ax!fNkM}fqm{aY1T>%>^(g&V&h)Kx2jLJ;9WW4o!9w1FsJi5C)Tf!xh!9p>h6AY z3>H17;?`Odc(r-GPg14z<8IQ56{-7Au6DxdjRxnx4a6sC|7C)UGE2p#`DSv82{uM( z7tYNt-Ed%#EHhs4V@%Cuj|+I*`i*aQ>5@j>1viAQ24%WM)!@W@=_vwu8e+Ee<=I%YHkSaYQUHBE{@Iir^=f{fwTRWl-qA- zU3#xJf zTk}JcV8&n)*#hzgMKIf|Ec4STBE}k5$wxiVq_#PQwp8F^s|5Zd3I~NgT`S#ztsFF< zna%ujvzIkOA#&LK(QTA zMidMbl=hwUo_MW4hQ@I!=Qc4fv*P5<)=w0Z7mGf$gpl!N-WlzAJzRhcmD_x)o|0rF~47Lp}T4aViV)!4dugzwdY^FP}|Jq zrOzkph14~knDwczKe0UT2S>KBiBs|);ww7D4M(vUsUK(9J;eCqQvR7(C+9;0D+7&c3^jC|hc(W^Ip*_rW?DFriz3!eHi1p4ea-C_82BKS)Mi*fESQ@g<)z!_=+LjfU;u^Gbxm31;tB!Z05wSHmjSl{{Hn{>Nafxi zvA>yX#*8?&j*=Drc&g(Vr)gctF2w0w;U`0lfK8bnBz|B`+gI?j;~HaE*Z*9O%dQkx z-$KW%=B1%_lRG)#_=91505xvpFnvyfwRhyy`{oqlS_8NAgx4Xhc_Z@1phXfbE3IZR z-=MDkSt3F@CEaU3p#!qu;*Y~8wly1ij~LhvZI)M_q+#2J60Mhjo7Ui^AWiX5U`45s4;Hm$KSzh=C5W@ffj&F;bM zj)dV{-j);B@GV#6`{w2&m7PA$iA4<`z|k({>jVPiul>Gi)7iK{UHk_5oN+J53n?F? zjIx)87GymM`7#fNjUp6cM)EHeRj_8SHN#0P2(e4)!QpM8kA1#QpQ-zU(-n1JMG^(& z;q$N}Z7uCBQp@?dv%%icP+&KHu3ocvXo(9~DM=0ETQ$X1nmNW*t~BJ%nT))jZ;|dH zQ6KXLrpaEU-{e(Z7#wfqJKfysEKE}BbemS6&xEaVYtI+=F5YQGc;j!kp!gIM`#b-x zM=r7Brt{GaSJJhc3w;RUS9n)raraJ?V(UH##LsxGHiT9AbQLt&AEOrYttO9FSKp3h zVKMcuc%a=3pd+TZbaVY#N@Y%4Ju5my;z9gqe3g;uO_!|5AF~zU1nA|xk;8MmExe_L zgMyo%3+w6y=xes!VpDBI?RgelK$fh?Y*bo}ezl*A69|n~J#!HTlvnS}=`=UNUojoI zkl?y{OE6kXo3~T%T2w%Bn_+gv!%6Z+4J;;1f^}!sbGZwNqKR=a+OUw>SBoDwn27qe zo=q#=bgFi`)bMzPi@{4n9o|xDDv^AfyvKlZjBGOLg)1_A{D&aj+21^>xN|)Vo@dc^ z{bTs*@Jot9;stI0fyd*iSYk3$kVxGHJty_RsB7m`8|_niwpxeJZH{{70l5ht_lzok2pDPX-kPhTbBqwU+Q9hlD6vH>Sm_~p? z6P;ygs;f3Uj2)9z^64CGfBbaii(C0ZYwJ|A;bFua)ejA5_!@Vru_E0tp6JsYWfSU?~WrxZ7AF2Tvt*Gt^9N1w|+K1N&k4LAinvf8aY zzm4f#pE-A>6qf$sm{V~~$y9)vgj0$hF1nIrCYBz$&GZ?i=pAog#4tx}=ym5bnMNPc z#EO7SbfI1GnPLocIAg9ObNNWN-@i860`Iw&OHuXgvTm^3mFnM(Zg+Mjb304z49J7y zDVq?PeD&39GfQ*+1FQhP@(s3DuzOd^l1{~7y&-SLbP;b=u60mB^ z!_e!juz=jOnhfy;>dkT?shPeiw^EFg=X9czXVE97j)=a`LE>mh&(vL=;P$=b zM=Rp<7Nq9m_8D*zdJbYav_VDZRSb@U_B0c$tFK)E7wefmk|wj8;aw)Mg|XV%Nl%c= z04p|uwU>n1henpl<)|sJ{2I8|UReHtp`oR6ek!`r2z0A44D;wG!x5U{cV>slliwh_ zwTICshY0=^0#qz4dPSO(rN-d)C6*y;|L$-bkFp+bo3ftH3rw!lKR-}VSs_yCb&ITU zf7qC;%t?2WExyjw*9X6n@XS}oZ`dhh<*JJN%U(U~K zlNBO{KL+P#q&$g!RXBRp7rS~LKmXOjy1$8IgZ>L$EYa);!hxw~+XS?1DTwrnh z?hY9?Euucs*lTW4=7(!aD`crH`{3Gbazu0Tk={hg+~23Hhp7dtCm)fljth|e1RJ}) zDBd4&%iYRL6_D8&J!%mO7mzblP+1e`NI)=Ofn8-k`$na|zr2$<#)5km zq402|Z5K%xyh|H2)XX8`hk6uBtezo{k3%>Lq-5A;iEQN2`R2zZzxf!j_6r=w9aWzn zBX2bECThLU6#KisBZGSSVRie-3af*uszW!ky}-y4CeUY;AZV^*#pLjNKih%nH_ISd z33SCE!Z|6c@5m+AmYxS7Cm%La#HHU!;qKaGbMh@XroW-T^;a+B# zs_%G2DhSvh8Kw)&*Wu2BAZuh~)dmjd^*4=B{Vav_YyMtP-i@`bluH5E_GA-8sQ$PF zqSQpOB&R!Uj=`&KrJitMj2I}#fj_RlZK`qpC*Ky{)lYCm^ddWNLU#)U=+Y<@Mkw)p zN&N8PZYRz87~U|xP6HG;$D)W8Vyt3D*nE}T0+)L(FP@$|)0T?0UwfF+ax} zdS&SCSTHYl!@QL53dDXd(pcUZA)`-`ktvqmcJdpIYBPA;pMWYXSk?f%@eLtyN z$)sP~XH3Zo(ZjjiO7jmEe2kl#LI++XuFF@^!;WqY)0fp5fhL3x-HZBTx#L^OgP^_V z27b7zr|lAG?L```4;ZtXrsoIFlusgeXba9OSr4Af+DJY}A8P4#olIP85SzfX_xv6@fKXHiR$Rb->H1B z4rWmg_rLNTcNW>P85WyUhYw!yo50c+v}x-z^g`~cWI*BKJV8D_4=shSH|S$YiEF*| zmi-mUu*i5u^ce$Jv`~eX1A>6BS~{OnWii@Oo?+#+nb7sX z!E<37o42RGUibAhjK5vEP>4$avqBEoY2yqbQU1(8Se3RrUeeSkl zTzji)X|oxBa9v099q0Awz|HSgvP_-5(C;bpcQVoD!P?8UnuUF$mI+P}t9 ztZmaSe@>TMDm4G)W8M}}G-2As^38OVrs^k?ZXH+*%M(@jYS*_K-#7mv)`@cQ6+dMO-zAEuU1rZuYs3a|!$sUXN0^|Uo~(A3(leOAuo4Lcc=;Dq(N zT6+myWydSnONtL=PXgYoY;eqm97BO zUn!%IawbI3V4~74zR#{bc;}4|Mrhj#-PeGr?f+ zvFuto*WJr0A5&XHSUIAjJn92mGOUP!$I-bro8Hpf*AW@c4iRDLxW`!dxQAWA*6|7A zFV@r<2@AP<#>=^{)g>oS7Xi2T1?RmcI3I0jhV6v@zk9iXjq$35zQL`TqH z(V;u@&%9O4WNP#tx9F&Sf*$4aJFgVd%LPLY7}z}tY`Y!&#b?a^q_h3#0)6aGoI<6s zJMUU!7BKvL5BNr(%-8-R^K_a0n76D7t=lmqVMCc0CtD|%)UZyRmsY+!yOmO7v5ed7uR<`1|uu((OfUS5-No0j-G_o7S{!`O zsTGf}DC(NrYZQN*CM9BGyHZ}4H^VXnrRopd0$;S}hhf%57`)}epZCMyU&<)G9dKvT zad@*&?USltx_f61zrNnZmp2)olq%_OmV;ckxj;UwsX)FfeIE;~_e^2M&%X)Tr*`$s zy&rFt78Vw|oB)2?&-7aFnscV5Uz$|-&)3|{2U!Ri5tz6dwtJDe-L%J~Uo+E-NgO#5aY}a5Dc|TK9te% z+GJ@6Zok&yv)eP|_HSm2;%!@e>+@Fpha3v7po2PcVg3V53SX{{%%duCW79fAe%dt| zTIJ?5*AI_SWIF1XL$3`yi}Dse4&2|%eIkQoN^XIjhQW@v!mk`!#fcv(O>#d>;R7Z< zjB|2Cm%%vzumlh1N$(xm%k4;*w-CRn&DQ);ef|u1@S2AB)V+V8CFk7nUS-L6t1%Ix zp|Nf*NAY61DXe(QP5YM(Z+Y(3=ekYHSEOq5d3!wTk==6Bk5GE{(xl*>zkV1TEKK={ zBYS$uCp2y0ZQo98I-!rX&UM7M?)|})xtF`7Pk8%0>shUh@vt-B+HJ{%0V`(BytpgY zFST4oCp|Ke`*|e&1g?1E0;lPW`vxU@!%ld(y`-RSdB2T~wm{%wDMzdKv`tycy0k## zS9|jQ<_qotJk&6*jaNljBd#9-Cif`#x@_CSVa!qa>%O>b7l+jH$>i1$XOjsJECYHn zPIUEtdea8yu@U-HeeTPPkn(r~kC~2-nP5X$0oufoO{;px_|khBN(W^kxmBaxvz!u+ zHZ@VB>Jiv#zZ~eLpdv4nM!2a6YIy$58~riPG=|YtPmWD-&z3FvP{Q>>G}@yHxfiqB zXo*i=kEe+{vZZH!nx@o+VTap4OE<+YeOaINs$7&$5u zIRktilk(tsc$ zpChr5KbIEQd&ez zLq6solk0FzGDuZACt%Mh_YGLvHdrobvFy(RkRsb+`zy4La?Jwtm{;W^3|Ox!d`R_Lp0V7`M07#bAZ7PHwNMC ztK6|iKMT$w5v0d7fVcq#pRL0n98;lnC6TC}K81(Zb-1lFNP6Tz>7Ho?(Vpoq;BBy& zYQq6duD8-)xP%lfEXCnkYPrBDpP^`g0g!G_!@bzsK)QBe`E0mpO))f7p=WxJ0rF&w zMSgyA?+KfgZ8F%AL0!)k-Qscz?87xvunI7G&FGRw5v4F@PFf22&#*?7Z`y?VB9u6l z9}HIle@EZ~X#F?3{Eo0xPY$cFVS-$9f5m*(px_UKm@qNi_k5NE z?G*wyHZ)@BO&ob&esaZE{|T{%jRr0@GN9{^8wsZO)ts2f> zmVKHKsvRC8WcjriFZ)|4gc@c}$SfvaC2xemtSK-nE0axgbogP->2Lyxa00Vn1eN$F zxc)dGhT$}M)6$KpYq%8|Q;lw#w=qe+LkM_I`5dVaiX@S&D@vi?=`~ z86&F&;n=$pI?}LmH(7N0csM(xXnf$JhGF7|%==yxcWw{TOzoN~#LH0@pS5cA2v}!X zvs{OV=(W^$8j(YOOs~4=ri6|z- z5OE0~Fll1~UDbvLNHT-L0O>e+<{>M6VraA8zHg+uC-bhk`~*&lOwIATlNP+m@(d;P72mTX#j3u{$iY&v%>^6@32=(~jBqzd12^!)A5YsS zL*tbwZZ)8uHYo{HYO=+T1$Mgh1J}$ozx#08|9&1*EOG?Et>5dt|>=l zcb~bs+T`hxOG=45@R!3cn8`m#pT07ZC%r%U)LxEe-IJ>txP(Lptb#}@K8FKdf5GIW zuKq+nG4l17j$>CeG&Fq6dZw3sGB>Ik^EPy$N5mXN<2}<`t!0%lLsbDh=Cn;cgL6-+ z7}62jRKQU=1~?UvJg9)l*_q(54ddl#D6_2s%(Y#CQnFar3UOiw*fENG_uh>zoj0um zCi*5K&7y}>0jSW|7U2p@-8@iz8YJ^qMwr79y}bBO&Fy0nd3MKGr-_8IE;U^#zc+c{ zsY>##(+YB}(*;cNLdx|zu#*%3gu61Ym!j2IQt+Wi2Rdd#FlGjBm>)?450wOggu95y#ab$;axeJ5|?h}jSoY7@HjgX=X6lmZ}Q{Nop<}bC>NWuH&c;2SE&m1BX3iY-Un60RnglBJ8JV!D|=81$sq67sb7P+w6lT zhW?yZ-j+87^2LS>abqC~yA8x6ZFx9 zL5Ojgi7{S6mAd|aTT0u9G1G;xqzJhdJ_`Ic-Cqew=f&*Ybk0LP(tk9&Vn@U7#a-~E zrtHK*uKygl-0o96x5oSdX@!z0o5FBRM{svM1|mvW%aVbxM|pX)PmkkL-ZE=p-q*p2 zunCIM>YM=mP}q8`j*fOwU-z3=?xAn!b-Pz1=xz+Qea9QdyLzuPwfTm$pH&xAg0I~k zvtg#}dlfO!XR@PTv}$NL%M_L{d^wFlxCL*fosTwE?!RkCGTmYv1zGtvZy%4e1xe;M z)!}fX^}+k)DIX{SKpMq%k^JcgKN++@+~=~Ico>&Cems_a--*>GnBO{IFCG*U!r&q) z=WL8H#VWPE>l#GIK#;x7f{88Lv$NDq+V_u6gcTtT#R&X9M06((ufp&^Mfo-z8x%H1 zUXW$Sd!32*~xGolVObW_~7+kLn7ucBO?fRJLm64qtxR zyZgM@DNnt9QrBxe#d0F!dZ}yW+4i)>#UalwNxY$Zr~Cg#!qad z^Y*#c00^W2=@EGl2*`j)z^t8x`IQSlP%LxXyW*c3qNEi=N{WWZ7w<_ScG!loL&aw}PZI6`OqJ1d-Aw9i?6g+r|N?^KV2*~vCBPISkHRW+LuXf2p565t4r^nbu zMs6xdv*C~y#y=x^kI=G@^C>bmN|lzQu9djDkn@YRsgN%yL@d2G^$mUPP8`jJp^cyq zW`gKDFc#rAe~Y!49?*6jG9^}Xac^#lT3IL>5B!j`ZIS#@7u)XcTgo%)WGL$M2t2u% z>B-BTC_@2#GEGGsM`IkZTY9nMNJYU99Wo70d9Jz9lff_2lHSe)n}j#^%H3yy49(ZJ z(6phqfha>WGC1Dbx%{i`KVi?POSrmD{NlZz`1yj_q|^xPz_&&fR|VIV6v7|J@7yE6 zXnnD>?b>Z_%AgsGAzhhm#EYtmFyMaD&CWOjNzV`YD=G&{2RYB_aZ6bk4}9cJgmoz> zb>TaphOz)_Vv#d=P#CeP=I zLBWHDbj5A*#xP>lG{maas$;l=A8%*Nun>2u>h9x6EevM6H)+XUdnSBJdjCjueCFLL zX$xaZ3F-iED`+=)CZ-ejfNwWFjk<5G+AznHYQP1vir{Tmd>L7nLltj=EN@;VE6BFu zzncH4_7)*#t3Ii}hqur$+~uiya9ZoznOh!vZRqDrm`bnbaL!BL2nA3tUPK_#Oa=;{ z37j|lo5cZvhd9SP^>-O^f7{IZ9;%((FQr$a(obB1QV2jWwp$s5&%RS|G^C%hBQR3s zJpAXH<7Ol-0^eNjJe9ZLcwClrPT;sNvbU}Xg{TpBZOHy3`+lno$Y81}#9tqB-x`FU zd#It1Z?ANeK%aa>IAW zoQZO-gc?T{0VwH$7!Z+c#UIRMOmdOS`5va|xs`pX*Xf< z$e`i8MSu^MU;2wr?O2J1h2`w<{ud@EG7=|i@-*(0?g#Lls`S0=rGxQFvZVF1w>)M4 zewW?jgtr3K`Aq?b6LTUG)UPn=I@%3)ct-38BCZ?k1<5wUT9?m|Y?5G1qlh;+5*|2U zw_+-igO|n+)s4X~#Jj%itu1oMxbkH}4JF{f5K=M@iNqzVLyKo8EKLOr;W0C8nA8~f zp}I5p=@H?mkQ6m?LgUgWBb}c*m!lpZDPg4Ut{WZHnpY>6!Y~Q~Qi}tVH^z>)%U!O% zHSp@5#_NqAiKhsgZqqjUhxPDhBp2TB?X#sV!F7jr*JwZSml>JjMba+Cbm z&BdX}K@ashR_DBgV%rICk0J```Jf=|vf3LRiw^q|GEBL?I}2}7I-_XrOTdcp;UOmt z;{hRDLIUhjwhQm2!boQXwU0LK!%RN0XMjM*s#b=RTi|h|AnV)rryLOh%e=>%7z<;> zy1sc$4*BKZf|m4nYe~AXg1XQ{aI4bjrx?G5i~G72W9F{1vPV|DM+vthFwBowM6vh{ z)^>&)4l{?=@brkhYo#9O@x}7*`sv~8w^}T>z-ge{6G3pXA>-0yYE0ua(u~|OLFZvh z_9rOO|B3wXM;ME(D2euYk2W*V3getQPjiBT{ZB+G0@okSWr`o zIJ946H^Eyn!lhOsshYyh#dcj1hTQ13C2{%>9`70z~73sR8%C2G>Sh(H%Bj@L1fS&bm zM=N2+yV=LUoqN20AKrdYI7b-Jb20Ks%!i#JZraQ5GhPTdB{4-QE~aM5d9hFE>r zyJV+@H9y&yjeKorIp5LygrX+iDm|Z&=uFz#D%CrUiw*=H$Rg6+D6GH}`#}sqO3TY*evOCq*0zOoHb_o9}rs@h*Ic zXA$L53|ME-!Xwgli-l8F6MoQtWBJ(=sTsc^`(=MG9u;{&*^b!ZJ3uH!98OF&U6h9z zVzrnA^c>CMdQQ<7sz{gnBp$Biz#PRVSC!$I!T^i5sz_^**$enz5E2n3Z{Rvly_fIQ zn6W{#S-0=81(b;I3lKHm=%%_w`?)M^2^v6Y=M$@Qlib|_X<$ataoTF&2DR;8+d8@d zu7!1rg4tLu1?UaBQ0fdmgb?YUfSJ-G-))9gLzVz~I-iYw+U<#&2ZFNSv$h<_axV+o zs{*9<@uCJGckS8m4-mLjrH4gzZcgWZS*`ZkS$yg5&AU)WI*T%!?mBhz2D*YrYg(_8 zowuW#6Rka?tMwBobG_o;JNdqNE4Rxe~iB$xdb>;UBua5%Qnc$9U%y+|a6$R%b=suA` z+8$)0dyj*^9!ZzOnI>6&Gsf`c1<0LjJYYdi0T-=O04rds9a5^7#&(PyTj*1%OHYsR zlb--Om4_<=KiLUD6rUX{^;l;>|x>P|SOX zQP{h~KyF>sdOr$Nt$^4#Njitus|DM}+jh zFr=eQ#Z!+I&te*QPR}>bVJIHdrV2XX#+FvKmmh zTXjtYrNas4;`g5vgdAoF8yj0dj%uRs3;bPJ8cL5~N)Cd6lXb0(FnX2oeVB+u>{dQ^h2dDbOvSRw>r@6^pifa$HgQFa~YUX1ZMs33n}*bRi) z(ynbinFUVv&q&dAofA0P6$a9-0EB=Bf^az~d(>bjCZkx4|6IuZh(Gxw-kFn13o8)I zL!6kSNVUcVT>UO$X2sC$@PP8?1D9QeDr)IG#Tt3LL|so_?#o!R0y1eA7{IK^R2v?N z*3E_&Y!`1>9fN>rQR`$+gks|UxK;pO6as|V;xCNlW1sqd0`_zi z=?7e0eRA~pk3pI>w-0Bqnn&*l3T8NmsImJ$*YKBY=Ia2Ue8q;^r6Qh8oLP)fV+b2X zg}}Zq1KumBt;o#fsM@wi=gnpN9G<9K_K2oG-yc~z$d%N&GGKViL+)ENP?ZRSt|IRc zPENSmim$GF3|9v&J0N-`Ouo9=8Z%q0^4&>h+%g$iLE2cN3 z*)VU<{aZ}%;!BmUSagp>T%K(;DGD|4jN0yRQI_!a3V04e1Z>I)Z0fT#3MawolaTVt zgZ!*!O=sYWO`We2#Uz(tZtc$44H3bk z7IqfZhC5=l>XxyJhLUczXO{bv!W;W!fqYCA89_nm@R>gX9VmfR+=aS6P2L2FjQe|wuQTfU&4nCCQebU{I^=zw1J8r_puYg9i0zB0h&)dAahI2xDc}_q!}~cpT*%VqUuI;ZS41P zqD6j{dJ_zOxgBgackkVo^|xmqGW1L&L(dd`i>Eh#hL`6}af%RS2J4K;=a!9brBnAo zI+X~KQRXG#_yCVAN)EF;rQaCKg6a4*c+{xbGZ^GgTSr?ciijIgk%#Fw=C7gMbAMAI z$3q5oJvt0t(~$<61>b9%Z4bS#0Y)D~h*jRF)@Pgui$SmvhU_mbU4F?7Wc%Oi0T&q> zF?7mrFiB6fdJGgzqZCo$TnY{g`ag%wdTTr_PXwkUyWqdwVRNJs)IZ$Y}+M65q^+qeR3riK^E!5cpOcba!FYV+-TA$H} zf^LTb>gG}r#asA8eh-t827x7&XGA@`Lo(EW;RsD9 zKR65hOES*2Z(Zi}CB7wOq#2c@3ub-#`t#>eQ6dHc%Wml|{Hz&}OwJ4M92Si5g?|f_ zeez$AICE1g_iNjDMZ;A^^Fcl)9|+BvN$1&#V5MG{zv&ZCwv4pW%mhVLesDheO`mxC z05!iN`dTtOSs=l&ye&wQek;RA?S5N;gk6N;q`nog&qhv-d=$H5HVnQ{e%1wE?+=5 zETNEVLPZsk0z;hSM?D>L@n0&$jw^;QCd4?l^s!+uCHAMQ+TAbbg=kRIA8EXv-D%PI zoKH1f9e=?GyGV9IH`v4lohTLpP`(Zs-x%F}$?pY_AuxoFT`KipHby4X zG3QOQ>AAd_;}M4{-)~8pOZd4(X7!Z_MIg*0pTegHu~98vX^iA-M;f7J9kPF>b*%>> zT?Oi%?hcbgz$Dp>h^^WX)B$Eq?VXHkWor%slh3_s%YE+}?wLYiulr-(OD+hN_O;ME zx(8O@F{->okAyedf-3d)#Pfp^M#;=8swbU~0Pva|swzr-J{)-%rxZSn2CR?nYw@K) zuwu-2v;^7(^-tE?hr2vc-@@JoCiap9RE%W4$(QUFu7s*WMvfvjyj>b|CNQ0E?1|NdWmOnoJQdJ%a zWid!{;!u(k#wDWD%#kwa^DX;0vt4Q*Lc_WHI9bFrmNzU6b-4LmYai!+*?fC;XYnBs zRBu*}z1pIz*q%_u%*b#?f)97(1YhSNq+gIVDM`09K)wXo0(pjf0mHrx>4NrzK))=- zDrTXXGnCH}V^JgUQ1wa#A^2Z*OF3nCr1#mJ8!IwR$Rds!Jo6c)FYqHPhh!db0H_ZW@x$MO=U(edef*DQGX^K%#Kr z(<4|28*z}GUo1zhTD^)fvA-B+e+%jgdVU2~^&*^kMdo3C3Xp#06QVpr68^-8=<@e_53h({p> zbfNq0g#oP?aFdNt!NeIix|we!9<^2m1q_NF#&m2zzE4QEsDX_on6DW+4N=Cwb3Gh7 z4fk(#8d~F&#M={;8L5__N@Vm!cb_EOKLEmMV^0xie@I{YtQhaC>ygTTX&Rvb7Zd1` zr5Ffr+k!KujZzO`I$VO)!cE|E7@%BM1)vPo;K|#1CjY8G@5w7G219JJ6qOkQB`B@K zbAvo#z=gql4F+J2F4mq*_?*1LpgC30`%Nl`%AdtFJ14x3P6(uCa+y1xqN?Dg!6*X7 zs4bW2{T|1E(|nz?6VqRK30;6ALH8az%66OATB52_bd|Nlx{^fr=vGRz9{TmKV!N4> zYf$y(PYjn^VBXeG;NG1kN0WQ+;NNG;{e6>2@`Z$qOt|uDkKU!PZ|(>th*-!pA{j$- zAhTxslGeEmxqcMh$pE|%06gepIEdi6mIPr^8tUAjU(PgJjvBZx3Ea$vt5l@sCQaSE zeXodvnbOQjfUC!3>+{ym#yBn?MluUonA6b)TDj?=@=u@_QK2_R_7lDYq69eINmbb3 ztjQIeDE{e#Q^d1x(k6}*vScKp1e8S*UN|C&qCP+TZuw>Fxvt&tdN^=*ztsXSI9#xm z#j0OQZwPK?2j~(fgvNbS2Uds1%rA_IV{OJ6@&VG9NmHxZC%nIwv3d&X$3fbBw~N@n zP~#NjjP%|qKnT3WJ>Oji)dNybz^`yvIM=nX|A=GDIuBS|&VYB$HcZLiRdw&O@jt}P zoW)Y~Q0b!WFrlbVj663P3pBzv|B@SMBpH*s&t`YtD{8FcmQQhl@J_x zDFU{)dgWFaZfkxlif>Fc zZQ7ABiHekP|8maNp_qvAjgM3}ZCS|Ic1I1rHuI&WkQH2jZ7Wf$ScgdWEf)P2^oWp0 z2hU%LXf&OAQOZVmUv}*j>$DSL@Rsc^&*8XC)c=RjqRKT((fK#H8qQyDbHJG73k~l8 zm$rB)^O7y}eL#^C8t!4SmcHb`2g99!f{z(Fri_LtpJ;L+1(S1v&92#VA|B~GC~L^v ze&M)ewo1F>x4NQ57!Wsa9#<9x0Y?7`n zYsRbE=J44wiS=-&XT434|I}7sfD@Ajz6}SyWj6hIodE2u_BjppzYnJwRRbib0ksFd zR9zJta)wfaCGs@HYJKvaUU(E5Ebc{vl4m0q;!i@|R??PzX+SJGu+?}uASaUHVaq4H zd8p#Rn^lzzn}t?oc%kF;1Wr~5pr`vzZrW(G5BhXt)iuE-OHkqPV%SyqJa?kJLKOqw zsy~jVvSS`?uk8oFxRs{$QcWbF$zr)rGKLu*a7aQsP$`y*v_oQ?yh7h|xxa(WNdjJD z(sX%8NV#ST-l}g-H(W>F)LbdgCtlXa@FwMl&>c4Y9L4TAOX#Gp&b;*aR}WZm9{2?~A2bQ*w? z^fc7;fa1(qDBL3Y7oZM7+tSq*CXrXyjqFL$c>VDa6y^=IgYSrWr$z%{50)HlwuF49 zQDvY);Cv$ZjI@@`+;7`zEBvmWIH#;h3oGui_U2#sttsGx0a zB$-E_HZ1B#R18xjb{UaW}nXTyW!4wCh9&L}KuZ zda4vYDbWOQM@yz(#EU~jZxQ0!v7h5r(Dfx$SFQd@@2?7|SMd)Dcg&l6#i7qWE`F`v zReZvG+J613_EAS}X9lf3zsIMB2@*;>D3{-a*PDD*%1#iwrXr5gQ3#^7|AAhN%0A&u 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[YRGava~CQ`0J#idFCTB7Mm6Cy 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 b46BggvoE43D^m*Khv?fQGX5 diff --git a/blazor-wasm-boilerplate-main/.template.config/ide.host.json b/blazor-wasm-boilerplate-main/.template.config/ide.host.json deleted file mode 100644 index 837778b..0000000 --- a/blazor-wasm-boilerplate-main/.template.config/ide.host.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/vs-2017.3.host", - "order": 0, - "icon": "icon.png" -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.template.config/template.json b/blazor-wasm-boilerplate-main/.template.config/template.json deleted file mode 100644 index 5fbff2b..0000000 --- a/blazor-wasm-boilerplate-main/.template.config/template.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/template", - "author": "Mukesh Murugan", - "classifications": [ - "Blazor", - "WASM", - "WebAssembly", - "Clean Architecture", - "Boilerplate", - "macOS", - "Windows", - "Cloud", - "Web" - ], - "tags": { - "language": "C#", - "type": "project" - }, - "identity": "FullStackHero.BlazorWebAssembly.Boilerplate", - "name": "Blazor WebAssembly Boilerplate - FullStackHero", - "description": "Clean Architecture Boilerplate Template for .NET 6.0 Blazor WebAssembly built for FSH WebAPI with the goodness of MudBlazor Components.", - "shortName": "fsh-blazor", - "sourceName": "FSH.BlazorWebAssembly", - "preferNameDirectory": true, - "sources": [ - { - "source": "./", - "target": "./", - "exclude": [ - ".template.config/**" - ] - } - ], - "primaryOutputs": [ - { - "path": "./" - } - ], - "postActions": [ - { - "description": "Restore NuGet packages required by this project.", - "manualInstructions": [ - { - "text": "Run 'dotnet restore'" - } - ], - "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", - "continueOnError": true - } - ] -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.vscode/launch.json b/blazor-wasm-boilerplate-main/.vscode/launch.json deleted file mode 100644 index cfcc0fe..0000000 --- a/blazor-wasm-boilerplate-main/.vscode/launch.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Launch and Debug Standalone Blazor WebAssembly App", - "type": "blazorwasm", - "request": "launch", - "cwd": "${workspaceFolder}/src/Host", - "url": "https://localhost:5002" - } - ] -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.vscode/settings.json b/blazor-wasm-boilerplate-main/.vscode/settings.json deleted file mode 100644 index fe20a1c..0000000 --- a/blazor-wasm-boilerplate-main/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "razor.disableBlazorDebugPrompt": true, - "cSpell.words": [ - "Blazored", - "borderradius", - "Upto" - ] -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/.vscode/tasks.json b/blazor-wasm-boilerplate-main/.vscode/tasks.json deleted file mode 100644 index 444731d..0000000 --- a/blazor-wasm-boilerplate-main/.vscode/tasks.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "command": "dotnet", - "type": "process", - "args": [ - "build", - "${workspaceFolder}/src/Host/Host.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "publish", - "command": "dotnet", - "type": "process", - "args": [ - "publish", - "${workspaceFolder}/src/Host/Host.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "args": [ - "watch", - "run", - "${workspaceFolder}/src/Host/Host.csproj", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - } - ] -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/Directory.Build.props b/blazor-wasm-boilerplate-main/Directory.Build.props deleted file mode 100644 index 35a60b8..0000000 --- a/blazor-wasm-boilerplate-main/Directory.Build.props +++ /dev/null @@ -1,27 +0,0 @@ - - - - $(MSBuildThisFileDirectory)dotnet.ruleset - false - false - true - $(OutputPath)$(AssemblyName).xml - true - enable - enable - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/Directory.Build.targets b/blazor-wasm-boilerplate-main/Directory.Build.targets deleted file mode 100644 index fd9797b..0000000 --- a/blazor-wasm-boilerplate-main/Directory.Build.targets +++ /dev/null @@ -1,5 +0,0 @@ - - - $(OutputPath)$(AssemblyName).xml - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/Dockerfile b/blazor-wasm-boilerplate-main/Dockerfile deleted file mode 100644 index 2ff39bb..0000000 --- a/blazor-wasm-boilerplate-main/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base -WORKDIR /app -EXPOSE 80 -EXPOSE 443 - -FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build -WORKDIR /src - -COPY ["src/Host/Host.csproj", "src/Host/"] -COPY ["src/Shared/Shared.csproj", "src/Shared/"] -COPY ["src/Client/Client.csproj", "src/Client/"] -COPY ["src/Client.Infrastructure/Client.Infrastructure.csproj", "src/Client.Infrastructure/"] - -RUN dotnet restore "src/Host/Host.csproj" - -COPY . . -WORKDIR "/src/src/Host" - -RUN dotnet publish "Host.csproj" -c Release --no-restore -o /app/publish - -FROM base AS final -WORKDIR /app - -COPY --from=build /app/publish . - -ENTRYPOINT ["dotnet", "FSH.BlazorWebAssembly.Host.dll"] \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.nuspec b/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.nuspec deleted file mode 100644 index 215e16a..0000000 --- a/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.nuspec +++ /dev/null @@ -1,25 +0,0 @@ - - - - FullStackHero.BlazorWebAssembly.Boilerplate - Blazor WebAssembly Boilerplate - FullStackHero - 0.0.1-rc - Mukesh Murugan - - Clean Architecture Boilerplate Template for .NET 6.0 Blazor WebAssembly built for FSH WebAPI with the goodness of MudBlazor Components. - - en-US - MIT - 2021 - https://fullstackhero.net/blazor-webassembly-boilerplate/general/getting-started/ - - - - - cleanarchitecture clean architecture blazor mukesh codewithmukesh fullstackhero solution csharp wasm webassembly mudblazor - ./content/icon.png - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.sln b/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.sln deleted file mode 100644 index 2c94ebb..0000000 --- a/blazor-wasm-boilerplate-main/FSH.BlazorWebAssembly.sln +++ /dev/null @@ -1,62 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31808.319 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Host", "src\Host\Host.csproj", "{CB2F88F0-F072-420C-9B43-162C2C0773F5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client", "src\Client\Client.csproj", "{D5DB6E8A-0161-4EF1-B4D9-467E9A7EF9A7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "src\Shared\Shared.csproj", "{0D7A7E2D-CCF4-496E-9F2B-141712F4C00F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client.Infrastructure", "src\Client.Infrastructure\Client.Infrastructure.csproj", "{28E5DFC7-A05B-40DB-9E35-AC1E84C008A2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F6BE3160-F6ED-4E11-A33F-063DD9186D84}" - ProjectSection(SolutionItems) = preProject - .dockerignore = .dockerignore - .editorconfig = .editorconfig - .gitignore = .gitignore - Directory.Build.props = Directory.Build.props - Directory.Build.targets = Directory.Build.targets - Dockerfile = Dockerfile - dotnet.ruleset = dotnet.ruleset - global.json = global.json - stylecop.json = stylecop.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{F529F1FF-B2FD-46D5-80A1-D4C726230E40}" - ProjectSection(SolutionItems) = preProject - scripts\nswag-regen.ps1 = scripts\nswag-regen.ps1 - scripts\pull-shared-from-webapi.ps1 = scripts\pull-shared-from-webapi.ps1 - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CB2F88F0-F072-420C-9B43-162C2C0773F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB2F88F0-F072-420C-9B43-162C2C0773F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB2F88F0-F072-420C-9B43-162C2C0773F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB2F88F0-F072-420C-9B43-162C2C0773F5}.Release|Any CPU.Build.0 = Release|Any CPU - {D5DB6E8A-0161-4EF1-B4D9-467E9A7EF9A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D5DB6E8A-0161-4EF1-B4D9-467E9A7EF9A7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D5DB6E8A-0161-4EF1-B4D9-467E9A7EF9A7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D5DB6E8A-0161-4EF1-B4D9-467E9A7EF9A7}.Release|Any CPU.Build.0 = Release|Any CPU - {0D7A7E2D-CCF4-496E-9F2B-141712F4C00F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D7A7E2D-CCF4-496E-9F2B-141712F4C00F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D7A7E2D-CCF4-496E-9F2B-141712F4C00F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D7A7E2D-CCF4-496E-9F2B-141712F4C00F}.Release|Any CPU.Build.0 = Release|Any CPU - {28E5DFC7-A05B-40DB-9E35-AC1E84C008A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {28E5DFC7-A05B-40DB-9E35-AC1E84C008A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {28E5DFC7-A05B-40DB-9E35-AC1E84C008A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {28E5DFC7-A05B-40DB-9E35-AC1E84C008A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {175E8AA9-2BB6-41F9-ACE9-71733ED6EDFD} - EndGlobalSection -EndGlobal diff --git a/blazor-wasm-boilerplate-main/LICENSE b/blazor-wasm-boilerplate-main/LICENSE deleted file mode 100644 index 6599f6d..0000000 --- a/blazor-wasm-boilerplate-main/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 fullstackhero - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/blazor-wasm-boilerplate-main/README.md b/blazor-wasm-boilerplate-main/README.md deleted file mode 100644 index 10be676..0000000 --- a/blazor-wasm-boilerplate-main/README.md +++ /dev/null @@ -1,82 +0,0 @@ -[![GitHub](https://img.shields.io/github/license/fullstackhero/blazor-wasm-boilerplate?color=2da44e&style=flat-square)](https://github.com/fullstackhero/blazor-wasm-boilerplate/blob/main/LICENSE) -[![Discord](https://img.shields.io/discord/878181478972928011?color=%237289da&label=Discord&logo=discord&logoColor=%237289da&style=flat-square)](https://discord.gg/yQWpShsKrf) -[![Twitter](https://img.shields.io/twitter/follow/codewithmukesh?color=1DA1F2&label=Twitter&logo=Twitter&style=flat-square)](https://twitter.com/codewithmukesh) - -

- fullstackhero -

- -# Blazor WebAssembly Boilerplate -Built with .NET 6.0 and the goodness of MudBlazor Component Library. Incorporates the most essential Packages your projects will ever need. Follows Clean Architecture Principles. - -## Goals - -The goal of this repository is to help developers / companies kickstart their Web Application Development with a pre-built Blazor WebAssembly Boilerplate that includes several much needed components and features. - -> Note that this is a frontend / client application only! The backend for this application is available in a seperate repository. -> - Find fullstackhero's .NET 6 Web API Boilerplate here - https://github.com/fullstackhero/dotnet-webapi-boilerplate - -## Prerequisites - -- Make sure you have the API Running. Here is FSH Backend - https://github.com/fullstackhero/dotnet-webapi-boilerplate -- Once fullstackhero's .NET 6 Web API is up and running, run the Blazor WebAssembly Project to consume it's services. - -## Getting Started - -Open up your Command Prompt / Powershell and run the following command to install the solution template. - -```powershell -dotnet new --install FullStackHero.BlazorWebAssembly.Boilerplate -``` -or, if you want to use a specific version of the boilerplate, use - -```powershell -dotnet new --install FullStackHero.BlazorWebAssembly.Boilerplate::0.0.1-rc -``` -This would install the `fullstackhero Blazor WebAssembly Boilerplate` template globally on your machine. Do note that, at the time of writing this documentation, the latest available version is **0.0.1-rc** which is also one of the first stable pre-release version of the package. It is highly likely that there is already a newer version available when you are reading this. - -> *To get the latest version of the package, visit [nuget.org](https://www.nuget.org/packages/FullStackHero.BlazorWebAssembly.Boilerplate/)* -> -> *FullStackHero.BlazorWebAssembly.Boilerplate is now in pre-release state. You can find the latest version on NuGet.org* - -**FullStackHero.BlazorWebAssembly.Boilerplate::0.0.1-rc is compatible only with FullStackHero.WebAPI.Boilerplate::0.0.6-rc and above.** - -Get the .NET WebApi Boilerplate by running the following command - -``` -dotnet new --install FullStackHero.WebAPI.Boilerplate::0.0.6-rc -``` - -For more details on getting started, [read this article](https://fullstackhero.net/blazor-webassembly-boilerplate/general/getting-started/) - -## Community - -- Discord [@fullstackhero](https://discord.gg/gdgHRt4mMw) -- Facebook Page [@codewithmukesh](https://facebook.com/codewithmukesh) -- Youtube Channel [@codewithmukesh](https://youtube.com/c/codewithmukesh) - -## Contributors - -Submit your PR and join the elite list! - - - - - -## License - -This project is licensed with the [MIT license](LICENSE). - -## Support :star: - -Has this Project helped you learn something New? or Helped you at work? -Here are a few ways by which you can support. - -- Leave a star! :star: -- Recommend this awesome project to your colleagues. 🥇 -- Do consider endorsing me on LinkedIn for ASP.NET Core - [Connect via LinkedIn](https://codewithmukesh.com/linkedin) 🦸 -- Or, If you want to support this project in the long run, [consider buying me a coffee](https://www.buymeacoffee.com/codewithmukesh)! ☕ - -
- -black-button diff --git a/blazor-wasm-boilerplate-main/dotnet.ruleset b/blazor-wasm-boilerplate-main/dotnet.ruleset deleted file mode 100644 index 3010e47..0000000 --- a/blazor-wasm-boilerplate-main/dotnet.ruleset +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/global.json b/blazor-wasm-boilerplate-main/global.json deleted file mode 100644 index f443bd4..0000000 --- a/blazor-wasm-boilerplate-main/global.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "sdk": { - "version": "6.0", - "rollForward": "latestMajor", - "allowPrerelease": true - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/icon.png b/blazor-wasm-boilerplate-main/icon.png deleted file mode 100644 index fd9fa41873a242c485b6b8570e273e8246be3259..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153939 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%0A&u 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[YRGava~CQ`0J#idFCTB7Mm6Cy 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 b46BggvoE43D^m*Khv?fQGX5 diff --git a/blazor-wasm-boilerplate-main/scripts/nswag-regen.ps1 b/blazor-wasm-boilerplate-main/scripts/nswag-regen.ps1 deleted file mode 100644 index bf62c4a..0000000 --- a/blazor-wasm-boilerplate-main/scripts/nswag-regen.ps1 +++ /dev/null @@ -1,20 +0,0 @@ -# This script is cross-platform, supporting all OSes that PowerShell Core/7 runs on. - -$currentDirectory = Get-Location -$rootDirectory = git rev-parse --show-toplevel -$hostDirectory = Join-Path -Path $rootDirectory -ChildPath 'src/Host' -$infrastructurePrj = Join-Path -Path $rootDirectory -ChildPath 'src/Client.Infrastructure/Client.Infrastructure.csproj' - -Write-Host "Make sure you have run the FSH.WebApi project. `n" -Write-Host "Press any key to continue... `n" -$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'); - -Set-Location -Path $hostDirectory -Write-Host "Host Directory is $hostDirectory `n" - -<# Run command #> -dotnet build -t:NSwag $infrastructurePrj - -Set-Location -Path $currentDirectory -Write-Host -NoNewLine 'NSwag Regenerated. Press any key to continue...'; -$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown'); diff --git a/blazor-wasm-boilerplate-main/scripts/pull-shared-from-webapi.ps1 b/blazor-wasm-boilerplate-main/scripts/pull-shared-from-webapi.ps1 deleted file mode 100644 index 35dd0ab..0000000 --- a/blazor-wasm-boilerplate-main/scripts/pull-shared-from-webapi.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -# This script is cross-platform, supporting all OSes that PowerShell Core/7 runs on. - -$rootDirectory = git rev-parse --show-toplevel -$sourcePath = Join-Path -Path $rootDirectory -ChildPath '..\dotnet-webapi-boilerplate\src\Core\Shared' -$destinationPath = Join-Path -Path $rootDirectory -ChildPath 'src\Shared' - -$excludes = @('bin', 'obj') - -Write-Host "Pull changes from the Fullstackhero WebApi Shared Project" -write-Host "---------------------------------------------------------" -Write-Host - -If ($null -eq $sourcePath) { - Write-Error "Error! The expected path of WebApi Shared Project does not exist: $sourcePath" - Exit 1 -} - -if ($null -eq (Resolve-Path $destinationPath)) { - # Ensure the destination exists - try - { - New-Item -Path $destinationPath -ItemType Directory -ErrorAction Stop | Out-Null - } - catch - { - Write-Error "Error! Unable to create output path \"$destinationPath\"" - Exit 1 - } -} - -Write-Host "WARNING! This will delete everything in the shared project ($($destinationPath | Resolve-Path))" -Write-Host "and then copy over the whole project from the webapi repository ($($sourcePath | Resolve-Path))" -Write-Host -Read-Host -Prompt "Press ENTER to continue" - -Remove-Item -Path "$destinationPath" -Recurse -Force -Copy-Item -Path (Get-Item -Path "$sourcePath" -Exclude $excludes).FullName -Destination "$destinationPath" -Recurse -Force - -Write-Host "Changes have been pulled." -Write-Host \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/FSHApi.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/FSHApi.cs deleted file mode 100644 index a74762b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/FSHApi.cs +++ /dev/null @@ -1,6849 +0,0 @@ -//---------------------- -// -// Generated using the NSwag toolchain v13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) -// -//---------------------- - -#nullable enable - -#pragma warning disable 108 // Disable "CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use the new keyword if hiding was intended." -#pragma warning disable 114 // Disable "CS0114 '{derivedDto}.RaisePropertyChanged(String)' hides inherited member 'dtoBase.RaisePropertyChanged(String)'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword." -#pragma warning disable 472 // Disable "CS0472 The result of the expression is always 'false' since a value of type 'Int32' is never equal to 'null' of type 'Int32?' -#pragma warning disable 1573 // Disable "CS1573 Parameter '...' has no matching param tag in the XML comment for ... -#pragma warning disable 1591 // Disable "CS1591 Missing XML comment for publicly visible type or member ..." -#pragma warning disable 8073 // Disable "CS8073 The result of the expression is always 'false' since a value of type 'T' is never equal to 'null' of type 'T?'" -#pragma warning disable 3016 // Disable "CS3016 Arrays as attribute arguments is not CLS-compliant" -#pragma warning disable 8603 // Disable "CS8603 Possible null reference return" - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient -{ - using System = global::System; - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface ITenantsClient : IApiService - { - /// - /// Get a list of all tenants. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a list of all tenants. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken); - - /// - /// Create a new tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateTenantRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateTenantRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Get tenant details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get tenant details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Activate a tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ActivateAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Activate a tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ActivateAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Deactivate a tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeactivateAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Deactivate a tenant. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeactivateAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Upgrade a tenant's subscription. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpgradeSubscriptionAsync(string? id, UpgradeSubscriptionRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Upgrade a tenant's subscription. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpgradeSubscriptionAsync(string? id, UpgradeSubscriptionRequest request, System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class TenantsClient : ITenantsClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public TenantsClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Get a list of all tenants. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetListAsync() - { - return GetListAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a list of all tenants. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Create a new tenant. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task CreateAsync(CreateTenantRequest request) - { - return CreateAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new tenant. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CreateAsync(CreateTenantRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get tenant details. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetAsync(string? id) - { - return GetAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get tenant details. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Activate a tenant. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ActivateAsync(string? id) - { - return ActivateAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Activate a tenant. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ActivateAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants/{id}/activate"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Deactivate a tenant. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task DeactivateAsync(string? id) - { - return DeactivateAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Deactivate a tenant. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task DeactivateAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants/{id}/deactivate"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "application/json"); - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Upgrade a tenant's subscription. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task UpgradeSubscriptionAsync(string? id, UpgradeSubscriptionRequest request) - { - return UpgradeSubscriptionAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Upgrade a tenant's subscription. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpgradeSubscriptionAsync(string? id, UpgradeSubscriptionRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tenants/{id}/upgrade"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IRolesClient : IApiService - { - /// - /// Get a list of all roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a list of all roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken); - - /// - /// Create or update a role. - /// - /// A server side error occurred. - System.Threading.Tasks.Task RegisterRoleAsync(CreateOrUpdateRoleRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create or update a role. - /// - /// A server side error occurred. - System.Threading.Tasks.Task RegisterRoleAsync(CreateOrUpdateRoleRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Get role details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get role details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Delete a role. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a role. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Get role details with its permissions. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdWithPermissionsAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get role details with its permissions. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdWithPermissionsAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Update a role's permissions. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdatePermissionsAsync(string? id, UpdateRolePermissionsRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a role's permissions. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdatePermissionsAsync(string? id, UpdateRolePermissionsRequest request, System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class RolesClient : IRolesClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public RolesClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Get a list of all roles. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetListAsync() - { - return GetListAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a list of all roles. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Create or update a role. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task RegisterRoleAsync(CreateOrUpdateRoleRequest request) - { - return RegisterRoleAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create or update a role. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task RegisterRoleAsync(CreateOrUpdateRoleRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get role details. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetByIdAsync(string? id) - { - return GetByIdAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get role details. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetByIdAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Delete a role. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task DeleteAsync(string? id) - { - return DeleteAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a role. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task DeleteAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("DELETE"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get role details with its permissions. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetByIdWithPermissionsAsync(string? id) - { - return GetByIdWithPermissionsAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get role details with its permissions. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetByIdWithPermissionsAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles/{id}/permissions"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Update a role's permissions. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task UpdatePermissionsAsync(string? id, UpdateRolePermissionsRequest request) - { - return UpdatePermissionsAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a role's permissions. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpdatePermissionsAsync(string? id, UpdateRolePermissionsRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/roles/{id}/permissions"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("PUT"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface ITokensClient : IApiService - { - /// - /// Request an access token using credentials. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task GetTokenAsync(string tenant, TokenRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request an access token using credentials. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task GetTokenAsync(string tenant, TokenRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Request an access token using a refresh token. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task RefreshAsync(string tenant, RefreshTokenRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request an access token using a refresh token. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task RefreshAsync(string tenant, RefreshTokenRequest request, System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class TokensClient : ITokensClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public TokensClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Request an access token using credentials. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetTokenAsync(string tenant, TokenRequest request) - { - return GetTokenAsync(tenant, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request an access token using credentials. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetTokenAsync(string tenant, TokenRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tokens"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - - if (tenant == null) - throw new System.ArgumentNullException("tenant"); - request_.Headers.TryAddWithoutValidation("tenant", ConvertToString(tenant, System.Globalization.CultureInfo.InvariantCulture)); - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Request an access token using a refresh token. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual System.Threading.Tasks.Task RefreshAsync(string tenant, RefreshTokenRequest request) - { - return RefreshAsync(tenant, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request an access token using a refresh token. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task RefreshAsync(string tenant, RefreshTokenRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/tokens/refresh"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - - if (tenant == null) - throw new System.ArgumentNullException("tenant"); - request_.Headers.TryAddWithoutValidation("tenant", ConvertToString(tenant, System.Globalization.CultureInfo.InvariantCulture)); - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IUsersClient : IApiService - { - /// - /// Get list of all users. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get list of all users. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken); - - /// - /// Creates a new user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateUserRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Creates a new user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateUserRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Get a user's details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a user's details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetByIdAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Get a user's roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetRolesAsync(string? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a user's roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetRolesAsync(string? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Update a user's assigned roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task AssignRolesAsync(string? id, UserRolesRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a user's assigned roles. - /// - /// A server side error occurred. - System.Threading.Tasks.Task AssignRolesAsync(string? id, UserRolesRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Anonymous user creates a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task SelfRegisterAsync(string tenant, CreateUserRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Anonymous user creates a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task SelfRegisterAsync(string tenant, CreateUserRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Toggle a user's active status. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ToggleStatusAsync(string? id, ToggleUserStatusRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Toggle a user's active status. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ToggleStatusAsync(string? id, ToggleUserStatusRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Confirm email address for a user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ConfirmEmailAsync(string? tenant, string? userId, string? code); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Confirm email address for a user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ConfirmEmailAsync(string? tenant, string? userId, string? code, System.Threading.CancellationToken cancellationToken); - - /// - /// Confirm phone number for a user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ConfirmPhoneNumberAsync(string? userId, string? code); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Confirm phone number for a user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ConfirmPhoneNumberAsync(string? userId, string? code, System.Threading.CancellationToken cancellationToken); - - /// - /// Request a pasword reset email for a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task ForgotPasswordAsync(string tenant, ForgotPasswordRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request a pasword reset email for a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - System.Threading.Tasks.Task ForgotPasswordAsync(string tenant, ForgotPasswordRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Reset a user's password. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ResetPasswordAsync(ResetPasswordRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Reset a user's password. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ResetPasswordAsync(ResetPasswordRequest request, System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UsersClient : IUsersClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public UsersClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Get list of all users. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetListAsync() - { - return GetListAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get list of all users. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetListAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Creates a new user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task CreateAsync(CreateUserRequest request) - { - return CreateAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Creates a new user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CreateAsync(CreateUserRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get a user's details. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetByIdAsync(string? id) - { - return GetByIdAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a user's details. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetByIdAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get a user's roles. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetRolesAsync(string? id) - { - return GetRolesAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get a user's roles. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetRolesAsync(string? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/{id}/roles"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Update a user's assigned roles. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task AssignRolesAsync(string? id, UserRolesRequest request) - { - return AssignRolesAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a user's assigned roles. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task AssignRolesAsync(string? id, UserRolesRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/{id}/roles"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Anonymous user creates a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual System.Threading.Tasks.Task SelfRegisterAsync(string tenant, CreateUserRequest request) - { - return SelfRegisterAsync(tenant, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Anonymous user creates a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SelfRegisterAsync(string tenant, CreateUserRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/self-register"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - - if (tenant == null) - throw new System.ArgumentNullException("tenant"); - request_.Headers.TryAddWithoutValidation("tenant", ConvertToString(tenant, System.Globalization.CultureInfo.InvariantCulture)); - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Toggle a user's active status. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ToggleStatusAsync(string? id, ToggleUserStatusRequest request) - { - return ToggleStatusAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Toggle a user's active status. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ToggleStatusAsync(string? id, ToggleUserStatusRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/{id}/toggle-status"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - return; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Confirm email address for a user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ConfirmEmailAsync(string? tenant, string? userId, string? code) - { - return ConfirmEmailAsync(tenant, userId, code, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Confirm email address for a user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ConfirmEmailAsync(string? tenant, string? userId, string? code, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/confirm-email?"); - if (tenant != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("tenant") + "=").Append(System.Uri.EscapeDataString(ConvertToString(tenant, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - if (userId != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("userId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(userId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - if (code != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("code") + "=").Append(System.Uri.EscapeDataString(ConvertToString(code, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - urlBuilder_.Length--; - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Confirm phone number for a user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ConfirmPhoneNumberAsync(string? userId, string? code) - { - return ConfirmPhoneNumberAsync(userId, code, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Confirm phone number for a user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ConfirmPhoneNumberAsync(string? userId, string? code, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/confirm-phone-number?"); - if (userId != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("userId") + "=").Append(System.Uri.EscapeDataString(ConvertToString(userId, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - if (code != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("code") + "=").Append(System.Uri.EscapeDataString(ConvertToString(code, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - urlBuilder_.Length--; - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Request a pasword reset email for a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ForgotPasswordAsync(string tenant, ForgotPasswordRequest request) - { - return ForgotPasswordAsync(tenant, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Request a pasword reset email for a user. - /// - /// Input your tenant Id to access this API - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ForgotPasswordAsync(string tenant, ForgotPasswordRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/forgot-password"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - - if (tenant == null) - throw new System.ArgumentNullException("tenant"); - request_.Headers.TryAddWithoutValidation("tenant", ConvertToString(tenant, System.Globalization.CultureInfo.InvariantCulture)); - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Reset a user's password. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ResetPasswordAsync(ResetPasswordRequest request) - { - return ResetPasswordAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Reset a user's password. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ResetPasswordAsync(ResetPasswordRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/users/reset-password"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IPersonalClient : IApiService - { - /// - /// Get profile details of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetProfileAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get profile details of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetProfileAsync(System.Threading.CancellationToken cancellationToken); - - /// - /// Update profile details of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateProfileAsync(UpdateUserRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update profile details of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateProfileAsync(UpdateUserRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Change password of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ChangePasswordAsync(ChangePasswordRequest model); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Change password of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ChangePasswordAsync(ChangePasswordRequest model, System.Threading.CancellationToken cancellationToken); - - /// - /// Get permissions of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetPermissionsAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get permissions of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetPermissionsAsync(System.Threading.CancellationToken cancellationToken); - - /// - /// Get audit logs of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetLogsAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get audit logs of currently logged in user. - /// - /// A server side error occurred. - System.Threading.Tasks.Task> GetLogsAsync(System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class PersonalClient : IPersonalClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public PersonalClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Get profile details of currently logged in user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetProfileAsync() - { - return GetProfileAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get profile details of currently logged in user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetProfileAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/personal/profile"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Update profile details of currently logged in user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task UpdateProfileAsync(UpdateUserRequest request) - { - return UpdateProfileAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update profile details of currently logged in user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpdateProfileAsync(UpdateUserRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/personal/profile"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("PUT"); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - return; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Change password of currently logged in user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ChangePasswordAsync(ChangePasswordRequest model) - { - return ChangePasswordAsync(model, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Change password of currently logged in user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ChangePasswordAsync(ChangePasswordRequest model, System.Threading.CancellationToken cancellationToken) - { - if (model == null) - throw new System.ArgumentNullException("model"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/personal/change-password"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(model, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("PUT"); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - return; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get permissions of currently logged in user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetPermissionsAsync() - { - return GetPermissionsAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get permissions of currently logged in user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetPermissionsAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/personal/permissions"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get audit logs of currently logged in user. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task> GetLogsAsync() - { - return GetLogsAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get audit logs of currently logged in user. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task> GetLogsAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/personal/logs"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync>(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IDashboardClient : IApiService - { - /// - /// Get statistics for the dashboard. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get statistics for the dashboard. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class DashboardClient : IDashboardClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public DashboardClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Get statistics for the dashboard. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetAsync() - { - return GetAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get statistics for the dashboard. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/dashboard"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IBrandsClient : IApiService - { - /// - /// Search brands using available filters. - /// - /// A server side error occurred. - System.Threading.Tasks.Task SearchAsync(SearchBrandsRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Search brands using available filters. - /// - /// A server side error occurred. - System.Threading.Tasks.Task SearchAsync(SearchBrandsRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Get brand details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(System.Guid id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get brand details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(System.Guid id, System.Threading.CancellationToken cancellationToken); - - /// - /// Update a brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateBrandRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateBrandRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Delete a brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(System.Guid id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(System.Guid id, System.Threading.CancellationToken cancellationToken); - - /// - /// Create a new brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateBrandRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new brand. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateBrandRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Generate a number of random brands. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GenerateRandomAsync(GenerateRandomBrandRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Generate a number of random brands. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GenerateRandomAsync(GenerateRandomBrandRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Delete the brands generated with the generate-random call. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteRandomAsync(); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete the brands generated with the generate-random call. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteRandomAsync(System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class BrandsClient : IBrandsClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public BrandsClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Search brands using available filters. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task SearchAsync(SearchBrandsRequest request) - { - return SearchAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Search brands using available filters. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SearchAsync(SearchBrandsRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/search"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get brand details. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetAsync(System.Guid id) - { - return GetAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get brand details. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetAsync(System.Guid id, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Update a brand. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateBrandRequest request) - { - return UpdateAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a brand. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateBrandRequest request, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("PUT"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Delete a brand. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task DeleteAsync(System.Guid id) - { - return DeleteAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a brand. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task DeleteAsync(System.Guid id, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("DELETE"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Create a new brand. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task CreateAsync(CreateBrandRequest request) - { - return CreateAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new brand. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CreateAsync(CreateBrandRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Generate a number of random brands. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GenerateRandomAsync(GenerateRandomBrandRequest request) - { - return GenerateRandomAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Generate a number of random brands. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GenerateRandomAsync(GenerateRandomBrandRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/generate-random"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Delete the brands generated with the generate-random call. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task DeleteRandomAsync() - { - return DeleteRandomAsync(System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete the brands generated with the generate-random call. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task DeleteRandomAsync(System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/brands/delete-random"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("DELETE"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial interface IProductsClient : IApiService - { - /// - /// Search products using available filters. - /// - /// A server side error occurred. - System.Threading.Tasks.Task SearchAsync(SearchProductsRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Search products using available filters. - /// - /// A server side error occurred. - System.Threading.Tasks.Task SearchAsync(SearchProductsRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Get product details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(System.Guid id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get product details. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetAsync(System.Guid id, System.Threading.CancellationToken cancellationToken); - - /// - /// Update a product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateProductRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateProductRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Delete a product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(System.Guid id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task DeleteAsync(System.Guid id, System.Threading.CancellationToken cancellationToken); - - /// - /// Get product details via dapper. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetDapperAsync(System.Guid? id); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get product details via dapper. - /// - /// A server side error occurred. - System.Threading.Tasks.Task GetDapperAsync(System.Guid? id, System.Threading.CancellationToken cancellationToken); - - /// - /// Create a new product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateProductRequest request); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new product. - /// - /// A server side error occurred. - System.Threading.Tasks.Task CreateAsync(CreateProductRequest request, System.Threading.CancellationToken cancellationToken); - - /// - /// Export a products. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ExportAsync(ExportProductsRequest filter); - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Export a products. - /// - /// A server side error occurred. - System.Threading.Tasks.Task ExportAsync(ExportProductsRequest filter, System.Threading.CancellationToken cancellationToken); - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ProductsClient : IProductsClient - { - private System.Net.Http.HttpClient _httpClient; - private System.Lazy _settings; - - public ProductsClient(System.Net.Http.HttpClient httpClient) - { - _httpClient = httpClient; - _settings = new System.Lazy(CreateSerializerSettings); - } - - private Newtonsoft.Json.JsonSerializerSettings CreateSerializerSettings() - { - var settings = new Newtonsoft.Json.JsonSerializerSettings(); - UpdateJsonSerializerSettings(settings); - return settings; - } - - protected Newtonsoft.Json.JsonSerializerSettings JsonSerializerSettings { get { return _settings.Value; } } - - partial void UpdateJsonSerializerSettings(Newtonsoft.Json.JsonSerializerSettings settings); - - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, string url); - partial void PrepareRequest(System.Net.Http.HttpClient client, System.Net.Http.HttpRequestMessage request, System.Text.StringBuilder urlBuilder); - partial void ProcessResponse(System.Net.Http.HttpClient client, System.Net.Http.HttpResponseMessage response); - - /// - /// Search products using available filters. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task SearchAsync(SearchProductsRequest request) - { - return SearchAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Search products using available filters. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task SearchAsync(SearchProductsRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/search"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get product details. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetAsync(System.Guid id) - { - return GetAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get product details. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetAsync(System.Guid id, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Update a product. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateProductRequest request) - { - return UpdateAsync(id, request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Update a product. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task UpdateAsync(System.Guid id, UpdateProductRequest request, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("PUT"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Delete a product. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task DeleteAsync(System.Guid id) - { - return DeleteAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Delete a product. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task DeleteAsync(System.Guid id, System.Threading.CancellationToken cancellationToken) - { - if (id == null) - throw new System.ArgumentNullException("id"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/{id}"); - urlBuilder_.Replace("{id}", System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("DELETE"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Get product details via dapper. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task GetDapperAsync(System.Guid? id) - { - return GetDapperAsync(id, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Get product details via dapper. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task GetDapperAsync(System.Guid? id, System.Threading.CancellationToken cancellationToken) - { - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/dapper?"); - if (id != null) - { - urlBuilder_.Append(System.Uri.EscapeDataString("id") + "=").Append(System.Uri.EscapeDataString(ConvertToString(id, System.Globalization.CultureInfo.InvariantCulture))).Append("&"); - } - urlBuilder_.Length--; - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - request_.Method = new System.Net.Http.HttpMethod("GET"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Create a new product. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task CreateAsync(CreateProductRequest request) - { - return CreateAsync(request, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Create a new product. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task CreateAsync(CreateProductRequest request, System.Threading.CancellationToken cancellationToken) - { - if (request == null) - throw new System.ArgumentNullException("request"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/json")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - return objectResponse_.Object; - } - else - if (status_ == 400) - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - else - { - var objectResponse_ = await ReadObjectResponseAsync(response_, headers_, cancellationToken).ConfigureAwait(false); - if (objectResponse_.Object == null) - { - throw new ApiException("Response was null which was not expected.", status_, objectResponse_.Text, headers_, null); - } - throw new ApiException("A server side error occurred.", status_, objectResponse_.Text, headers_, objectResponse_.Object, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - /// - /// Export a products. - /// - /// A server side error occurred. - public virtual System.Threading.Tasks.Task ExportAsync(ExportProductsRequest filter) - { - return ExportAsync(filter, System.Threading.CancellationToken.None); - } - - /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. - /// - /// Export a products. - /// - /// A server side error occurred. - public virtual async System.Threading.Tasks.Task ExportAsync(ExportProductsRequest filter, System.Threading.CancellationToken cancellationToken) - { - if (filter == null) - throw new System.ArgumentNullException("filter"); - - var urlBuilder_ = new System.Text.StringBuilder(); - urlBuilder_.Append("api/v1/products/export"); - - var client_ = _httpClient; - var disposeClient_ = false; - try - { - using (var request_ = new System.Net.Http.HttpRequestMessage()) - { - var content_ = new System.Net.Http.StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(filter, _settings.Value)); - content_.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); - request_.Content = content_; - request_.Method = new System.Net.Http.HttpMethod("POST"); - request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("application/octet-stream")); - - PrepareRequest(client_, request_, urlBuilder_); - - var url_ = urlBuilder_.ToString(); - request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute); - - PrepareRequest(client_, request_, url_); - - var response_ = await client_.SendAsync(request_, System.Net.Http.HttpCompletionOption.ResponseHeadersRead, cancellationToken).ConfigureAwait(false); - var disposeResponse_ = true; - try - { - var headers_ = System.Linq.Enumerable.ToDictionary(response_.Headers, h_ => h_.Key, h_ => h_.Value); - if (response_.Content != null && response_.Content.Headers != null) - { - foreach (var item_ in response_.Content.Headers) - headers_[item_.Key] = item_.Value; - } - - ProcessResponse(client_, response_); - - var status_ = (int)response_.StatusCode; - if (status_ == 200 || status_ == 206) - { - var responseStream_ = response_.Content == null ? System.IO.Stream.Null : await response_.Content.ReadAsStreamAsync().ConfigureAwait(false); - var fileResponse_ = new FileResponse(status_, headers_, responseStream_, null, response_); - disposeClient_ = false; disposeResponse_ = false; // response and client are disposed by FileResponse - return fileResponse_; - } - else - { - var responseData_ = response_.Content == null ? null : await response_.Content.ReadAsStringAsync().ConfigureAwait(false); - throw new ApiException("The HTTP status code of the response was not expected (" + status_ + ").", status_, responseData_, headers_, null); - } - } - finally - { - if (disposeResponse_) - response_.Dispose(); - } - } - } - finally - { - if (disposeClient_) - client_.Dispose(); - } - } - - protected struct ObjectResponseResult - { - public ObjectResponseResult(T responseObject, string responseText) - { - this.Object = responseObject; - this.Text = responseText; - } - - public T Object { get; } - - public string Text { get; } - } - - public bool ReadResponseAsString { get; set; } - - protected virtual async System.Threading.Tasks.Task> ReadObjectResponseAsync(System.Net.Http.HttpResponseMessage response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Threading.CancellationToken cancellationToken) - { - if (response == null || response.Content == null) - { - return new ObjectResponseResult(default(T)!, string.Empty); - } - - if (ReadResponseAsString) - { - var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText, JsonSerializerSettings); - return new ObjectResponseResult(typedBody!, responseText); - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body string as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception); - } - } - else - { - try - { - using (var responseStream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false)) - using (var streamReader = new System.IO.StreamReader(responseStream)) - using (var jsonTextReader = new Newtonsoft.Json.JsonTextReader(streamReader)) - { - var serializer = Newtonsoft.Json.JsonSerializer.Create(JsonSerializerSettings); - var typedBody = serializer.Deserialize(jsonTextReader); - return new ObjectResponseResult(typedBody!, string.Empty); - } - } - catch (Newtonsoft.Json.JsonException exception) - { - var message = "Could not deserialize the response body stream as " + typeof(T).FullName + "."; - throw new ApiException(message, (int)response.StatusCode, string.Empty, headers, exception); - } - } - } - - private string ConvertToString(object? value, System.Globalization.CultureInfo cultureInfo) - { - if (value == null) - { - return ""; - } - - if (value is System.Enum) - { - var name = System.Enum.GetName(value.GetType(), value); - if (name != null) - { - var field = System.Reflection.IntrospectionExtensions.GetTypeInfo(value.GetType()).GetDeclaredField(name); - if (field != null) - { - var attribute = System.Reflection.CustomAttributeExtensions.GetCustomAttribute(field, typeof(System.Runtime.Serialization.EnumMemberAttribute)) - as System.Runtime.Serialization.EnumMemberAttribute; - if (attribute != null) - { - return attribute.Value != null ? attribute.Value : name; - } - } - - var converted = System.Convert.ToString(System.Convert.ChangeType(value, System.Enum.GetUnderlyingType(value.GetType()), cultureInfo)); - return converted == null ? string.Empty : converted; - } - } - else if (value is bool) - { - return System.Convert.ToString((bool)value, cultureInfo).ToLowerInvariant(); - } - else if (value is byte[]) - { - return System.Convert.ToBase64String((byte[]) value); - } - else if (value.GetType().IsArray) - { - var array = System.Linq.Enumerable.OfType((System.Array) value); - return string.Join(",", System.Linq.Enumerable.Select(array, o => ConvertToString(o, cultureInfo))); - } - - var result = System.Convert.ToString(value, cultureInfo); - return result == null ? "" : result; - } - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class TenantDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("connectionString", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ConnectionString { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("adminEmail", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string AdminEmail { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("isActive", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool IsActive { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("validUpto", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.DateTime ValidUpto { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("issuer", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Issuer { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class HttpValidationProblemDetails : ProblemDetails - { - [Newtonsoft.Json.JsonProperty("errors", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.IDictionary> Errors { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ProblemDetails - { - [Newtonsoft.Json.JsonProperty("type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Type { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("title", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Title { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("status", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int? Status { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("detail", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Detail { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("instance", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Instance { get; set; } = default!; - - private System.Collections.Generic.IDictionary _additionalProperties = new System.Collections.Generic.Dictionary(); - - [Newtonsoft.Json.JsonExtensionData] - public System.Collections.Generic.IDictionary AdditionalProperties - { - get { return _additionalProperties; } - set { _additionalProperties = value; } - } - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ErrorResult - { - [Newtonsoft.Json.JsonProperty("messages", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection? Messages { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("source", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Source { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("exception", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Exception { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("errorId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ErrorId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("supportMessage", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? SupportMessage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("statusCode", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int StatusCode { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CreateTenantRequest - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("connectionString", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ConnectionString { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("adminEmail", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.RegularExpression(@"^[^@]+@[^@]+$")] - public string AdminEmail { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("issuer", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Issuer { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UpgradeSubscriptionRequest - { - [Newtonsoft.Json.JsonProperty("tenantId", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string TenantId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("extendedExpiryDate", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.DateTime ExtendedExpiryDate { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class RoleDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("permissions", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection? Permissions { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UpdateRolePermissionsRequest - { - [Newtonsoft.Json.JsonProperty("roleId", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string RoleId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("permissions", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public System.Collections.Generic.ICollection Permissions { get; set; } = new System.Collections.ObjectModel.Collection(); - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CreateOrUpdateRoleRequest - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class TokenResponse - { - [Newtonsoft.Json.JsonProperty("token", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Token { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("refreshToken", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string RefreshToken { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("refreshTokenExpiryTime", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.DateTime RefreshTokenExpiryTime { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class TokenRequest - { - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.RegularExpression(@"^[^@]+@[^@]+$")] - public string Email { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("password", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Password { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class RefreshTokenRequest - { - [Newtonsoft.Json.JsonProperty("token", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Token { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("refreshToken", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string RefreshToken { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UserDetailsDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("userName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? UserName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("firstName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? FirstName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("lastName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? LastName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Email { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("isActive", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool IsActive { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("emailConfirmed", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool EmailConfirmed { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("phoneNumber", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? PhoneNumber { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("imageUrl", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ImageUrl { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UserRoleDto - { - [Newtonsoft.Json.JsonProperty("roleId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? RoleId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("roleName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? RoleName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("enabled", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool Enabled { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UserRolesRequest - { - [Newtonsoft.Json.JsonProperty("userRoles", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection UserRoles { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CreateUserRequest - { - [Newtonsoft.Json.JsonProperty("firstName", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string FirstName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("lastName", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string LastName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.RegularExpression(@"^[^@]+@[^@]+$")] - public string Email { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("userName", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string UserName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("password", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Password { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("confirmPassword", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string ConfirmPassword { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("phoneNumber", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? PhoneNumber { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ToggleUserStatusRequest - { - [Newtonsoft.Json.JsonProperty("activateUser", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool ActivateUser { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("userId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? UserId { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ForgotPasswordRequest - { - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.RegularExpression(@"^[^@]+@[^@]+$")] - public string Email { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ResetPasswordRequest - { - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Email { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("password", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Password { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("token", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Token { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UpdateUserRequest - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("firstName", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string FirstName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("lastName", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string LastName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("phoneNumber", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? PhoneNumber { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("email", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.RegularExpression(@"^[^@]+@[^@]+$")] - public string Email { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("image", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public FileUploadRequest? Image { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("deleteCurrentImage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool DeleteCurrentImage { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class FileUploadRequest - { - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(150, MinimumLength = 1)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("extension", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(5, MinimumLength = 1)] - public string Extension { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Data { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ChangePasswordRequest - { - [Newtonsoft.Json.JsonProperty("password", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string Password { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("newPassword", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public string NewPassword { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("confirmNewPassword", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string ConfirmNewPassword { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class AuditDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("userId", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid UserId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Type { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("tableName", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? TableName { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("dateTime", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.DateTime DateTime { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("oldValues", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? OldValues { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("newValues", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? NewValues { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("affectedColumns", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? AffectedColumns { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("primaryKey", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? PrimaryKey { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class StatsDto - { - [Newtonsoft.Json.JsonProperty("productCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int ProductCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brandCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int BrandCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("userCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int UserCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("roleCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int RoleCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("dataEnterBarChart", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection DataEnterBarChart { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("productByBrandTypePieChart", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.IDictionary? ProductByBrandTypePieChart { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ChartSeries - { - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection? Data { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class PaginationResponseOfBrandDto - { - [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection Data { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("currentPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int CurrentPage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("totalPages", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int TotalPages { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("totalCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int TotalCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("pageSize", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int PageSize { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("hasPreviousPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool HasPreviousPage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("hasNextPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool HasNextPage { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class BrandDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class SearchBrandsRequest : PaginationFilter - { - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class PaginationFilter : BaseFilter - { - [Newtonsoft.Json.JsonProperty("pageNumber", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int PageNumber { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("pageSize", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int PageSize { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("orderBy", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection? OrderBy { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class BaseFilter - { - /// - /// Column Wise Search is Supported. - /// - [Newtonsoft.Json.JsonProperty("advancedSearch", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public Search? AdvancedSearch { get; set; } = default!; - - /// - /// Keyword to Search in All the available columns of the Resource. - /// - [Newtonsoft.Json.JsonProperty("keyword", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Keyword { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class Search - { - [Newtonsoft.Json.JsonProperty("fields", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection Fields { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("keyword", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Keyword { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CreateBrandRequest - { - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UpdateBrandRequest - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class GenerateRandomBrandRequest - { - [Newtonsoft.Json.JsonProperty("nSeed", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int NSeed { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class PaginationResponseOfProductDto - { - [Newtonsoft.Json.JsonProperty("data", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Collections.Generic.ICollection Data { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("currentPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int CurrentPage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("totalPages", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int TotalPages { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("totalCount", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int TotalCount { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("pageSize", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public int PageSize { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("hasPreviousPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool HasPreviousPage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("hasNextPage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool HasNextPage { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ProductDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("rate", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal Rate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("imagePath", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ImagePath { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brandId", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid BrandId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brandName", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string BrandName { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class SearchProductsRequest : PaginationFilter - { - [Newtonsoft.Json.JsonProperty("brandId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid? BrandId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("minimumRate", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal? MinimumRate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("maximumRate", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal? MaximumRate { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ProductDetailsDto - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("rate", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal Rate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("imagePath", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? ImagePath { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brand", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public BrandDto Brand { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class CreateProductRequest - { - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("rate", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - [System.ComponentModel.DataAnnotations.Range(1.0D, double.MaxValue)] - public decimal Rate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brandId", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public System.Guid BrandId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("image", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public FileUploadRequest? Image { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class UpdateProductRequest - { - [Newtonsoft.Json.JsonProperty("id", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid Id { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("name", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - [System.ComponentModel.DataAnnotations.StringLength(75, MinimumLength = 1)] - public string Name { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("description", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public string? Description { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("rate", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - [System.ComponentModel.DataAnnotations.Range(1.0D, double.MaxValue)] - public decimal Rate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("brandId", Required = Newtonsoft.Json.Required.Always)] - [System.ComponentModel.DataAnnotations.Required] - public System.Guid BrandId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("deleteCurrentImage", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public bool DeleteCurrentImage { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("image", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public FileUploadRequest? Image { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ExportProductsRequest : BaseFilter - { - [Newtonsoft.Json.JsonProperty("brandId", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public System.Guid? BrandId { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("minimumRate", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal? MinimumRate { get; set; } = default!; - - [Newtonsoft.Json.JsonProperty("maximumRate", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] - public decimal? MaximumRate { get; set; } = default!; - - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class FileResponse : System.IDisposable - { - private System.IDisposable? _client; - private System.IDisposable? _response; - - public int StatusCode { get; private set; } - - public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; } - - public System.IO.Stream Stream { get; private set; } - - public bool IsPartial - { - get { return StatusCode == 206; } - } - - public FileResponse(int statusCode, System.Collections.Generic.IReadOnlyDictionary> headers, System.IO.Stream stream, System.IDisposable? client, System.IDisposable? response) - { - StatusCode = statusCode; - Headers = headers; - Stream = stream; - _client = client; - _response = response; - } - - public void Dispose() - { - Stream.Dispose(); - if (_response != null) - _response.Dispose(); - if (_client != null) - _client.Dispose(); - } - } - - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ApiException : System.Exception - { - public int StatusCode { get; private set; } - - public string? Response { get; private set; } - - public System.Collections.Generic.IReadOnlyDictionary> Headers { get; private set; } - - public ApiException(string message, int statusCode, string? response, System.Collections.Generic.IReadOnlyDictionary> headers, System.Exception? innerException) - : base(message + "\n\nStatus: " + statusCode + "\nResponse: \n" + ((response == null) ? "(null)" : response.Substring(0, response.Length >= 512 ? 512 : response.Length)), innerException) - { - StatusCode = statusCode; - Response = response; - Headers = headers; - } - - public override string ToString() - { - return string.Format("HTTP Response: \n\n{0}\n\n{1}", Response, base.ToString()); - } - } - - [System.CodeDom.Compiler.GeneratedCode("NSwag", "13.15.10.0 (NJsonSchema v10.6.10.0 (Newtonsoft.Json v13.0.0.0))")] - public partial class ApiException : ApiException - { - public TResult Result { get; private set; } - - public ApiException(string message, int statusCode, string? response, System.Collections.Generic.IReadOnlyDictionary> headers, TResult result, System.Exception? innerException) - : base(message, statusCode, response, headers, innerException) - { - Result = result; - } - } - -} - -#pragma warning restore 1591 -#pragma warning restore 1573 -#pragma warning restore 472 -#pragma warning restore 114 -#pragma warning restore 108 -#pragma warning restore 3016 -#pragma warning restore 8603 \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/IApiService.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/IApiService.cs deleted file mode 100644 index 424beb4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/IApiService.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; - -public interface IApiService -{ -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/nswag.json b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/nswag.json deleted file mode 100644 index 47351c6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/ApiClient/nswag.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "runtime": "Net60", - "defaultVariables": null, - "documentGenerator": { - "fromDocument": { - "json": "", - "url": "https://localhost:5001/swagger/v1/swagger.json", - "output": null, - "newLineBehavior": "Auto" - } - }, - "codeGenerators": { - "openApiToCSharpClient": { - "clientBaseClass": null, - "configurationClass": null, - "generateClientClasses": true, - "generateClientInterfaces": true, - "clientBaseInterface": "IApiService", - "injectHttpClient": true, - "disposeHttpClient": false, - "protectedMethods": [], - "generateExceptionClasses": true, - "exceptionClass": "ApiException", - "wrapDtoExceptions": true, - "useHttpClientCreationMethod": false, - "httpClientType": "System.Net.Http.HttpClient", - "useHttpRequestMessageCreationMethod": false, - "useBaseUrl": false, - "generateBaseUrlProperty": true, - "generateSyncMethods": false, - "generatePrepareRequestAndProcessResponseAsAsyncMethods": false, - "exposeJsonSerializerSettings": false, - "clientClassAccessModifier": "public", - "typeAccessModifier": "public", - "generateContractsOutput": false, - "contractsNamespace": null, - "contractsOutputFilePath": null, - "parameterDateTimeFormat": "s", - "parameterDateFormat": "yyyy-MM-dd", - "generateUpdateJsonSerializerSettingsMethod": true, - "useRequestAndResponseSerializationSettings": false, - "serializeTypeInformation": false, - "queryNullValue": "", - "className": "{controller}Client", - "operationGenerationMode": "MultipleClientsFromOperationId", - "additionalNamespaceUsages": [], - "additionalContractNamespaceUsages": [], - "generateOptionalParameters": false, - "generateJsonMethods": false, - "enforceFlagEnums": false, - "parameterArrayType": "System.Collections.Generic.IEnumerable", - "parameterDictionaryType": "System.Collections.Generic.IDictionary", - "responseArrayType": "System.Collections.Generic.ICollection", - "responseDictionaryType": "System.Collections.Generic.IDictionary", - "wrapResponses": false, - "wrapResponseMethods": [], - "generateResponseClasses": true, - "responseClass": "SwaggerResponse", - "namespace": "FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient", - "requiredPropertiesMustBeDefined": true, - "dateType": "System.DateTimeOffset", - "jsonConverters": null, - "anyType": "object", - "dateTimeType": "System.DateTime", - "timeType": "System.TimeSpan", - "timeSpanType": "System.TimeSpan", - "arrayType": "System.Collections.Generic.ICollection", - "arrayInstanceType": "System.Collections.ObjectModel.Collection", - "dictionaryType": "System.Collections.Generic.IDictionary", - "dictionaryInstanceType": "System.Collections.Generic.Dictionary", - "arrayBaseType": "System.Collections.ObjectModel.Collection", - "dictionaryBaseType": "System.Collections.Generic.Dictionary", - "classStyle": "Poco", - "jsonLibrary": "NewtonsoftJson", - "generateDefaultValues": true, - "generateDataAnnotations": true, - "excludedTypeNames": [], - "excludedParameterNames": [], - "handleReferences": false, - "generateImmutableArrayProperties": false, - "generateImmutableDictionaryProperties": false, - "jsonSerializerSettingsTransformationMethod": null, - "inlineNamedArrays": false, - "inlineNamedDictionaries": false, - "inlineNamedTuples": true, - "inlineNamedAny": false, - "generateDtoTypes": true, - "generateOptionalPropertiesAsNullable": false, - "generateNullableReferenceTypes": true, - "templateDirectory": null, - "typeNameGeneratorType": null, - "propertyNameGeneratorType": null, - "enumNameGeneratorType": null, - "serviceHost": null, - "serviceSchemes": null, - "output": "FSHApi.cs", - "newLineBehavior": "Auto" - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthProvider.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthProvider.cs deleted file mode 100644 index c8c739a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthProvider.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth; - -public enum AuthProvider -{ - Jwt, - AzureAd -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthorizationServiceExtensions.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthorizationServiceExtensions.cs deleted file mode 100644 index 52fe9d8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AuthorizationServiceExtensions.cs +++ /dev/null @@ -1,10 +0,0 @@ -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth; - -public static class AuthorizationServiceExtensions -{ - public static async Task HasPermissionAsync(this IAuthorizationService service, ClaimsPrincipal user, string action, string resource) => - (await service.AuthorizeAsync(user, null, FSHPermission.NameFor(action, resource))).Succeeded; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthenticationService.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthenticationService.cs deleted file mode 100644 index dcb9bf5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthenticationService.cs +++ /dev/null @@ -1,34 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.AzureAd; - -internal class AzureAdAuthenticationService : IAuthenticationService -{ - private readonly SignOutSessionStateManager _signOut; - private readonly NavigationManager _navigation; - - public AzureAdAuthenticationService(SignOutSessionStateManager signOut, NavigationManager navigation) => - (_signOut, _navigation) = (signOut, navigation); - - public AuthProvider ProviderType => AuthProvider.AzureAd; - - public void NavigateToExternalLogin(string returnUrl) => - _navigation.NavigateTo($"authentication/login?returnUrl={Uri.EscapeDataString(returnUrl)}"); - - public Task LoginAsync(string tenantId, TokenRequest request) => - throw new NotImplementedException(); - - public async Task LogoutAsync() - { - await _signOut.SetSignOutState(); - _navigation.NavigateTo("authentication/logout"); - } - - public Task ReLoginAsync(string returnUrl) - { - NavigateToExternalLogin(returnUrl); - return Task.CompletedTask; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthorizationMessageHandler.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthorizationMessageHandler.cs deleted file mode 100644 index d9177a1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdAuthorizationMessageHandler.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.AzureAd; - -public class AzureAdAuthorizationMessageHandler : AuthorizationMessageHandler -{ - public AzureAdAuthorizationMessageHandler(IAccessTokenProvider provider, NavigationManager navigation, IConfiguration config) - : base(provider, navigation) => ConfigureHandler( - new[] { config[ConfigNames.ApiBaseUrl] }, - new[] { config[$"{nameof(AuthProvider.AzureAd)}:{ConfigNames.ApiScope}"] }); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdClaimsPrincipalFactory.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdClaimsPrincipalFactory.cs deleted file mode 100644 index 22e869c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/AzureAd/AzureAdClaimsPrincipalFactory.cs +++ /dev/null @@ -1,73 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal; -using Microsoft.Extensions.DependencyInjection; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.AzureAd; - -internal class AzureAdClaimsPrincipalFactory : AccountClaimsPrincipalFactory -{ - // Can't work with actual services in the constructor here, have to - // use IServiceProvider, otherwise the app hangs at startup. - // The culprit is probably HttpClient, as this class is instantiated - // at startup while the HttpClient is being (or not even) created. - private readonly IServiceProvider _services; - - public AzureAdClaimsPrincipalFactory(IAccessTokenProviderAccessor accessor, IServiceProvider services) - : base(accessor) => - _services = services; - - public override async ValueTask CreateUserAsync(RemoteUserAccount account, RemoteAuthenticationUserOptions options) - { - var principal = await base.CreateUserAsync(account, options); - - if (principal.Identity?.IsAuthenticated is true) - { - var userDetails = await _services.GetRequiredService().GetProfileAsync(); - - var userIdentity = (ClaimsIdentity)principal.Identity; - - if (!string.IsNullOrWhiteSpace(userDetails.Email) && !userIdentity.HasClaim(c => c.Type == ClaimTypes.Email)) - { - userIdentity.AddClaim(new Claim(ClaimTypes.Email, userDetails.Email)); - } - - if (!string.IsNullOrWhiteSpace(userDetails.PhoneNumber) && !userIdentity.HasClaim(c => c.Type == ClaimTypes.MobilePhone)) - { - userIdentity.AddClaim(new Claim(ClaimTypes.MobilePhone, userDetails.PhoneNumber)); - } - - if (!string.IsNullOrWhiteSpace(userDetails.FirstName) && !userIdentity.HasClaim(c => c.Type == ClaimTypes.Name)) - { - userIdentity.AddClaim(new Claim(ClaimTypes.Name, userDetails.FirstName)); - } - - if (!string.IsNullOrWhiteSpace(userDetails.LastName) && !userIdentity.HasClaim(c => c.Type == ClaimTypes.Surname)) - { - userIdentity.AddClaim(new Claim(ClaimTypes.Surname, userDetails.LastName)); - } - - if (!userIdentity.HasClaim(c => c.Type == FSHClaims.Fullname)) - { - userIdentity.AddClaim(new Claim(FSHClaims.Fullname, $"{userDetails.FirstName} {userDetails.LastName}")); - } - - if (!userIdentity.HasClaim(c => c.Type == ClaimTypes.NameIdentifier)) - { - userIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userDetails.Id.ToString())); - } - - if (!string.IsNullOrWhiteSpace(userDetails.ImageUrl) && !userIdentity.HasClaim(c => c.Type == FSHClaims.ImageUrl) && userDetails.ImageUrl is not null) - { - userIdentity.AddClaim(new Claim(FSHClaims.ImageUrl, userDetails.ImageUrl)); - } - - var permissions = await _services.GetRequiredService().GetPermissionsAsync(); - - userIdentity.AddClaims(permissions.Select(permission => new Claim(FSHClaims.Permission, permission))); - } - - return principal; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/IAuthenticationService.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/IAuthenticationService.cs deleted file mode 100644 index 5cef8d4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/IAuthenticationService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth; - -public interface IAuthenticationService -{ - AuthProvider ProviderType { get; } - - void NavigateToExternalLogin(string returnUrl); - - Task LoginAsync(string tenantId, TokenRequest request); - - Task LogoutAsync(); - - Task ReLoginAsync(string returnUrl); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/AccessTokenProviderAccessor.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/AccessTokenProviderAccessor.cs deleted file mode 100644 index 83c3ee6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/AccessTokenProviderAccessor.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal; -using Microsoft.Extensions.DependencyInjection; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.Jwt; - -internal class AccessTokenProviderAccessor : IAccessTokenProviderAccessor -{ - private readonly IServiceProvider _provider; - private IAccessTokenProvider? _tokenProvider; - - public AccessTokenProviderAccessor(IServiceProvider provider) => - _provider = provider; - - public IAccessTokenProvider TokenProvider => - _tokenProvider ??= _provider.GetRequiredService(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationHeaderHandler.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationHeaderHandler.cs deleted file mode 100644 index 69c33f6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationHeaderHandler.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.Jwt; - -public class JwtAuthenticationHeaderHandler : DelegatingHandler -{ - private readonly IAccessTokenProviderAccessor _tokenProviderAccessor; - private readonly NavigationManager _navigation; - - public JwtAuthenticationHeaderHandler(IAccessTokenProviderAccessor tokenProviderAccessor, NavigationManager navigation) - { - _tokenProviderAccessor = tokenProviderAccessor; - _navigation = navigation; - } - - protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - // skip token endpoints - if (request.RequestUri?.AbsolutePath.Contains("/tokens") is not true) - { - if (await _tokenProviderAccessor.TokenProvider.GetAccessTokenAsync() is string token) - { - request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); - } - else - { - _navigation.NavigateTo("/login"); - } - } - - return await base.SendAsync(request, cancellationToken); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationService.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationService.cs deleted file mode 100644 index 5723573..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Jwt/JwtAuthenticationService.cs +++ /dev/null @@ -1,222 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth.Jwt; - -public class JwtAuthenticationService : AuthenticationStateProvider, IAuthenticationService, IAccessTokenProvider -{ - private readonly SemaphoreSlim _semaphore = new(1, 1); - - private readonly ILocalStorageService _localStorage; - private readonly ITokensClient _tokensClient; - private readonly IPersonalClient _personalClient; - private readonly NavigationManager _navigation; - - public AuthProvider ProviderType => AuthProvider.Jwt; - - public JwtAuthenticationService(ILocalStorageService localStorage, IPersonalClient personalClient, ITokensClient tokensClient, NavigationManager navigation) - { - _localStorage = localStorage; - _personalClient = personalClient; - _tokensClient = tokensClient; - _navigation = navigation; - } - - public override async Task GetAuthenticationStateAsync() - { - string cachedToken = await GetCachedAuthTokenAsync(); - if (string.IsNullOrWhiteSpace(cachedToken)) - { - return new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())); - } - - // Generate claimsIdentity from cached token - var claimsIdentity = new ClaimsIdentity(GetClaimsFromJwt(cachedToken), "jwt"); - - // Add cached permissions as claims - if (await GetCachedPermissionsAsync() is List cachedPermissions) - { - claimsIdentity.AddClaims(cachedPermissions.Select(p => new Claim(FSHClaims.Permission, p))); - } - - return new AuthenticationState(new ClaimsPrincipal(claimsIdentity)); - } - - public void NavigateToExternalLogin(string returnUrl) => - throw new NotImplementedException(); - - public async Task LoginAsync(string tenantId, TokenRequest request) - { - var tokenResponse = await _tokensClient.GetTokenAsync(tenantId, request); - - string? token = tokenResponse.Token; - string? refreshToken = tokenResponse.RefreshToken; - - if (string.IsNullOrWhiteSpace(token) || string.IsNullOrWhiteSpace(refreshToken)) - { - return false; - } - - await CacheAuthTokens(token, refreshToken); - - // Get permissions for the current user and add them to the cache - var permissions = await _personalClient.GetPermissionsAsync(); - await CachePermissions(permissions); - - NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); - - return true; - } - - public async Task LogoutAsync() - { - await ClearCacheAsync(); - - NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); - - _navigation.NavigateTo("/login"); - } - - public async Task ReLoginAsync(string returnUrl) - { - await LogoutAsync(); - _navigation.NavigateTo(returnUrl); - } - - public async ValueTask RequestAccessToken() - { - var authState = await GetAuthenticationStateAsync(); - if (authState.User.Identity?.IsAuthenticated is not true) - { - return new AccessTokenResult(AccessTokenResultStatus.RequiresRedirect, null, "/login"); - } - - // We make sure the access token is only refreshed by one thread at a time. The other ones have to wait. - await _semaphore.WaitAsync(); - try - { - string? token = await GetCachedAuthTokenAsync(); - - // Check if token needs to be refreshed (when its expiration time is less than 1 minute away) - var expTime = authState.User.GetExpiration(); - var diff = expTime - DateTime.UtcNow; - if (diff.TotalMinutes <= 1) - { - string? refreshToken = await GetCachedRefreshTokenAsync(); - (bool succeeded, var response) = await TryRefreshTokenAsync(new RefreshTokenRequest { Token = token, RefreshToken = refreshToken }); - if (!succeeded) - { - return new AccessTokenResult(AccessTokenResultStatus.RequiresRedirect, null, "/login"); - } - - token = response?.Token; - } - - return new AccessTokenResult(AccessTokenResultStatus.Success, new AccessToken() { Value = token }, string.Empty); - } - finally - { - _semaphore.Release(); - } - } - - public ValueTask RequestAccessToken(AccessTokenRequestOptions options) => - RequestAccessToken(); - - private async Task<(bool Succeeded, TokenResponse? Token)> TryRefreshTokenAsync(RefreshTokenRequest request) - { - var authState = await GetAuthenticationStateAsync(); - string? tenantKey = authState.User.GetTenant(); - if (string.IsNullOrWhiteSpace(tenantKey)) - { - throw new InvalidOperationException("Can't refresh token when user is not logged in!"); - } - - try - { - var tokenResponse = await _tokensClient.RefreshAsync(tenantKey, request); - - await CacheAuthTokens(tokenResponse.Token, tokenResponse.RefreshToken); - - return (true, tokenResponse); - } - catch (ApiException) - { - return (false, null); - } - } - - private async ValueTask CacheAuthTokens(string? token, string? refreshToken) - { - await _localStorage.SetItemAsync(StorageConstants.Local.AuthToken, token); - await _localStorage.SetItemAsync(StorageConstants.Local.RefreshToken, refreshToken); - } - - private ValueTask CachePermissions(ICollection permissions) => - _localStorage.SetItemAsync(StorageConstants.Local.Permissions, permissions); - - private async Task ClearCacheAsync() - { - await _localStorage.RemoveItemAsync(StorageConstants.Local.AuthToken); - await _localStorage.RemoveItemAsync(StorageConstants.Local.RefreshToken); - await _localStorage.RemoveItemAsync(StorageConstants.Local.Permissions); - } - - private ValueTask GetCachedAuthTokenAsync() => - _localStorage.GetItemAsync(StorageConstants.Local.AuthToken); - - private ValueTask GetCachedRefreshTokenAsync() => - _localStorage.GetItemAsync(StorageConstants.Local.RefreshToken); - - private ValueTask> GetCachedPermissionsAsync() => - _localStorage.GetItemAsync>(StorageConstants.Local.Permissions); - - private IEnumerable GetClaimsFromJwt(string jwt) - { - var claims = new List(); - string payload = jwt.Split('.')[1]; - byte[] jsonBytes = ParseBase64WithoutPadding(payload); - var keyValuePairs = JsonSerializer.Deserialize>(jsonBytes); - - if (keyValuePairs is not null) - { - keyValuePairs.TryGetValue(ClaimTypes.Role, out object? roles); - - if (roles is not null) - { - string? rolesString = roles.ToString(); - if (!string.IsNullOrEmpty(rolesString)) - { - if (rolesString.Trim().StartsWith("[")) - { - string[]? parsedRoles = JsonSerializer.Deserialize(rolesString); - - if (parsedRoles is not null) - { - claims.AddRange(parsedRoles.Select(role => new Claim(ClaimTypes.Role, role))); - } - } - else - { - claims.Add(new Claim(ClaimTypes.Role, rolesString)); - } - } - - keyValuePairs.Remove(ClaimTypes.Role); - } - - claims.AddRange(keyValuePairs.Select(kvp => new Claim(kvp.Key, kvp.Value.ToString() ?? string.Empty))); - } - - return claims; - } - - private byte[] ParseBase64WithoutPadding(string payload) - { - payload = payload.Trim().Replace('-', '+').Replace('_', '/'); - string base64 = payload.PadRight(payload.Length + ((4 - (payload.Length % 4)) % 4), '='); - return Convert.FromBase64String(base64); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/MustHavePermissionAttribute.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/MustHavePermissionAttribute.cs deleted file mode 100644 index c18b66b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/MustHavePermissionAttribute.cs +++ /dev/null @@ -1,10 +0,0 @@ -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth; - -public class MustHavePermissionAttribute : AuthorizeAttribute -{ - public MustHavePermissionAttribute(string action, string resource) => - Policy = FSHPermission.NameFor(action, resource); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Startup.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Startup.cs deleted file mode 100644 index 74c0c70..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Auth/Startup.cs +++ /dev/null @@ -1,47 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth.AzureAd; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth.Jwt; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal; -using Microsoft.Extensions.DependencyInjection; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Auth; - -internal static class Startup -{ - public static IServiceCollection AddAuthentication(this IServiceCollection services, IConfiguration config) => - config[nameof(AuthProvider)] switch - { - // AzureAd - nameof(AuthProvider.AzureAd) => services - .AddScoped() - .AddScoped() - .AddMsalAuthentication(options => - { - config.Bind(nameof(AuthProvider.AzureAd), options.ProviderOptions.Authentication); - options.ProviderOptions.DefaultAccessTokenScopes.Add( - config[$"{nameof(AuthProvider.AzureAd)}:{ConfigNames.ApiScope}"]); - options.ProviderOptions.LoginMode = "redirect"; - }) - .AddAccountClaimsPrincipalFactory() - .Services, - - // Jwt - _ => services - .AddScoped() - .AddScoped(sp => (IAuthenticationService)sp.GetRequiredService()) - .AddScoped(sp => (IAccessTokenProvider)sp.GetRequiredService()) - .AddScoped() - .AddScoped() - }; - - public static IHttpClientBuilder AddAuthenticationHandler(this IHttpClientBuilder builder, IConfiguration config) => - config[nameof(AuthProvider)] switch - { - // AzureAd - nameof(AuthProvider.AzureAd) => - builder.AddHttpMessageHandler(), - - // Jwt - _ => builder.AddHttpMessageHandler() - }; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Client.Infrastructure.csproj b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Client.Infrastructure.csproj deleted file mode 100644 index e1301f9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Client.Infrastructure.csproj +++ /dev/null @@ -1,39 +0,0 @@ - - - - net6.0 - FSH.BlazorWebAssembly.Client.Infrastructure - FSH.BlazorWebAssembly.Client.Infrastructure - - - - - - - - - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/AccessTokenProviderExtensions.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/AccessTokenProviderExtensions.cs deleted file mode 100644 index 417c925..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/AccessTokenProviderExtensions.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public static class AccessTokenProviderExtensions -{ - public static async Task GetAccessTokenAsync(this IAccessTokenProvider tokenProvider) => - (await tokenProvider.RequestAccessToken()) - .TryGetToken(out var token) - ? token.Value - : null; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ApplicationConstants.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ApplicationConstants.cs deleted file mode 100644 index 05fe79a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ApplicationConstants.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public static class ApplicationConstants -{ - public static readonly List SupportedImageFormats = new() - { - ".jpeg", - ".jpg", - ".png" - }; - public static readonly string StandardImageFormat = "image/jpeg"; - public static readonly int MaxImageWidth = 1500; - public static readonly int MaxImageHeight = 1500; - public static readonly long MaxAllowedSize = 1000000; // Allows Max File Size of 1 Mb. -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ConfigNames.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ConfigNames.cs deleted file mode 100644 index cf6d2b8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/ConfigNames.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public static class ConfigNames -{ - public const string ApiBaseUrl = "ApiBaseUrl"; - public const string ApiScope = "ApiScope"; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/IAppService.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/IAppService.cs deleted file mode 100644 index 520bf7e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/IAppService.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public interface IAppService -{ -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/LocalizationConstants.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/LocalizationConstants.cs deleted file mode 100644 index 093af42..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/LocalizationConstants.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public record LanguageCode(string Code, string DisplayName, bool IsRTL = false); - -public static class LocalizationConstants -{ - public static readonly LanguageCode[] SupportedLanguages = - { - new("en-US", "English"), - new("fr-FR", "French"), - new("km_KH", "Khmer"), - new("de-DE", "German"), - new("nl-NL", "Dutch - Netherlands"), - new("es-ES", "Spanish"), - new("ru-RU", "Russian"), - new("sv-SE", "Swedish"), - new("id-ID", "Indonesia"), - new("it-IT", "Italian"), - new("ar", "عربي", true) - }; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/StorageConstants.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/StorageConstants.cs deleted file mode 100644 index b0cf4fc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Common/StorageConstants.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Common; - -public static class StorageConstants -{ - public static class Local - { - public static string Preference = "clientPreference"; - - public static string AuthToken = "authToken"; - public static string RefreshToken = "refreshToken"; - public static string ImageUri = "userImageURL"; - public static string Permissions = "permissions"; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/GlobalUsings.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/GlobalUsings.cs deleted file mode 100644 index d093b73..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/GlobalUsings.cs +++ /dev/null @@ -1,7 +0,0 @@ -global using System.Net.Http.Headers; -global using System.Security.Claims; -global using System.Text.Json; -global using Blazored.LocalStorage; -global using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -global using Microsoft.AspNetCore.Components.Authorization; -global using Microsoft.Extensions.Configuration; diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionState.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionState.cs deleted file mode 100644 index e1b3a4b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionState.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -public enum ConnectionState -{ - Connected, - Connecting, - Disconnected -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionStateChanged.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionStateChanged.cs deleted file mode 100644 index 5246e54..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/ConnectionStateChanged.cs +++ /dev/null @@ -1,5 +0,0 @@ -using FSH.WebApi.Shared.Notifications; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -public record ConnectionStateChanged(ConnectionState State, string? Message) : INotificationMessage; \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/INotificationPublisher.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/INotificationPublisher.cs deleted file mode 100644 index 54e8aba..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/INotificationPublisher.cs +++ /dev/null @@ -1,8 +0,0 @@ -using FSH.WebApi.Shared.Notifications; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -public interface INotificationPublisher -{ - Task PublishAsync(INotificationMessage notification); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationPublisher.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationPublisher.cs deleted file mode 100644 index 9ab414b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationPublisher.cs +++ /dev/null @@ -1,24 +0,0 @@ -using FSH.WebApi.Shared.Notifications; -using MediatR; -using Microsoft.Extensions.Logging; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -public class NotificationPublisher : INotificationPublisher -{ - private readonly ILogger _logger; - private readonly IPublisher _mediator; - - public NotificationPublisher(ILogger logger, IPublisher mediator) => - (_logger, _mediator) = (logger, mediator); - - public Task PublishAsync(INotificationMessage notification) - { - _logger.LogInformation("Publishing Notification : {notification}", notification.GetType().Name); - return _mediator.Publish(CreateNotificationWrapper(notification)); - } - - private INotification CreateNotificationWrapper(INotificationMessage notification) => - (INotification)Activator.CreateInstance( - typeof(NotificationWrapper<>).MakeGenericType(notification.GetType()), notification)!; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationWrapper.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationWrapper.cs deleted file mode 100644 index ccb1a84..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/NotificationWrapper.cs +++ /dev/null @@ -1,12 +0,0 @@ -using FSH.WebApi.Shared.Notifications; -using MediatR; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -public class NotificationWrapper : INotification - where TNotificationMessage : INotificationMessage -{ - public NotificationWrapper(TNotificationMessage notification) => Notification = notification; - - public TNotificationMessage Notification { get; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/Startup.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/Startup.cs deleted file mode 100644 index 1784064..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Notifications/Startup.cs +++ /dev/null @@ -1,34 +0,0 @@ -using FSH.WebApi.Shared.Notifications; -using MediatR; -using MediatR.Courier; -using MediatR.Courier.DependencyInjection; -using Microsoft.Extensions.DependencyInjection; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; - -internal static class Startup -{ - public static IServiceCollection AddNotifications(this IServiceCollection services) - { - // Add mediator processing of notifications - var assemblies = AppDomain.CurrentDomain.GetAssemblies(); - - services - .AddMediatR(assemblies) - .AddCourier(assemblies) - .AddTransient(); - - // Register handlers for all INotificationMessages - foreach (var eventType in assemblies - .SelectMany(a => a.GetTypes()) - .Where(t => t.GetInterfaces().Any(i => i == typeof(INotificationMessage)))) - { - services.AddSingleton( - typeof(INotificationHandler<>).MakeGenericType( - typeof(NotificationWrapper<>).MakeGenericType(eventType)), - serviceProvider => serviceProvider.GetRequiredService(typeof(MediatRCourier))); - } - - return services; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreference.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreference.cs deleted file mode 100644 index 2bbabe3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreference.cs +++ /dev/null @@ -1,15 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Theme; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public class ClientPreference : IPreference -{ - public bool IsDarkMode { get; set; } - public bool IsRTL { get; set; } - public bool IsDrawerOpen { get; set; } - public string PrimaryColor { get; set; } = CustomColors.Light.Primary; - public string SecondaryColor { get; set; } = CustomColors.Light.Secondary; - public double BorderRadius { get; set; } = 5; - public string LanguageCode { get; set; } = LocalizationConstants.SupportedLanguages.FirstOrDefault()?.Code ?? "en-US"; - public FshTablePreference TablePreference { get; set; } = new FshTablePreference(); -} diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreferenceManager.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreferenceManager.cs deleted file mode 100644 index b4a4dbe..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/ClientPreferenceManager.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Text.RegularExpressions; -using FSH.BlazorWebAssembly.Client.Infrastructure.Theme; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public class ClientPreferenceManager : IClientPreferenceManager -{ - private readonly ILocalStorageService _localStorageService; - - public ClientPreferenceManager( - ILocalStorageService localStorageService) - { - _localStorageService = localStorageService; - } - - public async Task ToggleDarkModeAsync() - { - if (await GetPreference() is ClientPreference preference) - { - preference.IsDarkMode = !preference.IsDarkMode; - await SetPreference(preference); - return !preference.IsDarkMode; - } - - return false; - } - - public async Task ToggleDrawerAsync() - { - if (await GetPreference() is ClientPreference preference) - { - preference.IsDrawerOpen = !preference.IsDrawerOpen; - await SetPreference(preference); - return preference.IsDrawerOpen; - } - - return false; - } - - public async Task ToggleLayoutDirectionAsync() - { - if (await GetPreference() is ClientPreference preference) - { - preference.IsRTL = !preference.IsRTL; - await SetPreference(preference); - return preference.IsRTL; - } - - return false; - } - - public async Task ChangeLanguageAsync(string languageCode) - { - if (await GetPreference() is ClientPreference preference) - { - var language = Array.Find(LocalizationConstants.SupportedLanguages, a => a.Code == languageCode); - if (language?.Code is not null) - { - preference.LanguageCode = language.Code; - preference.IsRTL = language.IsRTL; - } - else - { - preference.LanguageCode = "en-EN"; - preference.IsRTL = false; - } - - await SetPreference(preference); - return true; - } - - return false; - } - - public async Task GetCurrentThemeAsync() - { - if (await GetPreference() is ClientPreference preference) - { - if (preference.IsDarkMode) return new DarkTheme(); - } - - return new LightTheme(); - } - - public async Task GetPrimaryColorAsync() - { - if (await GetPreference() is ClientPreference preference) - { - string colorCode = preference.PrimaryColor; - if (Regex.Match(colorCode, "^#(?:[0-9a-fA-F]{3,4}){1,2}$").Success) - { - return colorCode; - } - else - { - preference.PrimaryColor = CustomColors.Light.Primary; - await SetPreference(preference); - return preference.PrimaryColor; - } - } - - return CustomColors.Light.Primary; - } - - public async Task IsRTL() - { - if (await GetPreference() is ClientPreference preference) - { - return preference.IsRTL; - } - - return false; - } - - public async Task IsDrawerOpen() - { - if (await GetPreference() is ClientPreference preference) - { - return preference.IsDrawerOpen; - } - - return false; - } - - public static string Preference = "clientPreference"; - - public async Task GetPreference() - { - return await _localStorageService.GetItemAsync(Preference) ?? new ClientPreference(); - } - - public async Task SetPreference(IPreference preference) - { - await _localStorageService.SetItemAsync(Preference, preference as ClientPreference); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/FshTablePreference.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/FshTablePreference.cs deleted file mode 100644 index 8ba0c18..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/FshTablePreference.cs +++ /dev/null @@ -1,11 +0,0 @@ -using FSH.WebApi.Shared.Notifications; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public class FshTablePreference : INotificationMessage -{ - public bool IsDense { get; set; } - public bool IsStriped { get; set; } - public bool HasBorder { get; set; } - public bool IsHoverable { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IClientPreferenceManager.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IClientPreferenceManager.cs deleted file mode 100644 index a871866..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IClientPreferenceManager.cs +++ /dev/null @@ -1,14 +0,0 @@ -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public interface IClientPreferenceManager : IPreferenceManager -{ - Task GetCurrentThemeAsync(); - - Task ToggleDarkModeAsync(); - - Task ToggleDrawerAsync(); - - Task ToggleLayoutDirectionAsync(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreference.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreference.cs deleted file mode 100644 index 42135ac..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreference.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public interface IPreference -{ - // public string LanguageCode { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreferenceManager.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreferenceManager.cs deleted file mode 100644 index 83d79b6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Preferences/IPreferenceManager.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; - -public interface IPreferenceManager : IAppService -{ - Task SetPreference(IPreference preference); - - Task GetPreference(); - - Task ChangeLanguageAsync(string languageCode); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Startup.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Startup.cs deleted file mode 100644 index c94cae1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Startup.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Globalization; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.Extensions.DependencyInjection; -using MudBlazor; -using MudBlazor.Services; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure; - -public static class Startup -{ - private const string ClientName = "FullStackHero.API"; - - public static IServiceCollection AddClientServices(this IServiceCollection services, IConfiguration config) => - services - .AddLocalization(options => options.ResourcesPath = "Resources") - .AddBlazoredLocalStorage() - .AddMudServices(configuration => - { - configuration.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomRight; - configuration.SnackbarConfiguration.HideTransitionDuration = 100; - configuration.SnackbarConfiguration.ShowTransitionDuration = 100; - configuration.SnackbarConfiguration.VisibleStateDuration = 3000; - configuration.SnackbarConfiguration.ShowCloseIcon = false; - }) - .AddScoped() - .AutoRegisterInterfaces() - .AutoRegisterInterfaces() - .AddNotifications() - .AddAuthentication(config) - .AddAuthorizationCore(RegisterPermissionClaims) - - // Add Api Http Client. - .AddHttpClient(ClientName, client => - { - client.DefaultRequestHeaders.AcceptLanguage.Clear(); - client.DefaultRequestHeaders.AcceptLanguage.ParseAdd(CultureInfo.DefaultThreadCurrentCulture?.TwoLetterISOLanguageName); - client.BaseAddress = new Uri(config[ConfigNames.ApiBaseUrl]); - }) - .AddAuthenticationHandler(config) - .Services - .AddScoped(sp => sp.GetRequiredService().CreateClient(ClientName)); - - private static void RegisterPermissionClaims(AuthorizationOptions options) - { - foreach (var permission in FSHPermissions.All) - { - options.AddPolicy(permission.Name, policy => policy.RequireClaim(FSHClaims.Permission, permission.Name)); - } - } - - public static IServiceCollection AutoRegisterInterfaces(this IServiceCollection services) - { - var @interface = typeof(T); - - var types = @interface - .Assembly - .GetExportedTypes() - .Where(t => t.IsClass && !t.IsAbstract) - .Select(t => new - { - Service = t.GetInterface($"I{t.Name}"), - Implementation = t - }) - .Where(t => t.Service != null); - - foreach (var type in types) - { - if (@interface.IsAssignableFrom(type.Service)) - { - services.AddTransient(type.Service, type.Implementation); - } - } - - return services; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomColors.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomColors.cs deleted file mode 100644 index 6448269..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomColors.cs +++ /dev/null @@ -1,42 +0,0 @@ -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Theme; - -public static class CustomColors -{ - public static readonly List ThemeColors = new() - { - Light.Primary, - Colors.Blue.Default, - Colors.BlueGrey.Default, - Colors.Purple.Default, - Colors.Orange.Default, - Colors.Red.Default, - Colors.Amber.Default, - Colors.DeepPurple.Default, - Colors.Pink.Default, - Colors.Indigo.Default, - Colors.LightBlue.Default, - Colors.Cyan.Default, - }; - - public static class Light - { - public const string Primary = "#3eaf7c"; - public const string Secondary = "#2196f3"; - public const string Background = "#FFF"; - public const string AppbarBackground = "#FFF"; - public const string AppbarText = "#6e6e6e"; - } - - public static class Dark - { - public const string Primary = "#3eaf7c"; - public const string Secondary = "#2196f3"; - public const string Background = "#1b1f22"; - public const string AppbarBackground = "#1b1f22"; - public const string DrawerBackground = "#121212"; - public const string Surface = "#202528"; - public const string Disabled = "#545454"; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomTypography.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomTypography.cs deleted file mode 100644 index 0b33533..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/CustomTypography.cs +++ /dev/null @@ -1,114 +0,0 @@ -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Theme; - -public static class CustomTypography -{ - public static Typography FSHTypography => new Typography() - { - Default = new Default() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = ".875rem", - FontWeight = 200, - LineHeight = 1.43, - LetterSpacing = ".01071em" - }, - H1 = new H1() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "6rem", - FontWeight = 300, - LineHeight = 1.167, - LetterSpacing = "-.01562em" - }, - H2 = new H2() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "3.75rem", - FontWeight = 300, - LineHeight = 1.2, - LetterSpacing = "-.00833em" - }, - H3 = new H3() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "3rem", - FontWeight = 400, - LineHeight = 1.167, - LetterSpacing = "0" - }, - H4 = new H4() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "2.125rem", - FontWeight = 400, - LineHeight = 1.235, - LetterSpacing = ".00735em" - }, - H5 = new H5() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "1.5rem", - FontWeight = 400, - LineHeight = 1.334, - LetterSpacing = "0" - }, - H6 = new H6() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "1.25rem", - FontWeight = 400, - LineHeight = 1.6, - LetterSpacing = ".0075em" - }, - Button = new Button() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = ".875rem", - FontWeight = 400, - LineHeight = 1.75, - LetterSpacing = ".02857em" - }, - Body1 = new Body1() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "1rem", - FontWeight = 400, - LineHeight = 1.5, - LetterSpacing = ".00938em" - }, - Body2 = new Body2() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = ".875rem", - FontWeight = 400, - LineHeight = 1.43, - LetterSpacing = ".01071em" - }, - Caption = new Caption() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = ".75rem", - FontWeight = 200, - LineHeight = 1.66, - LetterSpacing = ".03333em" - }, - Subtitle1 = new Subtitle1() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = "1rem", - FontWeight = 400, - LineHeight = 1.57, - LetterSpacing = ".00714em" - }, - Subtitle2 = new Subtitle2() - { - FontFamily = new[] { "Montserrat", "Helvetica", "Arial", "sans-serif" }, - FontSize = ".875rem", - FontWeight = 400, - LineHeight = 1.57, - LetterSpacing = ".00714em" - } - }; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/DarkTheme.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/DarkTheme.cs deleted file mode 100644 index ff1b6aa..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/DarkTheme.cs +++ /dev/null @@ -1,44 +0,0 @@ -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Theme; - -public class DarkTheme : MudTheme -{ - public DarkTheme() - { - Palette = new Palette() - { - Primary = CustomColors.Dark.Primary, - Secondary = CustomColors.Dark.Secondary, - Success = CustomColors.Dark.Primary, - Black = "#27272f", - Background = CustomColors.Dark.Background, - BackgroundGrey = "#27272f", - Surface = CustomColors.Dark.Surface, - DrawerBackground = CustomColors.Dark.DrawerBackground, - DrawerText = "rgba(255,255,255, 0.50)", - AppbarBackground = CustomColors.Dark.AppbarBackground, - AppbarText = "rgba(255,255,255, 0.70)", - TextPrimary = "rgba(255,255,255, 0.70)", - TextSecondary = "rgba(255,255,255, 0.50)", - ActionDefault = "#adadb1", - ActionDisabled = "rgba(255,255,255, 0.26)", - ActionDisabledBackground = "rgba(255,255,255, 0.12)", - DrawerIcon = "rgba(255,255,255, 0.50)", - TableLines = "#e0e0e036", - Dark = CustomColors.Dark.DrawerBackground, - Divider = "#e0e0e036", - OverlayDark = "hsl(0deg 0% 0% / 75%)", - TextDisabled = CustomColors.Dark.Disabled - }; - - LayoutProperties = new LayoutProperties() - { - DefaultBorderRadius = "5px", - }; - - Typography = CustomTypography.FSHTypography; - Shadows = new Shadow(); - ZIndex = new ZIndex() { Drawer = 1300 }; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/LightTheme.cs b/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/LightTheme.cs deleted file mode 100644 index 8093aa4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client.Infrastructure/Theme/LightTheme.cs +++ /dev/null @@ -1,31 +0,0 @@ -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Infrastructure.Theme; - -public class LightTheme : MudTheme -{ - public LightTheme() - { - Palette = new Palette() - { - Primary = CustomColors.Light.Primary, - Secondary = CustomColors.Light.Secondary, - Background = CustomColors.Light.Background, - AppbarBackground = CustomColors.Light.AppbarBackground, - AppbarText = CustomColors.Light.AppbarText, - DrawerBackground = CustomColors.Light.Background, - DrawerText = "rgba(0,0,0, 0.7)", - Success = CustomColors.Light.Primary, - TableLines = "#e0e0e029", - OverlayDark = "hsl(0deg 0% 0% / 75%)" - }; - LayoutProperties = new LayoutProperties() - { - DefaultBorderRadius = "5px" - }; - - Typography = CustomTypography.FSHTypography; - Shadows = new Shadow(); - ZIndex = new ZIndex() { Drawer = 1300 }; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/App.razor b/blazor-wasm-boilerplate-main/src/Client/App.razor deleted file mode 100644 index 8fd8903..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/App.razor +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - @if (@context.User.Identity?.IsAuthenticated is true) - { -

You are not authorized to be here.

- } - else - { - - } -
-
-
- - -

Sorry, there's nothing at this address.

-
-
-
-
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Client.csproj b/blazor-wasm-boilerplate-main/src/Client/Client.csproj deleted file mode 100644 index 08fec69..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Client.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - net6.0 - FSH.BlazorWebAssembly.Client - FSH.BlazorWebAssembly.Client - service-worker-assets.js - true - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/CustomValidation.cs b/blazor-wasm-boilerplate-main/src/Client/Components/Common/CustomValidation.cs deleted file mode 100644 index 5a16322..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/CustomValidation.cs +++ /dev/null @@ -1,51 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; - -namespace FSH.BlazorWebAssembly.Client.Components.Common; - -// See https://docs.microsoft.com/en-us/aspnet/core/blazor/forms-validation?view=aspnetcore-6.0#server-validation-with-a-validator-component -public class CustomValidation : ComponentBase -{ - private ValidationMessageStore? _messageStore; - - [CascadingParameter] - private EditContext? CurrentEditContext { get; set; } - - protected override void OnInitialized() - { - if (CurrentEditContext is null) - { - throw new InvalidOperationException( - $"{nameof(CustomValidation)} requires a cascading " + - $"parameter of type {nameof(EditContext)}. " + - $"For example, you can use {nameof(CustomValidation)} " + - $"inside an {nameof(EditForm)}."); - } - - _messageStore = new(CurrentEditContext); - - CurrentEditContext.OnValidationRequested += (s, e) => - _messageStore?.Clear(); - CurrentEditContext.OnFieldChanged += (s, e) => - _messageStore?.Clear(e.FieldIdentifier); - } - - public void DisplayErrors(IDictionary> errors) - { - if (CurrentEditContext is not null && errors is not null) - { - foreach (var err in errors) - { - _messageStore?.Add(CurrentEditContext.Field(err.Key), err.Value); - } - - CurrentEditContext.NotifyValidationStateChanged(); - } - } - - public void ClearErrors() - { - _messageStore?.Clear(); - CurrentEditContext?.NotifyValidationStateChanged(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor deleted file mode 100644 index 9467791..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor +++ /dev/null @@ -1,2 +0,0 @@ -@inherits ErrorBoundary -@ChildContent \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor.cs deleted file mode 100644 index a0ed8d6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/ErrorHandler.razor.cs +++ /dev/null @@ -1,31 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.Common; - -public partial class ErrorHandler -{ - [Inject] - public IAuthenticationService AuthService { get; set; } = default!; - - public List _receivedExceptions = new(); - - protected override async Task OnErrorAsync(Exception exception) - { - _receivedExceptions.Add(exception); - switch (exception) - { - case UnauthorizedAccessException: - await AuthService.LogoutAsync(); - Snackbar.Add("Authentication Failed", Severity.Error); - break; - } - } - - public new void Recover() - { - _receivedExceptions.Clear(); - base.Recover(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshCustomError.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshCustomError.razor deleted file mode 100644 index 827318b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshCustomError.razor +++ /dev/null @@ -1 +0,0 @@ -Oopsie !! 😔 \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTable.cs b/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTable.cs deleted file mode 100644 index f661f11..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTable.cs +++ /dev/null @@ -1,39 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using MediatR.Courier; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.Common; - -public class FshTable : MudTable -{ - [Inject] - private IClientPreferenceManager ClientPreferences { get; set; } = default!; - [Inject] - protected ICourier Courier { get; set; } = default!; - - protected override async Task OnInitializedAsync() - { - if (await ClientPreferences.GetPreference() is ClientPreference clientPreference) - { - SetTablePreference(clientPreference.TablePreference); - } - - Courier.SubscribeWeak>(wrapper => - { - SetTablePreference(wrapper.Notification); - StateHasChanged(); - }); - - await base.OnInitializedAsync(); - } - - private void SetTablePreference(FshTablePreference tablePreference) - { - Dense = tablePreference.IsDense; - Striped = tablePreference.IsStriped; - Bordered = tablePreference.HasBorder; - Hover = tablePreference.IsHoverable; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTitle.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTitle.razor deleted file mode 100644 index e696be9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/FshTitle.razor +++ /dev/null @@ -1,8 +0,0 @@ -@Title -@Description - -@code -{ - [Parameter] public string? Title { get; set; } - [Parameter] public string? Description { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor deleted file mode 100644 index d17630e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor +++ /dev/null @@ -1,19 +0,0 @@ - - - - @if (string.IsNullOrEmpty(this.ImageUri)) - { - @FullName?.ToUpper().FirstOrDefault() - - } - else - { - - } - - - @FullName - @Email - - - diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor.cs deleted file mode 100644 index 7498f08..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/PersonCard.razor.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Security.Claims; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Components.Common; - -public partial class PersonCard -{ - [Parameter] - public string? Class { get; set; } - [Parameter] - public string? Style { get; set; } - - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - - private string? UserId { get; set; } - private string? Email { get; set; } - private string? FullName { get; set; } - private string? ImageUri { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - await LoadUserData(); - } - } - - private async Task LoadUserData() - { - var user = (await AuthState).User; - if (user.Identity?.IsAuthenticated == true) - { - if (string.IsNullOrEmpty(UserId)) - { - FullName = user.GetFullName(); - UserId = user.GetUserId(); - Email = user.GetEmail(); - ImageUri = string.IsNullOrEmpty(user?.GetImageUrl()) ? string.Empty : (Config[ConfigNames.ApiBaseUrl] + user?.GetImageUrl()); - StateHasChanged(); - } - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Common/TablePager.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Common/TablePager.razor deleted file mode 100644 index c5fdc78..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Common/TablePager.razor +++ /dev/null @@ -1,3 +0,0 @@ -@inject IStringLocalizer L - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/DeleteConfirmation.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/DeleteConfirmation.razor deleted file mode 100644 index f08d440..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/DeleteConfirmation.razor +++ /dev/null @@ -1,31 +0,0 @@ -@inject IStringLocalizer L - - - - - - @L["Delete Confirmation"] - - - - @ContentText - - - @L["Cancel"] - @L["Confirm"] - - - -@code { - [CascadingParameter] - MudDialogInstance MudDialog { get; set; } = default!; - - [Parameter] - public string? ContentText { get; set; } - - void Submit() - { - MudDialog.Close(DialogResult.Ok(true)); - } - void Cancel() => MudDialog.Cancel(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/Logout.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/Logout.razor deleted file mode 100644 index a660e8e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Dialogs/Logout.razor +++ /dev/null @@ -1,40 +0,0 @@ -@namespace FSH.BlazorWebAssembly.Client.Shared.Dialogs - -@inject IStringLocalizer L -@inject IAuthenticationService AuthService - - - - - - @L["Logout Confirmation"] - - - - @ContentText - - - @L["Cancel"] - @ButtonText - - - -@code { - [Parameter] public string? ContentText { get; set; } - - [Parameter] public string? ButtonText { get; set; } - - [Parameter] public Color Color { get; set; } - - [CascadingParameter] MudDialogInstance MudDialog { get; set; } = default!; - - async Task Submit() - { - await AuthService.LogoutAsync(); - Snackbar.Add(@L["Logged out"], Severity.Info); - MudDialog.Close(DialogResult.Ok(true)); - } - - void Cancel() => - MudDialog.Cancel(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor deleted file mode 100644 index ea086f5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor +++ /dev/null @@ -1,51 +0,0 @@ -@typeparam TRequest - -@inject IStringLocalizer L - - - - - - - @if (IsCreate) - { - - } - else - { - - } - @Title - - - - - - - - - @ChildContent(RequestModel) - - - - - - - @L["Cancel"] - - @if (IsCreate) - { - - @L["Save"] - - } - else - { - - @L["Update"] - - } - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor.cs deleted file mode 100644 index 197c487..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/AddEditModal.razor.cs +++ /dev/null @@ -1,49 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Shared; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -public partial class AddEditModal : IAddEditModal -{ - [Parameter] - [EditorRequired] - public RenderFragment ChildContent { get; set; } = default!; - [Parameter] - [EditorRequired] - public TRequest RequestModel { get; set; } = default!; - [Parameter] - [EditorRequired] - public Func SaveFunc { get; set; } = default!; - [Parameter] - public Func? OnInitializedFunc { get; set; } - [Parameter] - [EditorRequired] - public string Title { get; set; } = default!; - [Parameter] - public bool IsCreate { get; set; } - [Parameter] - public string? SuccessMessage { get; set; } - - [CascadingParameter] - private MudDialogInstance MudDialog { get; set; } = default!; - - private CustomValidation? _customValidation; - - public void ForceRender() => StateHasChanged(); - - protected override Task OnInitializedAsync() => - OnInitializedFunc is not null - ? OnInitializedFunc() - : Task.CompletedTask; - - private async Task SaveAsync() - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => SaveFunc(RequestModel), Snackbar, _customValidation, SuccessMessage)) - { - MudDialog.Close(); - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityClientTableContext.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityClientTableContext.cs deleted file mode 100644 index 2013d7b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityClientTableContext.cs +++ /dev/null @@ -1,67 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -/// -/// Initialization Context for the EntityTable Component. -/// Use this one if you want to use Client Paging, Sorting and Filtering. -/// -public class EntityClientTableContext - : EntityTableContext -{ - /// - /// A function that loads all the data for the table from the api and returns a ListResult of TEntity. - /// - public Func?>> LoadDataFunc { get; } - - /// - /// A function that returns a boolean which indicates whether the supplied entity meets the search criteria - /// (the supplied string is the search string entered). - /// - public Func SearchFunc { get; } - - public EntityClientTableContext( - List> fields, - Func?>> loadDataFunc, - Func searchFunc, - Func? idFunc = null, - Func>? getDefaultsFunc = null, - Func? createFunc = null, - Func>? getDetailsFunc = null, - Func? updateFunc = null, - Func? deleteFunc = null, - string? entityName = null, - string? entityNamePlural = null, - string? entityResource = null, - string? searchAction = null, - string? createAction = null, - string? updateAction = null, - string? deleteAction = null, - string? exportAction = null, - Func? editFormInitializedFunc = null, - Func? hasExtraActionsFunc = null, - Func? canUpdateEntityFunc = null, - Func? canDeleteEntityFunc = null) - : base( - fields, - idFunc, - getDefaultsFunc, - createFunc, - getDetailsFunc, - updateFunc, - deleteFunc, - entityName, - entityNamePlural, - entityResource, - searchAction, - createAction, - updateAction, - deleteAction, - exportAction, - editFormInitializedFunc, - hasExtraActionsFunc, - canUpdateEntityFunc, - canDeleteEntityFunc) - { - LoadDataFunc = loadDataFunc; - SearchFunc = searchFunc; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityField.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityField.cs deleted file mode 100644 index 75bf119..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityField.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -public record EntityField(Func ValueFunc, string DisplayName, string SortLabel = "", Type? Type = null, RenderFragment? Template = null) -{ - /// - /// A function that returns the actual value of this field from the supplied entity. - /// - public Func ValueFunc { get; init; } = ValueFunc; - - /// - /// The string that's shown on the UI for this field. - /// - public string DisplayName { get; init; } = DisplayName; - - /// - /// The string that's sent to the api as property to sort on for this field. - /// This is only relevant when using server side sorting. - /// - public string SortLabel { get; init; } = SortLabel; - - /// - /// The type of the field. Default is string, but when boolean, it shows as a checkbox. - /// - public Type? Type { get; init; } = Type; - - /// - /// When supplied this template will be used for this field in stead of the default template. - /// For an example on how to do this, see . - /// - public RenderFragment? Template { get; init; } = Template; - - public bool CheckedForSearch { get; set; } = true; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityServerTableContext.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityServerTableContext.cs deleted file mode 100644 index 317d2d3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityServerTableContext.cs +++ /dev/null @@ -1,73 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; - -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -/// -/// Initialization Context for the EntityTable Component. -/// Use this one if you want to use Server Paging, Sorting and Filtering. -/// -public class EntityServerTableContext - : EntityTableContext -{ - /// - /// A function that loads the specified page from the api with the specified search criteria - /// and returns a PaginatedResult of TEntity. - /// - public Func>> SearchFunc { get; } - - /// - /// A function that exports the specified data from the API. - /// - public Func>? ExportFunc { get; } - - public bool EnableAdvancedSearch { get; } - - public EntityServerTableContext( - List> fields, - Func>> searchFunc, - Func>? exportFunc = null, - bool enableAdvancedSearch = false, - Func? idFunc = null, - Func>? getDefaultsFunc = null, - Func? createFunc = null, - Func>? getDetailsFunc = null, - Func? updateFunc = null, - Func? deleteFunc = null, - string? entityName = null, - string? entityNamePlural = null, - string? entityResource = null, - string? searchAction = null, - string? createAction = null, - string? updateAction = null, - string? deleteAction = null, - string? exportAction = null, - Func? editFormInitializedFunc = null, - Func? hasExtraActionsFunc = null, - Func? canUpdateEntityFunc = null, - Func? canDeleteEntityFunc = null) - : base( - fields, - idFunc, - getDefaultsFunc, - createFunc, - getDetailsFunc, - updateFunc, - deleteFunc, - entityName, - entityNamePlural, - entityResource, - searchAction, - createAction, - updateAction, - deleteAction, - exportAction, - editFormInitializedFunc, - hasExtraActionsFunc, - canUpdateEntityFunc, - canDeleteEntityFunc) - { - SearchFunc = searchFunc; - ExportFunc = exportFunc; - EnableAdvancedSearch = enableAdvancedSearch; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor deleted file mode 100644 index 68221bd..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor +++ /dev/null @@ -1,158 +0,0 @@ -@typeparam TEntity -@typeparam TId -@typeparam TRequest - -@inject IJSRuntime JS -@inject IStringLocalizer L - - - - - - - @if (_canSearch && (Context.AdvancedSearchEnabled || AdvancedSearchContent is not null)) - { - - - - @if (Context.AdvancedSearchEnabled) - { -
- - @foreach (var field in Context.Fields) - { - - } -
- } - @AdvancedSearchContent - -
- } - - - - -
- @if (_canCreate) - { - @L["Create"] - } - @if (_canExport) - { - @L["Export"] - } - @L["Reload"] -
- - @if (_canSearch && !_advancedSearchExpanded) - { - - - } -
- - - @if (Context.Fields is not null) - { - foreach (var field in Context.Fields) - { - - @if (Context.IsClientContext) - { - @field.DisplayName - } - else - { - @field.DisplayName - } - - } - } - @L["Actions"] - - - - @foreach (var field in Context.Fields) - { - - @if (field.Template is not null) - { - @field.Template(context) - } - else if (field.Type == typeof(bool)) - { - - } - else - { - - } - - } - - @if (ActionsContent is not null) - { - @ActionsContent(context) - } - else if (HasActions) - { - - @if (CanUpdateEntity(context)) - { - @L["Edit"] - } - @if (CanDeleteEntity(context)) - { - @L["Delete"] - } - @if (ExtraActions is not null) - { - @ExtraActions(context) - } - - } - else - { - - @L["No Allowed Actions"] - - } - - - - - - - -
- -
- - - -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor.cs deleted file mode 100644 index 63ec907..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTable.razor.cs +++ /dev/null @@ -1,321 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Dialogs; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Shared; -using Mapster; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.JSInterop; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -public partial class EntityTable - where TRequest : new() -{ - [Parameter] - [EditorRequired] - public EntityTableContext Context { get; set; } = default!; - - [Parameter] - public bool Loading { get; set; } - - [Parameter] - public string? SearchString { get; set; } - [Parameter] - public EventCallback SearchStringChanged { get; set; } - - [Parameter] - public RenderFragment? AdvancedSearchContent { get; set; } - - [Parameter] - public RenderFragment? ActionsContent { get; set; } - [Parameter] - public RenderFragment? ExtraActions { get; set; } - [Parameter] - public RenderFragment? ChildRowContent { get; set; } - - [Parameter] - public RenderFragment? EditFormContent { get; set; } - - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - - private bool _canSearch; - private bool _canCreate; - private bool _canUpdate; - private bool _canDelete; - private bool _canExport; - - private bool _advancedSearchExpanded; - - private MudTable _table = default!; - private IEnumerable? _entityList; - private int _totalItems; - - protected override async Task OnInitializedAsync() - { - var state = await AuthState; - _canSearch = await CanDoActionAsync(Context.SearchAction, state); - _canCreate = await CanDoActionAsync(Context.CreateAction, state); - _canUpdate = await CanDoActionAsync(Context.UpdateAction, state); - _canDelete = await CanDoActionAsync(Context.DeleteAction, state); - _canExport = await CanDoActionAsync(Context.ExportAction, state); - - await LocalLoadDataAsync(); - } - - public Task ReloadDataAsync() => - Context.IsClientContext - ? LocalLoadDataAsync() - : ServerLoadDataAsync(); - - private async Task CanDoActionAsync(string? action, AuthenticationState state) => - !string.IsNullOrWhiteSpace(action) && - ((bool.TryParse(action, out bool isTrue) && isTrue) || // check if action equals "True", then it's allowed - (Context.EntityResource is { } resource && await AuthService.HasPermissionAsync(state.User, action, resource))); - - private bool HasActions => _canUpdate || _canDelete || (Context.HasExtraActionsFunc is not null && Context.HasExtraActionsFunc()); - private bool CanUpdateEntity(TEntity entity) => _canUpdate && (Context.CanUpdateEntityFunc is null || Context.CanUpdateEntityFunc(entity)); - private bool CanDeleteEntity(TEntity entity) => _canDelete && (Context.CanDeleteEntityFunc is null || Context.CanDeleteEntityFunc(entity)); - - // Client side paging/filtering - private bool LocalSearch(TEntity entity) => - Context.ClientContext?.SearchFunc is { } searchFunc - ? searchFunc(SearchString, entity) - : string.IsNullOrWhiteSpace(SearchString); - - private async Task LocalLoadDataAsync() - { - if (Loading || Context.ClientContext is null) - { - return; - } - - Loading = true; - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => Context.ClientContext.LoadDataFunc(), Snackbar) - is List result) - { - _entityList = result; - } - - Loading = false; - } - - // Server Side paging/filtering - - private async Task OnSearchStringChanged(string? text = null) - { - await SearchStringChanged.InvokeAsync(SearchString); - - await ServerLoadDataAsync(); - } - - private async Task ServerLoadDataAsync() - { - if (Context.IsServerContext) - { - await _table.ReloadServerData(); - } - } - - private Func>>? ServerReloadFunc => - Context.IsServerContext ? ServerReload : null; - - private async Task> ServerReload(TableState state) - { - if (!Loading && Context.ServerContext is not null) - { - Loading = true; - - var filter = GetPaginationFilter(state); - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => Context.ServerContext.SearchFunc(filter), Snackbar) - is { } result) - { - _totalItems = result.TotalCount; - _entityList = result.Data; - } - - Loading = false; - } - - return new TableData { TotalItems = _totalItems, Items = _entityList }; - } - - private async Task ExportAsync() - { - if (!Loading && Context.ServerContext is not null) - { - if (Context.ServerContext.ExportFunc is not null) - { - Loading = true; - - var filter = GetBaseFilter(); - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => Context.ServerContext.ExportFunc(filter), Snackbar) - is { } result) - { - using var streamRef = new DotNetStreamReference(result.Stream); - await JS.InvokeVoidAsync("downloadFileFromStream", $"{Context.EntityNamePlural}.xlsx", streamRef); - } - - Loading = false; - } - } - } - - private PaginationFilter GetPaginationFilter(TableState state) - { - string[]? orderings = null; - if (!string.IsNullOrEmpty(state.SortLabel)) - { - orderings = state.SortDirection == SortDirection.None - ? new[] { $"{state.SortLabel}" } - : new[] { $"{state.SortLabel} {state.SortDirection}" }; - } - - var filter = new PaginationFilter - { - PageSize = state.PageSize, - PageNumber = state.Page + 1, - Keyword = SearchString, - OrderBy = orderings ?? Array.Empty() - }; - - if (!Context.AllColumnsChecked) - { - filter.AdvancedSearch = new() - { - Fields = Context.SearchFields, - Keyword = filter.Keyword - }; - filter.Keyword = null; - } - - return filter; - } - - private BaseFilter GetBaseFilter() - { - var filter = new BaseFilter - { - Keyword = SearchString, - }; - - if (!Context.AllColumnsChecked) - { - filter.AdvancedSearch = new() - { - Fields = Context.SearchFields, - Keyword = filter.Keyword - }; - filter.Keyword = null; - } - - return filter; - } - - private async Task InvokeModal(TEntity? entity = default) - { - bool isCreate = entity is null; - - var parameters = new DialogParameters() - { - { nameof(AddEditModal.ChildContent), EditFormContent }, - { nameof(AddEditModal.OnInitializedFunc), Context.EditFormInitializedFunc }, - { nameof(AddEditModal.IsCreate), isCreate } - }; - - Func saveFunc; - TRequest requestModel; - string title, successMessage; - - if (isCreate) - { - _ = Context.CreateFunc ?? throw new InvalidOperationException("CreateFunc can't be null!"); - - saveFunc = Context.CreateFunc; - - requestModel = - Context.GetDefaultsFunc is not null - && await ApiHelper.ExecuteCallGuardedAsync( - () => Context.GetDefaultsFunc(), Snackbar) - is { } defaultsResult - ? defaultsResult - : new TRequest(); - - title = $"{L["Create"]} {Context.EntityName}"; - successMessage = $"{Context.EntityName} {L["Created"]}"; - } - else - { - _ = Context.IdFunc ?? throw new InvalidOperationException("IdFunc can't be null!"); - _ = Context.UpdateFunc ?? throw new InvalidOperationException("UpdateFunc can't be null!"); - - var id = Context.IdFunc(entity!); - - saveFunc = request => Context.UpdateFunc(id, request); - - requestModel = - Context.GetDetailsFunc is not null - && await ApiHelper.ExecuteCallGuardedAsync( - () => Context.GetDetailsFunc(id!), - Snackbar) - is { } detailsResult - ? detailsResult - : entity!.Adapt(); - - title = $"{L["Edit"]} {Context.EntityName}"; - successMessage = $"{Context.EntityName} {L["Updated"]}"; - } - - parameters.Add(nameof(AddEditModal.SaveFunc), saveFunc); - parameters.Add(nameof(AddEditModal.RequestModel), requestModel); - parameters.Add(nameof(AddEditModal.Title), title); - parameters.Add(nameof(AddEditModal.SuccessMessage), successMessage); - - var dialog = DialogService.ShowModal>(parameters); - - Context.SetAddEditModalRef(dialog); - - var result = await dialog.Result; - - if (!result.Cancelled) - { - await ReloadDataAsync(); - } - } - - private async Task Delete(TEntity entity) - { - _ = Context.IdFunc ?? throw new InvalidOperationException("IdFunc can't be null!"); - TId id = Context.IdFunc(entity); - - string deleteContent = L["You're sure you want to delete {0} with id '{1}'?"]; - var parameters = new DialogParameters - { - { nameof(DeleteConfirmation.ContentText), string.Format(deleteContent, Context.EntityName, id) } - }; - var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true, DisableBackdropClick = true }; - var dialog = DialogService.Show(L["Delete"], parameters, options); - var result = await dialog.Result; - if (!result.Cancelled) - { - _ = Context.DeleteFunc ?? throw new InvalidOperationException("DeleteFunc can't be null!"); - - await ApiHelper.ExecuteCallGuardedAsync( - () => Context.DeleteFunc(id), - Snackbar); - - await ReloadDataAsync(); - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTableContext.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTableContext.cs deleted file mode 100644 index 7054adc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/EntityTableContext.cs +++ /dev/null @@ -1,197 +0,0 @@ -using FSH.WebApi.Shared.Authorization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -/// -/// Abstract base class for the initialization Context of the EntityTable Component. -/// -/// The type of the entity. -/// The type of the id of the entity. -/// The type of the Request which is used on the AddEditModal and which is sent with the CreateFunc and UpdateFunc. -public abstract class EntityTableContext -{ - /// - /// The columns you want to display on the table. - /// - public List> Fields { get; } - - /// - /// A function that returns the Id of the entity. This is only needed when using the CRUD functionality. - /// - public Func? IdFunc { get; } - - /// - /// A function that executes the GetDefaults method on the api (or supplies defaults locally) and returns - /// a Task of Result of TRequest. When not supplied, a TRequest is simply newed up. - /// No need to check for error messages or api exceptions. These are automatically handled by the component. - /// - public Func>? GetDefaultsFunc { get; } - - /// - /// A function that executes the Create method on the api with the supplied entity and returns a Task of Result. - /// No need to check for error messages or api exceptions. These are automatically handled by the component. - /// - public Func? CreateFunc { get; } - - /// - /// A function that executes the GetDetails method on the api with the supplied Id and returns a Task of Result of TRequest. - /// No need to check for error messages or api exceptions. These are automatically handled by the component. - /// When not supplied, the TEntity out of the _entityList is supplied using the IdFunc and converted using mapster. - /// - public Func>? GetDetailsFunc { get; } - - /// - /// A function that executes the Update method on the api with the supplied entity and returns a Task of Result. - /// When not supplied, the TEntity from the list is mapped to TCreateRequest using mapster. - /// No need to check for error messages or api exceptions. These are automatically handled by the component. - /// - public Func? UpdateFunc { get; } - - /// - /// A function that executes the Delete method on the api with the supplied entity id and returns a Task of Result. - /// No need to check for error messages or api exceptions. These are automatically handled by the component. - /// - public Func? DeleteFunc { get; } - - /// - /// The name of the entity. This is used in the title of the add/edit modal and delete confirmation. - /// - public string? EntityName { get; } - - /// - /// The plural name of the entity. This is used in the "Search for ..." placeholder. - /// - public string? EntityNamePlural { get; } - - /// - /// The FSHResource that is representing this entity. This is used in combination with the xxActions to check for permissions. - /// - public string? EntityResource { get; } - - /// - /// The FSHAction name of the search permission. This is FSHAction.Search by default. - /// When empty, no search functionality will be available. - /// When the string is "true", search funtionality will be enabled, - /// otherwise it will only be enabled if the user has permission for this action on the EntityResource. - /// - public string SearchAction { get; } - - /// - /// The permission name of the create permission. This is FSHAction.Create by default. - /// When empty, no create functionality will be available. - /// When the string "true", create funtionality will be enabled, - /// otherwise it will only be enabled if the user has permission for this action on the EntityResource. - /// - public string CreateAction { get; } - - /// - /// The permission name of the update permission. This is FSHAction.Update by default. - /// When empty, no update functionality will be available. - /// When the string is "true", update funtionality will be enabled, - /// otherwise it will only be enabled if the user has permission for this action on the EntityResource. - /// - public string UpdateAction { get; } - - /// - /// The permission name of the delete permission. This is FSHAction.Delete by default. - /// When empty, no delete functionality will be available. - /// When the string is "true", delete funtionality will be enabled, - /// otherwise it will only be enabled if the user has permission for this action on the EntityResource. - /// - public string DeleteAction { get; } - - /// - /// The permission name of the export permission. This is FSHAction.Export by default. - /// - public string ExportAction { get; } - - /// - /// Use this if you want to run initialization during OnInitialized of the AddEdit form. - /// - public Func? EditFormInitializedFunc { get; } - - /// - /// Use this if you want to check for permissions of content in the ExtraActions RenderFragment. - /// The extra actions won't be available when this returns false. - /// - public Func? HasExtraActionsFunc { get; set; } - - /// - /// Use this if you want to disable the update functionality for specific entities in the table. - /// - public Func? CanUpdateEntityFunc { get; set; } - - /// - /// Use this if you want to disable the delete functionality for specific entities in the table. - /// - public Func? CanDeleteEntityFunc { get; set; } - - public EntityTableContext( - List> fields, - Func? idFunc, - Func>? getDefaultsFunc, - Func? createFunc, - Func>? getDetailsFunc, - Func? updateFunc, - Func? deleteFunc, - string? entityName, - string? entityNamePlural, - string? entityResource, - string? searchAction, - string? createAction, - string? updateAction, - string? deleteAction, - string? exportAction, - Func? editFormInitializedFunc, - Func? hasExtraActionsFunc, - Func? canUpdateEntityFunc, - Func? canDeleteEntityFunc) - { - EntityResource = entityResource; - Fields = fields; - EntityName = entityName; - EntityNamePlural = entityNamePlural; - IdFunc = idFunc; - GetDefaultsFunc = getDefaultsFunc; - CreateFunc = createFunc; - GetDetailsFunc = getDetailsFunc; - UpdateFunc = updateFunc; - DeleteFunc = deleteFunc; - SearchAction = searchAction ?? FSHAction.Search; - CreateAction = createAction ?? FSHAction.Create; - UpdateAction = updateAction ?? FSHAction.Update; - DeleteAction = deleteAction ?? FSHAction.Delete; - ExportAction = exportAction ?? FSHAction.Export; - EditFormInitializedFunc = editFormInitializedFunc; - HasExtraActionsFunc = hasExtraActionsFunc; - CanUpdateEntityFunc = canUpdateEntityFunc; - CanDeleteEntityFunc = canDeleteEntityFunc; - } - - // AddEdit modal - private IDialogReference? _addEditModalRef; - - internal void SetAddEditModalRef(IDialogReference dialog) => - _addEditModalRef = dialog; - - public IAddEditModal AddEditModal => - _addEditModalRef?.Dialog as IAddEditModal - ?? throw new InvalidOperationException("AddEditModal is only available when the modal is shown."); - - // Shortcuts - public EntityClientTableContext? ClientContext => this as EntityClientTableContext; - public EntityServerTableContext? ServerContext => this as EntityServerTableContext; - public bool IsClientContext => ClientContext is not null; - public bool IsServerContext => ServerContext is not null; - - // Advanced Search - public bool AllColumnsChecked => - Fields.All(f => f.CheckedForSearch); - public void AllColumnsCheckChanged(bool checkAll) => - Fields.ForEach(f => f.CheckedForSearch = checkAll); - public bool AdvancedSearchEnabled => - ServerContext?.EnableAdvancedSearch is true; - public List SearchFields => - Fields.Where(f => f.CheckedForSearch).Select(f => f.SortLabel).ToList(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/IAddEditModal.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/IAddEditModal.cs deleted file mode 100644 index 397d81d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/IAddEditModal.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -public interface IAddEditModal -{ - TRequest RequestModel { get; } - bool IsCreate { get; } - void ForceRender(); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/PaginationResponse.cs b/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/PaginationResponse.cs deleted file mode 100644 index 404eb6a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/EntityTable/PaginationResponse.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Components.EntityTable; - -public class PaginationResponse -{ - public List Data { get; set; } = default!; - public int TotalCount { get; set; } - public int CurrentPage { get; set; } = 1; - public int PageSize { get; set; } = 10; -} diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Localization/LanguageSelector.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Localization/LanguageSelector.razor deleted file mode 100644 index 0305761..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Localization/LanguageSelector.razor +++ /dev/null @@ -1,41 +0,0 @@ -@inject IStringLocalizer L - - - - @foreach (var language in LocalizationConstants.SupportedLanguages) - { - if (language.Code == CurrentLanguage) - { - @L[language.DisplayName] - } - else - { - @L[language.DisplayName] - } - } - - - -@code { - public string? CurrentLanguage { get; set; } = "en-US"; - - protected override async Task OnInitializedAsync() - { - var currentPreference = await ClientPreferences.GetPreference() as ClientPreference; - if (currentPreference != null) - { - CurrentLanguage = currentPreference.LanguageCode; - } - else - { - CurrentLanguage = "en-US"; - } - - } - private async Task ChangeLanguageAsync(string languageCode) - { - var result = await ClientPreferences.ChangeLanguageAsync(languageCode); - Navigation.NavigateTo(Navigation.Uri, forceLoad: true); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor deleted file mode 100644 index 6d04cdf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor +++ /dev/null @@ -1,3 +0,0 @@ - - @ChildContent - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor.cs deleted file mode 100644 index f5e7904..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnection.razor.cs +++ /dev/null @@ -1,153 +0,0 @@ -using System.Net; -using System.Reflection; -using System.Text.Json; -using System.Text.Json.Nodes; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; -using FSH.WebApi.Shared.Notifications; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.WebAssembly.Authentication; -using Microsoft.AspNetCore.SignalR.Client; - -namespace FSH.BlazorWebAssembly.Client.Components.Notifications; - -public partial class NotificationConnection : IDisposable, IAsyncDisposable -{ - [Parameter] - public RenderFragment ChildContent { get; set; } = default!; - [Inject] - private IAccessTokenProvider TokenProvider { get; set; } = default!; - [Inject] - private INotificationPublisher Publisher { get; set; } = default!; - [Inject] - private IAuthenticationService AuthService { get; set; } = default!; - [Inject] - private ILogger Logger { get; set; } = default!; - - private readonly CancellationTokenSource _cts = new(); - private IDisposable? _subscription; - private HubConnection? _hubConnection; - - public ConnectionState ConnectionState => - _hubConnection?.State switch - { - HubConnectionState.Connected => ConnectionState.Connected, - HubConnectionState.Disconnected => ConnectionState.Disconnected, - _ => ConnectionState.Connecting - }; - - public string? ConnectionId => _hubConnection?.ConnectionId; - - protected override Task OnInitializedAsync() - { - _hubConnection = new HubConnectionBuilder() - .WithUrl($"{Config[ConfigNames.ApiBaseUrl]}notifications", options => - options.AccessTokenProvider = - () => TokenProvider.GetAccessTokenAsync()) - .WithAutomaticReconnect(new IndefiniteRetryPolicy()) - .Build(); - - _hubConnection.Reconnecting += ex => - OnConnectionStateChangedAsync(ConnectionState.Connecting, ex?.Message); - - _hubConnection.Reconnected += id => - OnConnectionStateChangedAsync(ConnectionState.Connected, id); - - _hubConnection.Closed += async ex => - { - await OnConnectionStateChangedAsync(ConnectionState.Disconnected, ex?.Message); - - // This shouldn't happen with the IndefiniteRetryPolicy configured above, - // but just in case it does, we wait a bit and restart the connection again. - await Task.Delay(5000, _cts.Token); - await ConnectWithRetryAsync(_cts.Token); - }; - - _subscription = _hubConnection.On(NotificationConstants.NotificationFromServer, (notificationTypeName, notificationJson) => - { - if (Assembly.GetAssembly(typeof(INotificationMessage))!.GetType(notificationTypeName) - is { } notificationType - && notificationJson.Deserialize( - notificationType, - new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }) - is INotificationMessage notification) - { - return Publisher.PublishAsync(notification); - } - - Logger.LogError("Invalid Notification Received ({name}).", notificationTypeName); - - return Task.CompletedTask; - }); - - // launch the signalR connection in the background. - // see https://www.dotnetcurry.com/aspnet-core/realtime-app-using-blazor-webassembly-signalr-csharp9 - _ = ConnectWithRetryAsync(_cts.Token); - - return base.OnInitializedAsync(); - } - - protected virtual Task OnConnectionStateChangedAsync(ConnectionState state, string? message) - { - return Publisher.PublishAsync(new ConnectionStateChanged(state, message)); - } - - private async Task ConnectWithRetryAsync(CancellationToken cancellationToken) - { - _ = _hubConnection ?? throw new InvalidOperationException("HubConnection can't be null."); - - // Keep trying to until we can start or the token is canceled. - while (true) - { - try - { - await _hubConnection.StartAsync(cancellationToken); - await OnConnectionStateChangedAsync(ConnectionState.Connected, _hubConnection.ConnectionId); - return; - } - catch when (cancellationToken.IsCancellationRequested) - { - return; - } - catch (HttpRequestException requestException) when (requestException.StatusCode == HttpStatusCode.Unauthorized) - { - // This shouldn't happen, but just in case, redirect to logout. - await AuthService.LogoutAsync(); - return; - } - catch - { - // Try again in a few seconds. This could be an incremental interval - await Task.Delay(5000, cancellationToken); - } - } - } - - public void Dispose() - { - _cts.Cancel(); - _cts.Dispose(); - _subscription?.Dispose(); - } - - public async ValueTask DisposeAsync() - { - if (_hubConnection is not null) - { - await _hubConnection.DisposeAsync(); - } - } -} - -internal class IndefiniteRetryPolicy : IRetryPolicy -{ - public TimeSpan? NextRetryDelay(RetryContext retryContext) => - retryContext.PreviousRetryCount switch - { - 0 => TimeSpan.Zero, - 1 => TimeSpan.FromSeconds(2), - 2 => TimeSpan.FromSeconds(5), - _ => TimeSpan.FromSeconds(10) - }; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnectionStatus.razor b/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnectionStatus.razor deleted file mode 100644 index 78bea4a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/Notifications/NotificationConnectionStatus.razor +++ /dev/null @@ -1,49 +0,0 @@ -@inject ICourier Courier - - - - - -@code { - public string TooltipText { get; set; } = "No Connection"; - public string Icon { get; set; } = Icons.Filled.SignalWifi0Bar; - public Color IconColor { get; set; } = Color.Error; - - [CascadingParameter] private NotificationConnection _notifications { get; set; } = default!; - - protected override void OnInitialized() - { - SetConnectionState(_notifications.ConnectionState, _notifications.ConnectionId); - - Courier.SubscribeWeak>(wrapper => - { - SetConnectionState(wrapper.Notification.State, wrapper.Notification.Message); - StateHasChanged(); - }); - } - - private void SetConnectionState(ConnectionState state, string? message) - { - switch (state) - { - case ConnectionState.Connected: - TooltipText = $"Connected to Server with ConnectionId {message}"; - Icon = @Icons.Filled.SignalWifiStatusbar4Bar; - IconColor = Color.Success; - break; - - case ConnectionState.Connecting: - TooltipText = $"(Re)connecting... ({message})."; - Icon = @Icons.Filled.SignalWifiStatusbarConnectedNoInternet4; - IconColor = Color.Warning; - break; - - case ConnectionState.Disconnected: - TooltipText = $"Connection Closed ({message})."; - Icon = @Icons.Filled.SignalWifiOff; - IconColor = Color.Error; - break; - } - StateHasChanged(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor deleted file mode 100644 index 2b90017..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor +++ /dev/null @@ -1,27 +0,0 @@ - - -
- @ColorType - - -
-
- - - - - @foreach (var color in Colors) - { - - -
-
-
-
- } -
-
-
-
-
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor.cs deleted file mode 100644 index b375554..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ColorPanel.razor.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class ColorPanel -{ - [Parameter] - public List Colors { get; set; } = new(); - - [Parameter] - public string ColorType { get; set; } = string.Empty; - - [Parameter] - public Color CurrentColor { get; set; } - - [Parameter] - public EventCallback OnColorClicked { get; set; } - - protected async Task ColorClicked(string color) - { - await OnColorClicked.InvokeAsync(color); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor deleted file mode 100644 index 1f983fc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor +++ /dev/null @@ -1,17 +0,0 @@ - - -
- @if (_isDarkMode) - { - Light Mode - } - else - { - Dark Mode - } - -
-
-
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor.cs deleted file mode 100644 index 44ba401..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/DarkModePanel.razor.cs +++ /dev/null @@ -1,24 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class DarkModePanel -{ - private bool _isDarkMode; - - protected override async Task OnInitializedAsync() - { - if (await ClientPreferences.GetPreference() is not ClientPreference themePreference) themePreference = new ClientPreference(); - _isDarkMode = themePreference.IsDarkMode; - } - - [Parameter] - public EventCallback OnIconClicked { get; set; } - - private async Task ToggleDarkMode() - { - _isDarkMode = !_isDarkMode; - await OnIconClicked.InvokeAsync(_isDarkMode); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor deleted file mode 100644 index 56e42f2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor +++ /dev/null @@ -1,15 +0,0 @@ - - -
- Border Radius - @Radius.ToString() - -
-
- - - @Radius.ToString() - -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor.cs deleted file mode 100644 index ffef58d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/RadiusPanel.razor.cs +++ /dev/null @@ -1,28 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class RadiusPanel -{ - [Parameter] - public double Radius { get; set; } - - [Parameter] - public double MaxValue { get; set; } = 30; - - [Parameter] - public EventCallback OnSliderChanged { get; set; } - - protected override async Task OnInitializedAsync() - { - if (await ClientPreferences.GetPreference() is not ClientPreference themePreference) themePreference = new ClientPreference(); - Radius = themePreference.BorderRadius; - } - - private async Task ChangedSelection(ChangeEventArgs args) - { - Radius = int.Parse(args?.Value?.ToString() ?? "0"); - await OnSliderChanged.InvokeAsync(Radius); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor deleted file mode 100644 index e10ea10..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor +++ /dev/null @@ -1,19 +0,0 @@ - - -
- Table Customization - T - -
-
- - - - - - -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor.cs deleted file mode 100644 index e4b3c63..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/TableCustomizationPanel.razor.cs +++ /dev/null @@ -1,74 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class TableCustomizationPanel -{ - [Parameter] - public bool IsDense { get; set; } - [Parameter] - public bool IsStriped { get; set; } - [Parameter] - public bool HasBorder { get; set; } - [Parameter] - public bool IsHoverable { get; set; } - [Inject] - protected INotificationPublisher Notifications { get; set; } = default!; - - private FshTablePreference _tablePreference = new(); - - protected override async Task OnInitializedAsync() - { - if (await ClientPreferences.GetPreference() is ClientPreference clientPreference) - { - _tablePreference = clientPreference.TablePreference; - } - - IsDense = _tablePreference.IsDense; - IsStriped = _tablePreference.IsStriped; - HasBorder = _tablePreference.HasBorder; - IsHoverable = _tablePreference.IsHoverable; - } - - [Parameter] - public EventCallback OnDenseSwitchToggled { get; set; } - - [Parameter] - public EventCallback OnStripedSwitchToggled { get; set; } - - [Parameter] - public EventCallback OnBorderdedSwitchToggled { get; set; } - - [Parameter] - public EventCallback OnHoverableSwitchToggled { get; set; } - - private async Task ToggleDenseSwitch() - { - _tablePreference.IsDense = !_tablePreference.IsDense; - await OnDenseSwitchToggled.InvokeAsync(_tablePreference.IsDense); - await Notifications.PublishAsync(_tablePreference); - } - - private async Task ToggleStripedSwitch() - { - _tablePreference.IsStriped = !_tablePreference.IsStriped; - await OnStripedSwitchToggled.InvokeAsync(_tablePreference.IsStriped); - await Notifications.PublishAsync(_tablePreference); - } - - private async Task ToggleBorderedSwitch() - { - _tablePreference.HasBorder = !_tablePreference.HasBorder; - await OnBorderdedSwitchToggled.InvokeAsync(_tablePreference.HasBorder); - await Notifications.PublishAsync(_tablePreference); - } - - private async Task ToggleHoverableSwitch() - { - _tablePreference.IsHoverable = !_tablePreference.IsHoverable; - await OnHoverableSwitchToggled.InvokeAsync(_tablePreference.IsHoverable); - await Notifications.PublishAsync(_tablePreference); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor deleted file mode 100644 index 364ecc5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor +++ /dev/null @@ -1,16 +0,0 @@ -
- - - -
- - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor.cs deleted file mode 100644 index 2131465..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeButton.razor.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Web; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class ThemeButton -{ - [Parameter] - public EventCallback OnClick { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor deleted file mode 100644 index 1ee685d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor +++ /dev/null @@ -1,28 +0,0 @@ - - - - Theme Manager - - - - - -
- - - - - - - -
-
- \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor.cs deleted file mode 100644 index 8ef41f5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Components/ThemeManager/ThemeDrawer.razor.cs +++ /dev/null @@ -1,96 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using FSH.BlazorWebAssembly.Client.Infrastructure.Theme; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Components.ThemeManager; - -public partial class ThemeDrawer -{ - [Parameter] - public bool ThemeDrawerOpen { get; set; } - - [Parameter] - public EventCallback ThemeDrawerOpenChanged { get; set; } - - [EditorRequired] - [Parameter] - public ClientPreference ThemePreference { get; set; } = default!; - - [EditorRequired] - [Parameter] - public EventCallback ThemePreferenceChanged { get; set; } - - private readonly List _colors = CustomColors.ThemeColors; - - private async Task UpdateThemePrimaryColor(string color) - { - if (ThemePreference is not null) - { - ThemePreference.PrimaryColor = color; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task UpdateThemeSecondaryColor(string color) - { - if (ThemePreference is not null) - { - ThemePreference.SecondaryColor = color; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task UpdateBorderRadius(double radius) - { - if (ThemePreference is not null) - { - ThemePreference.BorderRadius = radius; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task ToggleDarkLightMode(bool isDarkMode) - { - if (ThemePreference is not null) - { - ThemePreference.IsDarkMode = isDarkMode; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task ToggleEntityTableDense(bool isDense) - { - if (ThemePreference is not null) - { - ThemePreference.TablePreference.IsDense = isDense; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task ToggleEntityTableStriped(bool isStriped) - { - if (ThemePreference is not null) - { - ThemePreference.TablePreference.IsStriped = isStriped; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task ToggleEntityTableBorder(bool hasBorder) - { - if (ThemePreference is not null) - { - ThemePreference.TablePreference.HasBorder = hasBorder; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } - - private async Task ToggleEntityTableHoverable(bool isHoverable) - { - if (ThemePreference is not null) - { - ThemePreference.TablePreference.IsHoverable = isHoverable; - await ThemePreferenceChanged.InvokeAsync(ThemePreference); - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Authentication.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Authentication.razor deleted file mode 100644 index 08b90bc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Authentication.razor +++ /dev/null @@ -1,74 +0,0 @@ -@page "/authentication/{action}" -@attribute [AllowAnonymous] - -@inject IStringLocalizer L - - - @* Override the different child items to adapt them to our own style - I've done this for LogOutSucceeded now, already added the rest but with the defaults (and localization). *@ - - - - @L["You were successfully logged out."] - - - - - @L["Click here to log back in"]. - - - - - @L["Logging you in..."] - - - @L["Checking permissions..."] - - - - - @L["Sorry, your login failed. Please try again or contact support."] - - - @if (GetMessage() is string message && !string.IsNullOrWhiteSpace(message)) - { - - @message - - } - - - @L["Logging you out..."] - - - @L["Logging you out..."] - - - @L["Sorry, log out operation failed. Please try again or contact support."] - - - @L["Retrieving profile..."] - - - @L["Registering account..."] - - - -@code { - [Parameter] public string? Action { get; set; } - - private void GoHome() => Navigation.NavigateTo("/"); - - private string? GetMessage() - { - var query = Navigation.ToAbsoluteUri(Navigation.Uri).Query; - - if (!string.IsNullOrWhiteSpace(query) - && QueryHelpers.ParseQuery(query).TryGetValue("message", out var message)) - { - return message.ToString(); - } - - return null; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor deleted file mode 100644 index 73d9b51..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor +++ /dev/null @@ -1,45 +0,0 @@ -@page "/account/forgot-password" -@attribute [AllowAnonymous] -@inject IStringLocalizer L -@inject IStringLocalizer LS - - - - - - - - -
- -
-
- @L["Forgot Password?"] - - @L["We can help you by resetting your password."] -
-
-
-
- - - - - - - - - - - - - - - @L["Forgot Password"] - -
-
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor.cs deleted file mode 100644 index 005815f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/ForgotPassword.razor.cs +++ /dev/null @@ -1,31 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Multitenancy; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Pages.Authentication; - -public partial class ForgotPassword -{ - private readonly ForgotPasswordRequest _forgotPasswordRequest = new(); - private CustomValidation? _customValidation; - private bool BusySubmitting { get; set; } - - [Inject] - private IUsersClient UsersClient { get; set; } = default!; - - private string Tenant { get; set; } = MultitenancyConstants.Root.Id; - - private async Task SubmitAsync() - { - BusySubmitting = true; - - await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.ForgotPasswordAsync(Tenant, _forgotPasswordRequest), - Snackbar, - _customValidation); - - BusySubmitting = false; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor deleted file mode 100644 index 2ca6929..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor +++ /dev/null @@ -1,47 +0,0 @@ -@page "/login" -@attribute [AllowAnonymous] -@inject IStringLocalizer L -@inject IStringLocalizer LS - -
- -
-
- Sign In - @L["Enter your credentials to get started."] - -
-
- - - - - - - - - - - - - - - - @L["Register?"] - - - @L["Forgot password?"] - - - @L["Sign In"] - - - @L["Fill Administrator Credentials"] - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor.cs deleted file mode 100644 index 33b7e7d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/Login.razor.cs +++ /dev/null @@ -1,81 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Multitenancy; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Authentication; - -public partial class Login -{ - [CascadingParameter] - public Task AuthState { get; set; } = default!; - [Inject] - public IAuthenticationService AuthService { get; set; } = default!; - - private CustomValidation? _customValidation; - - public bool BusySubmitting { get; set; } - - private readonly TokenRequest _tokenRequest = new(); - private string TenantId { get; set; } = string.Empty; - private bool _passwordVisibility; - private InputType _passwordInput = InputType.Password; - private string _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - - protected override async Task OnInitializedAsync() - { - if (AuthService.ProviderType == AuthProvider.AzureAd) - { - AuthService.NavigateToExternalLogin(Navigation.Uri); - return; - } - - var authState = await AuthState; - if (authState.User.Identity?.IsAuthenticated is true) - { - Navigation.NavigateTo("/"); - } - } - - private void TogglePasswordVisibility() - { - if (_passwordVisibility) - { - _passwordVisibility = false; - _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - _passwordInput = InputType.Password; - } - else - { - _passwordVisibility = true; - _passwordInputIcon = Icons.Material.Filled.Visibility; - _passwordInput = InputType.Text; - } - } - - private void FillAdministratorCredentials() - { - _tokenRequest.Email = MultitenancyConstants.Root.EmailAddress; - _tokenRequest.Password = MultitenancyConstants.DefaultPassword; - TenantId = MultitenancyConstants.Root.Id; - } - - private async Task SubmitAsync() - { - BusySubmitting = true; - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => AuthService.LoginAsync(TenantId, _tokenRequest), - Snackbar, - _customValidation)) - { - Snackbar.Add($"Logged in as {_tokenRequest.Email}", Severity.Info); - } - - BusySubmitting = false; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor deleted file mode 100644 index 975e15e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor +++ /dev/null @@ -1,74 +0,0 @@ -@page "/users/self-register" -@attribute [AllowAnonymous] -@inject IStringLocalizer L -@inject IStringLocalizer LS - - - - - - - - -
- -
-
- - @L["New User Registration"] - - @L["Enter your details below to set up your new account"] -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @L["Register"] - - -
-
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor.cs deleted file mode 100644 index 613b3ec..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Authentication/SelfRegister.razor.cs +++ /dev/null @@ -1,58 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Multitenancy; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Authentication; - -public partial class SelfRegister -{ - private readonly CreateUserRequest _createUserRequest = new(); - private CustomValidation? _customValidation; - private bool BusySubmitting { get; set; } - - [Inject] - private IUsersClient UsersClient { get; set; } = default!; - - private string Tenant { get; set; } = MultitenancyConstants.Root.Id; - - private bool _passwordVisibility; - private InputType _passwordInput = InputType.Password; - private string _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - - private async Task SubmitAsync() - { - BusySubmitting = true; - - string? sucessMessage = await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.SelfRegisterAsync(Tenant, _createUserRequest), - Snackbar, - _customValidation); - - if (sucessMessage != null) - { - Snackbar.Add(sucessMessage, Severity.Info); - Navigation.NavigateTo("/login"); - } - - BusySubmitting = false; - } - - private void TogglePasswordVisibility() - { - if (_passwordVisibility) - { - _passwordVisibility = false; - _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - _passwordInput = InputType.Password; - } - else - { - _passwordVisibility = true; - _passwordInputIcon = Icons.Material.Filled.Visibility; - _passwordInput = InputType.Text; - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/BrandAutocomplete.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/BrandAutocomplete.cs deleted file mode 100644 index 7720bcf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/BrandAutocomplete.cs +++ /dev/null @@ -1,68 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Shared; -using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Localization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Catalog; - -public class BrandAutocomplete : MudAutocomplete -{ - [Inject] - private IStringLocalizer L { get; set; } = default!; - [Inject] - private IBrandsClient BrandsClient { get; set; } = default!; - [Inject] - private ISnackbar Snackbar { get; set; } = default!; - - private List _brands = new(); - - // supply default parameters, but leave the possibility to override them - public override Task SetParametersAsync(ParameterView parameters) - { - Label = L["Brand"]; - Variant = Variant.Filled; - Dense = true; - Margin = Margin.Dense; - ResetValueOnEmptyText = true; - SearchFunc = SearchBrands; - ToStringFunc = GetBrandName; - Clearable = true; - return base.SetParametersAsync(parameters); - } - - // when the value parameter is set, we have to load that one brand to be able to show the name - // we can't do that in OnInitialized because of a strange bug (https://github.com/MudBlazor/MudBlazor/issues/3818) - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender && - _value != default && - await ApiHelper.ExecuteCallGuardedAsync( - () => BrandsClient.GetAsync(_value), Snackbar) is { } brand) - { - _brands.Add(brand); - ForceRender(true); - } - } - - private async Task> SearchBrands(string value) - { - var filter = new SearchBrandsRequest - { - PageSize = 10, - AdvancedSearch = new() { Fields = new[] { "name" }, Keyword = value } - }; - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => BrandsClient.SearchAsync(filter), Snackbar) - is PaginationResponseOfBrandDto response) - { - _brands = response.Data.ToList(); - } - - return _brands.Select(x => x.Id); - } - - private string GetBrandName(Guid id) => - _brands.Find(b => b.Id == id)?.Name ?? string.Empty; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Brands.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Brands.razor deleted file mode 100644 index fe23833..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Brands.razor +++ /dev/null @@ -1,52 +0,0 @@ -@page "/catalog/brands" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Brands)] - -@inject IStringLocalizer L -@inject IBrandsClient BrandsClient - - - - - - - @if (!Context.AddEditModal.IsCreate) - { - - - - } - - - - - - - - - - -@code -{ - protected EntityServerTableContext Context { get; set; } = default!; - - protected override void OnInitialized() => - Context = new( - entityName: L["Brand"], - entityNamePlural: L["Brands"], - entityResource: FSHResource.Brands, - fields: new() - { - new(brand => brand.Id, L["Id"], "Id"), - new(brand => brand.Name, L["Name"], "Name"), - new(brand => brand.Description, L["Description"], "Description"), - }, - idFunc: brand => brand.Id, - searchFunc: async filter => (await BrandsClient - .SearchAsync(filter.Adapt())) - .Adapt>(), - createFunc: async brand => await BrandsClient.CreateAsync(brand.Adapt()), - updateFunc: async (id, brand) => await BrandsClient.UpdateAsync(id, brand), - deleteFunc: async id => await BrandsClient.DeleteAsync(id), - exportAction: string.Empty); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor deleted file mode 100644 index 89b083e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor +++ /dev/null @@ -1,78 +0,0 @@ -@page "/catalog/products" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Products)] - -@inject IStringLocalizer L - - - - - - - - @L["Minimum Rate"]: @_searchMinimumRate.ToString() - @L["Maximum Rate"]: @_searchMaximumRate.ToString() - - - - @if (!Context.AddEditModal.IsCreate) - { - - - - } - - - - - - - - - - - - - - - @if(!string.IsNullOrEmpty(context.ImageInBytes)) - { - - } - else - { - - } - - -
- - @L["Upload"] - - @if(!Context.AddEditModal.IsCreate && !string.IsNullOrEmpty(context.ImagePath) && string.IsNullOrEmpty(context.ImageInBytes)) - { - - @L["View"] - - - - @L["Delete"] - - } - @if(!string.IsNullOrEmpty(context.ImageInBytes)) - { - - @L["Clear"] - - } -
-
-
-
- -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor.cs deleted file mode 100644 index 079dd06..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Catalog/Products.razor.cs +++ /dev/null @@ -1,159 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.EntityTable; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.WebApi.Shared.Authorization; -using Mapster; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Catalog; - -public partial class Products -{ - [Inject] - protected IProductsClient ProductsClient { get; set; } = default!; - [Inject] - protected IBrandsClient BrandsClient { get; set; } = default!; - - protected EntityServerTableContext Context { get; set; } = default!; - - private EntityTable _table = default!; - - protected override void OnInitialized() => - Context = new( - entityName: L["Product"], - entityNamePlural: L["Products"], - entityResource: FSHResource.Products, - fields: new() - { - new(prod => prod.Id, L["Id"], "Id"), - new(prod => prod.Name, L["Name"], "Name"), - new(prod => prod.BrandName, L["Brand"], "Brand.Name"), - new(prod => prod.Description, L["Description"], "Description"), - new(prod => prod.Rate, L["Rate"], "Rate") - }, - enableAdvancedSearch: true, - idFunc: prod => prod.Id, - searchFunc: async filter => - { - var productFilter = filter.Adapt(); - - productFilter.BrandId = SearchBrandId == default ? null : SearchBrandId; - productFilter.MinimumRate = SearchMinimumRate; - productFilter.MaximumRate = SearchMaximumRate; - - var result = await ProductsClient.SearchAsync(productFilter); - return result.Adapt>(); - }, - createFunc: async prod => - { - if (!string.IsNullOrEmpty(prod.ImageInBytes)) - { - prod.Image = new FileUploadRequest() { Data = prod.ImageInBytes, Extension = prod.ImageExtension ?? string.Empty, Name = $"{prod.Name}_{Guid.NewGuid():N}" }; - } - - await ProductsClient.CreateAsync(prod.Adapt()); - prod.ImageInBytes = string.Empty; - }, - updateFunc: async (id, prod) => - { - if (!string.IsNullOrEmpty(prod.ImageInBytes)) - { - prod.DeleteCurrentImage = true; - prod.Image = new FileUploadRequest() { Data = prod.ImageInBytes, Extension = prod.ImageExtension ?? string.Empty, Name = $"{prod.Name}_{Guid.NewGuid():N}" }; - } - - await ProductsClient.UpdateAsync(id, prod.Adapt()); - prod.ImageInBytes = string.Empty; - }, - exportFunc: async filter => - { - var exportFilter = filter.Adapt(); - - exportFilter.BrandId = SearchBrandId == default ? null : SearchBrandId; - exportFilter.MinimumRate = SearchMinimumRate; - exportFilter.MaximumRate = SearchMaximumRate; - - return await ProductsClient.ExportAsync(exportFilter); - }, - deleteFunc: async id => await ProductsClient.DeleteAsync(id)); - - // Advanced Search - - private Guid _searchBrandId; - private Guid SearchBrandId - { - get => _searchBrandId; - set - { - _searchBrandId = value; - _ = _table.ReloadDataAsync(); - } - } - - private decimal _searchMinimumRate; - private decimal SearchMinimumRate - { - get => _searchMinimumRate; - set - { - _searchMinimumRate = value; - _ = _table.ReloadDataAsync(); - } - } - - private decimal _searchMaximumRate = 9999; - private decimal SearchMaximumRate - { - get => _searchMaximumRate; - set - { - _searchMaximumRate = value; - _ = _table.ReloadDataAsync(); - } - } - - // TODO : Make this as a shared service or something? Since it's used by Profile Component also for now, and literally any other component that will have image upload. - // The new service should ideally return $"data:{ApplicationConstants.StandardImageFormat};base64,{Convert.ToBase64String(buffer)}" - private async Task UploadFiles(InputFileChangeEventArgs e) - { - if (e.File != null) - { - string? extension = Path.GetExtension(e.File.Name); - if (!ApplicationConstants.SupportedImageFormats.Contains(extension.ToLower())) - { - Snackbar.Add("Image Format Not Supported.", Severity.Error); - return; - } - - Context.AddEditModal.RequestModel.ImageExtension = extension; - var imageFile = await e.File.RequestImageFileAsync(ApplicationConstants.StandardImageFormat, ApplicationConstants.MaxImageWidth, ApplicationConstants.MaxImageHeight); - byte[]? buffer = new byte[imageFile.Size]; - await imageFile.OpenReadStream(ApplicationConstants.MaxAllowedSize).ReadAsync(buffer); - Context.AddEditModal.RequestModel.ImageInBytes = $"data:{ApplicationConstants.StandardImageFormat};base64,{Convert.ToBase64String(buffer)}"; - Context.AddEditModal.ForceRender(); - } - } - - public void ClearImageInBytes() - { - Context.AddEditModal.RequestModel.ImageInBytes = string.Empty; - Context.AddEditModal.ForceRender(); - } - - public void SetDeleteCurrentImageFlag() - { - Context.AddEditModal.RequestModel.ImageInBytes = string.Empty; - Context.AddEditModal.RequestModel.ImagePath = string.Empty; - Context.AddEditModal.RequestModel.DeleteCurrentImage = true; - Context.AddEditModal.ForceRender(); - } -} - -public class ProductViewModel : UpdateProductRequest -{ - public string? ImagePath { get; set; } - public string? ImageInBytes { get; set; } - public string? ImageExtension { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Account.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Account.razor deleted file mode 100644 index 4d89ede..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Account.razor +++ /dev/null @@ -1,33 +0,0 @@ -@page "/account" - -@inject IStringLocalizer L - - - - - - - - @if (!SecurityTabHidden) - { - - - - } - - -@code -{ - [Inject] - public IAuthenticationService AuthService { get; set; } = default!; - - public bool SecurityTabHidden { get; set; } = false; - - protected override void OnInitialized() - { - if (AuthService.ProviderType == AuthProvider.AzureAd) - { - SecurityTabHidden = true; - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor deleted file mode 100644 index 006b27b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor +++ /dev/null @@ -1,84 +0,0 @@ -@inject IStringLocalizer L - - - - - -
- @if (!string.IsNullOrEmpty(_imageUrl)) - { - - } - else - { - @_firstLetterOfName - } -
- @_profileModel.FirstName @_profileModel.LastName - @_profileModel.Email -
- - -
-
- - - - - - @L["Profile Details"] - - - - - - - - - - - - - - - - - - - - - - @L["Save Changes"] - - - - -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor.cs deleted file mode 100644 index 0f78259..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Profile.razor.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System.Security.Claims; -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Components.Dialogs; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.BlazorWebAssembly.Client.Shared; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.Components.Forms; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Account; - -public partial class Profile -{ - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthenticationService AuthService { get; set; } = default!; - [Inject] - protected IPersonalClient PersonalClient { get; set; } = default!; - - private readonly UpdateUserRequest _profileModel = new(); - - private string? _imageUrl; - private string? _userId; - private char _firstLetterOfName; - - private CustomValidation? _customValidation; - - protected override async Task OnInitializedAsync() - { - if ((await AuthState).User is { } user) - { - _userId = user.GetUserId(); - _profileModel.Email = user.GetEmail() ?? string.Empty; - _profileModel.FirstName = user.GetFirstName() ?? string.Empty; - _profileModel.LastName = user.GetSurname() ?? string.Empty; - _profileModel.PhoneNumber = user.GetPhoneNumber(); - _imageUrl = string.IsNullOrEmpty(user?.GetImageUrl()) ? string.Empty : (Config[ConfigNames.ApiBaseUrl] + user?.GetImageUrl()); - if (_userId is not null) _profileModel.Id = _userId; - } - - if (_profileModel.FirstName?.Length > 0) - { - _firstLetterOfName = _profileModel.FirstName.ToUpper().FirstOrDefault(); - } - } - - private async Task UpdateProfileAsync() - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => PersonalClient.UpdateProfileAsync(_profileModel), Snackbar, _customValidation)) - { - Snackbar.Add(L["Your Profile has been updated. Please Login again to Continue."], Severity.Success); - await AuthService.ReLoginAsync(Navigation.Uri); - } - } - - private async Task UploadFiles(InputFileChangeEventArgs e) - { - var file = e.File; - if (file is not null) - { - string? extension = Path.GetExtension(file.Name); - if (!ApplicationConstants.SupportedImageFormats.Contains(extension.ToLower())) - { - Snackbar.Add("Image Format Not Supported.", Severity.Error); - return; - } - - string? fileName = $"{_userId}-{Guid.NewGuid():N}"; - fileName = fileName[..Math.Min(fileName.Length, 90)]; - var imageFile = await file.RequestImageFileAsync(ApplicationConstants.StandardImageFormat, ApplicationConstants.MaxImageWidth, ApplicationConstants.MaxImageHeight); - byte[]? buffer = new byte[imageFile.Size]; - await imageFile.OpenReadStream(ApplicationConstants.MaxAllowedSize).ReadAsync(buffer); - string? base64String = $"data:{ApplicationConstants.StandardImageFormat};base64,{Convert.ToBase64String(buffer)}"; - _profileModel.Image = new FileUploadRequest() { Name = fileName, Data = base64String, Extension = extension }; - - await UpdateProfileAsync(); - } - } - - public async Task RemoveImageAsync() - { - string deleteContent = L["You're sure you want to delete your Profile Image?"]; - var parameters = new DialogParameters - { - { nameof(DeleteConfirmation.ContentText), deleteContent } - }; - var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true, DisableBackdropClick = true }; - var dialog = DialogService.Show(L["Delete"], parameters, options); - var result = await dialog.Result; - if (!result.Cancelled) - { - _profileModel.DeleteCurrentImage = true; - await UpdateProfileAsync(); - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor deleted file mode 100644 index c63d189..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor +++ /dev/null @@ -1,41 +0,0 @@ -@inject IStringLocalizer L - - - - - - @L["Change Password"] - - - - - - - - - - - - - - - - - - - - @L["Change Password"] - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor.cs deleted file mode 100644 index 15f2668..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Account/Security.razor.cs +++ /dev/null @@ -1,72 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Shared; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Account; - -public partial class Security -{ - [Inject] - public IPersonalClient PersonalClient { get; set; } = default!; - - private readonly ChangePasswordRequest _passwordModel = new(); - - private CustomValidation? _customValidation; - - private async Task ChangePasswordAsync() - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => PersonalClient.ChangePasswordAsync(_passwordModel), - Snackbar, - _customValidation, - L["Password Changed!"])) - { - _passwordModel.Password = string.Empty; - _passwordModel.NewPassword = string.Empty; - _passwordModel.ConfirmNewPassword = string.Empty; - } - } - - private bool _currentPasswordVisibility; - private InputType _currentPasswordInput = InputType.Password; - private string _currentPasswordInputIcon = Icons.Material.Filled.VisibilityOff; - private bool _newPasswordVisibility; - private InputType _newPasswordInput = InputType.Password; - private string _newPasswordInputIcon = Icons.Material.Filled.VisibilityOff; - - private void TogglePasswordVisibility(bool newPassword) - { - if (newPassword) - { - if (_newPasswordVisibility) - { - _newPasswordVisibility = false; - _newPasswordInputIcon = Icons.Material.Filled.VisibilityOff; - _newPasswordInput = InputType.Password; - } - else - { - _newPasswordVisibility = true; - _newPasswordInputIcon = Icons.Material.Filled.Visibility; - _newPasswordInput = InputType.Text; - } - } - else - { - if (_currentPasswordVisibility) - { - _currentPasswordVisibility = false; - _currentPasswordInputIcon = Icons.Material.Filled.VisibilityOff; - _currentPasswordInput = InputType.Password; - } - else - { - _currentPasswordVisibility = true; - _currentPasswordInputIcon = Icons.Material.Filled.Visibility; - _currentPasswordInput = InputType.Text; - } - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor deleted file mode 100644 index c51c397..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor +++ /dev/null @@ -1,75 +0,0 @@ -@page "/roles/{Id}/permissions" -@attribute [MustHavePermission(FSHAction.View, FSHResource.RoleClaims)] - -@inject IStringLocalizer L - - - -@if (!_loaded) -{ - -} -else -{ - - @foreach (var group in _groupedRoleClaims.Keys) - { - var selectedRoleClaimsInGroup = _groupedRoleClaims[group].Where(c => c.Enabled).ToList(); - var allRoleClaimsInGroup = _groupedRoleClaims[group].ToList(); - - - -
- @L["Back"] - - @if (_canEditRoleClaims) - { - @L["Update Permissions"] - - } -
- - @if (_canSearchRoleClaims) - { - - - } -
- - - - @L["Permission Name"] - - - - @L["Description"] - - - @L["Status"] - - - - - - - - - - - - - - - - - - -
-
- } -
-} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor.cs deleted file mode 100644 index 6371dd9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/RolePermissions.razor.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System.Security.Claims; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Authorization; -using FSH.WebApi.Shared.Multitenancy; -using Mapster; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Roles; - -public partial class RolePermissions -{ - [Parameter] - public string Id { get; set; } = default!; // from route - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - [Inject] - protected IRolesClient RolesClient { get; set; } = default!; - - private Dictionary> _groupedRoleClaims = default!; - - public string _title = string.Empty; - public string _description = string.Empty; - - private string _searchString = string.Empty; - - private bool _canEditRoleClaims; - private bool _canSearchRoleClaims; - private bool _loaded; - - static RolePermissions() => TypeAdapterConfig.NewConfig().MapToConstructor(true); - - protected override async Task OnInitializedAsync() - { - var state = await AuthState; - _canEditRoleClaims = await AuthService.HasPermissionAsync(state.User, FSHAction.Update, FSHResource.RoleClaims); - _canSearchRoleClaims = await AuthService.HasPermissionAsync(state.User, FSHAction.View, FSHResource.RoleClaims); - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => RolesClient.GetByIdWithPermissionsAsync(Id), Snackbar) - is RoleDto role && role.Permissions is not null) - { - _title = string.Format(L["{0} Permissions"], role.Name); - _description = string.Format(L["Manage {0} Role Permissions"], role.Name); - - var permissions = state.User.GetTenant() == MultitenancyConstants.Root.Id - ? FSHPermissions.All - : FSHPermissions.Admin; - - _groupedRoleClaims = permissions - .GroupBy(p => p.Resource) - .ToDictionary(g => g.Key, g => g.Select(p => - { - var permission = p.Adapt(); - permission.Enabled = role.Permissions.Contains(permission.Name); - return permission; - }).ToList()); - } - - _loaded = true; - } - - private Color GetGroupBadgeColor(int selected, int all) - { - if (selected == 0) - return Color.Error; - - if (selected == all) - return Color.Success; - - return Color.Info; - } - - private async Task SaveAsync() - { - var allPermissions = _groupedRoleClaims.Values.SelectMany(a => a); - var selectedPermissions = allPermissions.Where(a => a.Enabled); - var request = new UpdateRolePermissionsRequest() - { - RoleId = Id, - Permissions = selectedPermissions.Where(x => x.Enabled).Select(x => x.Name).ToList(), - }; - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => RolesClient.UpdatePermissionsAsync(request.RoleId, request), - Snackbar, - successMessage: L["Updated Permissions."]) - is not null) - { - Navigation.NavigateTo("/roles"); - } - } - - private bool Search(PermissionViewModel permission) => - string.IsNullOrWhiteSpace(_searchString) - || permission.Name.Contains(_searchString, StringComparison.OrdinalIgnoreCase) is true - || permission.Description.Contains(_searchString, StringComparison.OrdinalIgnoreCase) is true; -} - -public record PermissionViewModel : FSHPermission -{ - public bool Enabled { get; set; } - - public PermissionViewModel(string Description, string Action, string Resource, bool IsBasic = false, bool IsRoot = false) - : base(Description, Action, Resource, IsBasic, IsRoot) - { - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor deleted file mode 100644 index c24582a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor +++ /dev/null @@ -1,33 +0,0 @@ -@page "/roles" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Roles)] - -@inject IStringLocalizer L - - - - - - - @if (_canViewRoleClaims) - { - @L["Manage Permission"] - } - - - - @if (!Context.AddEditModal.IsCreate) - { - - - - } - - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor.cs deleted file mode 100644 index 0ee166f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Roles/Roles.razor.cs +++ /dev/null @@ -1,60 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.EntityTable; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Roles; - -public partial class Roles -{ - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - [Inject] - private IRolesClient RolesClient { get; set; } = default!; - - protected EntityClientTableContext Context { get; set; } = default!; - - private bool _canViewRoleClaims; - - protected override async Task OnInitializedAsync() - { - var state = await AuthState; - _canViewRoleClaims = await AuthService.HasPermissionAsync(state.User, FSHAction.View, FSHResource.RoleClaims); - - Context = new( - entityName: L["Role"], - entityNamePlural: L["Roles"], - entityResource: FSHResource.Roles, - searchAction: FSHAction.View, - fields: new() - { - new(role => role.Id, L["Id"]), - new(role => role.Name, L["Name"]), - new(role => role.Description, L["Description"]) - }, - idFunc: role => role.Id, - loadDataFunc: async () => (await RolesClient.GetListAsync()).ToList(), - searchFunc: (searchString, role) => - string.IsNullOrWhiteSpace(searchString) - || role.Name?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || role.Description?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true, - createFunc: async role => await RolesClient.RegisterRoleAsync(role), - updateFunc: async (_, role) => await RolesClient.RegisterRoleAsync(role), - deleteFunc: async id => await RolesClient.DeleteAsync(id), - hasExtraActionsFunc: () => _canViewRoleClaims, - canUpdateEntityFunc: e => !FSHRoles.IsDefault(e.Name), - canDeleteEntityFunc: e => !FSHRoles.IsDefault(e.Name), - exportAction: string.Empty); - } - - private void ManagePermissions(string? roleId) - { - ArgumentNullException.ThrowIfNull(roleId, nameof(roleId)); - Navigation.NavigateTo($"/roles/{roleId}/permissions"); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor deleted file mode 100644 index 5eeaddf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor +++ /dev/null @@ -1,148 +0,0 @@ -@page "/users/{Id}/profile" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Users)] - -@inject IStringLocalizer _localizer - - -@if (!_loaded) -{ - -} -else -{ - - - @if (_canToggleUserStatus) - { - - - - - @_localizer["Administrator Settings."] - @_localizer["This is an Administrator Only View."] - - - - - - - - @_localizer["Save Changes"] - - - - - - } - - - - -
- @if (!string.IsNullOrEmpty(_imageUrl)) - { - - } - else - { - @_firstLetterOfName - - } -
- @_firstName @_lastName - @_email -
- -
- @if (!string.IsNullOrEmpty(_imageUrl)) - { - - @_localizer["View"] - - } -
- -
-
-
- - - - - @_localizer["Public Profile"] - - - - - - @_firstName - - - @_lastName - - - @_phoneNumber - - - - @_email - - - - - -
-} - -@code -{ -public class CustomStringToBoolConverter : BoolConverter - { - - public CustomStringToBoolConverter() - { - SetFunc = OnSet; - GetFunc = OnGet; - } - private string TrueString = "User Active"; - private string FalseString = "no, at all"; - private string NullString = "I don't know"; - - private string OnGet(bool? value) - { - try - { - return (value == true) ? TrueString : FalseString; - } - catch (Exception e) - { - UpdateGetError("Conversion error: " + e.Message); - return NullString; - } - } - - private bool? OnSet(string arg) - { - if (arg == null) - return null; - try - { - if (arg == TrueString) - return true; - if (arg == FalseString) - return false; - else - return null; - } - catch (FormatException e) - { - UpdateSetError("Conversion error: " + e.Message); - return null; - } - } - - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor.cs deleted file mode 100644 index 04511d3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserProfile.razor.cs +++ /dev/null @@ -1,74 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Users; - -public partial class UserProfile -{ - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - [Inject] - protected IUsersClient UsersClient { get; set; } = default!; - - [Parameter] - public string? Id { get; set; } - [Parameter] - public string? Title { get; set; } - [Parameter] - public string? Description { get; set; } - - private bool _active; - private bool _emailConfirmed; - private char _firstLetterOfName; - private string? _firstName; - private string? _lastName; - private string? _phoneNumber; - private string? _email; - private string? _imageUrl; - private bool _loaded; - private bool _canToggleUserStatus; - - private async Task ToggleUserStatus() - { - var request = new ToggleUserStatusRequest { ActivateUser = _active, UserId = Id }; - await ApiHelper.ExecuteCallGuardedAsync(() => UsersClient.ToggleStatusAsync(Id, request), Snackbar); - Navigation.NavigateTo("/users"); - } - - [Parameter] - public string? ImageUrl { get; set; } - - protected override async Task OnInitializedAsync() - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.GetByIdAsync(Id), Snackbar) - is UserDetailsDto user) - { - _firstName = user.FirstName; - _lastName = user.LastName; - _email = user.Email; - _phoneNumber = user.PhoneNumber; - _active = user.IsActive; - _emailConfirmed = user.EmailConfirmed; - _imageUrl = string.IsNullOrEmpty(user.ImageUrl) ? string.Empty : (Config[ConfigNames.ApiBaseUrl] + user.ImageUrl); - Title = $"{_firstName} {_lastName}'s {_localizer["Profile"]}"; - Description = _email; - if (_firstName?.Length > 0) - { - _firstLetterOfName = _firstName.ToUpper().FirstOrDefault(); - } - } - - var state = await AuthState; - _canToggleUserStatus = await AuthService.HasPermissionAsync(state.User, FSHAction.Update, FSHResource.Users); - _loaded = true; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor deleted file mode 100644 index bc82479..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor +++ /dev/null @@ -1,67 +0,0 @@ -@page "/users/{Id}/roles" -@attribute [MustHavePermission(FSHAction.View, FSHResource.UserRoles)] - -@inject IStringLocalizer L - - - -@if (!_loaded) -{ - -} -else -{ - - -
- - @L["Back"] - - @if (_canEditUsers) - { - - @L["Update"] - - } -
- - @if (_canSearchRoles) - { - - - } -
- - - @L["Role Name"] - - - - @L["Description"] - - - - @L["Status"] - - - - - - - - - - - - - - - - - - -
-} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor.cs deleted file mode 100644 index 1b0664b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/UserRoles.razor.cs +++ /dev/null @@ -1,77 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Users; - -public partial class UserRoles -{ - [Parameter] - public string? Id { get; set; } - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - [Inject] - protected IUsersClient UsersClient { get; set; } = default!; - - private List _userRolesList = default!; - - private string _title = string.Empty; - private string _description = string.Empty; - - private string _searchString = string.Empty; - - private bool _canEditUsers; - private bool _canSearchRoles; - private bool _loaded; - - protected override async Task OnInitializedAsync() - { - var state = await AuthState; - _canEditUsers = await AuthService.HasPermissionAsync(state.User, FSHAction.Update, FSHResource.Users); - _canSearchRoles = await AuthService.HasPermissionAsync(state.User, FSHAction.View, FSHResource.UserRoles); - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.GetByIdAsync(Id), Snackbar) - is UserDetailsDto user) - { - _title = $"{user.FirstName} {user.LastName}"; - _description = string.Format(L["Manage {0} {1}'s Roles"], user.FirstName, user.LastName); - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.GetRolesAsync(user.Id.ToString()), Snackbar) - is ICollection response) - { - _userRolesList = response.ToList(); - } - } - - _loaded = true; - } - - private async Task SaveAsync() - { - var request = new UserRolesRequest() - { - UserRoles = _userRolesList - }; - - if (await ApiHelper.ExecuteCallGuardedAsync( - () => UsersClient.AssignRolesAsync(Id, request), - Snackbar, - successMessage: L["Updated User Roles."]) - is not null) - { - Navigation.NavigateTo("/users"); - } - } - - private bool Search(UserRoleDto userRole) => - string.IsNullOrWhiteSpace(_searchString) - || userRole.RoleName?.Contains(_searchString, StringComparison.OrdinalIgnoreCase) is true; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor deleted file mode 100644 index f2d93ec..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor +++ /dev/null @@ -1,46 +0,0 @@ -@page "/users" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Users)] - -@inject IStringLocalizer L - - - - - - @L["View Profile"] - @if (_canViewRoles) - { - @L["Manage Roles"] - } - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor.cs deleted file mode 100644 index c041739..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Identity/Users/Users.razor.cs +++ /dev/null @@ -1,95 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.EntityTable; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Identity.Users; - -public partial class Users -{ - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - - [Inject] - protected IUsersClient UsersClient { get; set; } = default!; - - protected EntityClientTableContext Context { get; set; } = default!; - - private bool _canExportUsers; - private bool _canViewRoles; - - // Fields for editform - protected string Password { get; set; } = string.Empty; - protected string ConfirmPassword { get; set; } = string.Empty; - - private bool _passwordVisibility; - private InputType _passwordInput = InputType.Password; - private string _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - - protected override async Task OnInitializedAsync() - { - var user = (await AuthState).User; - _canExportUsers = await AuthService.HasPermissionAsync(user, FSHAction.Export, FSHResource.Users); - _canViewRoles = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.UserRoles); - - Context = new( - entityName: L["User"], - entityNamePlural: L["Users"], - entityResource: FSHResource.Users, - searchAction: FSHAction.View, - updateAction: string.Empty, - deleteAction: string.Empty, - fields: new() - { - new(user => user.FirstName, L["First Name"]), - new(user => user.LastName, L["Last Name"]), - new(user => user.UserName, L["UserName"]), - new(user => user.Email, L["Email"]), - new(user => user.PhoneNumber, L["PhoneNumber"]), - new(user => user.EmailConfirmed, L["Email Confirmation"], Type: typeof(bool)), - new(user => user.IsActive, L["Active"], Type: typeof(bool)) - }, - idFunc: user => user.Id, - loadDataFunc: async () => (await UsersClient.GetListAsync()).ToList(), - searchFunc: (searchString, user) => - string.IsNullOrWhiteSpace(searchString) - || user.FirstName?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || user.LastName?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || user.Email?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || user.PhoneNumber?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || user.UserName?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true, - createFunc: user => UsersClient.CreateAsync(user), - hasExtraActionsFunc: () => true, - exportAction: string.Empty); - } - - private void ViewProfile(in Guid userId) => - Navigation.NavigateTo($"/users/{userId}/profile"); - - private void ManageRoles(in Guid userId) => - Navigation.NavigateTo($"/users/{userId}/roles"); - - private void TogglePasswordVisibility() - { - if (_passwordVisibility) - { - _passwordVisibility = false; - _passwordInputIcon = Icons.Material.Filled.VisibilityOff; - _passwordInput = InputType.Password; - } - else - { - _passwordVisibility = true; - _passwordInputIcon = Icons.Material.Filled.Visibility; - _passwordInput = InputType.Text; - } - - Context.AddEditModal.ForceRender(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Index.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Index.razor deleted file mode 100644 index 42798ac..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Index.razor +++ /dev/null @@ -1,95 +0,0 @@ -@page "/home" -@page "/" - -@inject IStringLocalizer L - - - - -
- -
-
- - @L["fullstackhero's"] - @L["Blazor WebAssembly Boilerplate"] - - - - - @L["Built with the goodness of"] MudBlazor @L["Component Library"]. - - - @L["Compatible with"] fullstackhero .NET WebAPI Boilerplate v1. - - - -
- @L["Get Started"] - @L["Star on GitHub"] -
-
- - @L["Version 1.0"] - - - - - @L["In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference."] - @L["Read The Guide"] - - - - - - - - - @L["Here are few articles that should help you get started with Blazor."] - - - - - - - - - - - - @L["Application Claims of the currently logged in user."] - - @if (Claims is not null) - { - @foreach (var claim in Claims) - { - - - @claim.Type - - @claim.Value - - } - } - - - - - - @L["Liked this Boilerplate? Star us on Github!"] - -
-
- -@code { - [CascadingParameter] - public Task AuthState { get; set; } = default!; - - public IEnumerable? Claims { get; set; } - - protected override async Task OnInitializedAsync() - { - var authState = await AuthState; - Claims = authState.User.Claims; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor deleted file mode 100644 index 3f3da22..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor +++ /dev/null @@ -1,107 +0,0 @@ -@page "/tenants" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Tenants)] - -@inject IStringLocalizer L -@inject IAuthenticationService Authentication - - - - - - - - - - - - - - - - - - @if (Authentication.ProviderType == AuthProvider.AzureAd) - { - - - - } - - - @if(_canUpgrade) - { - @L["Upgrade Subscription"] - } - - @((context.ShowDetails == true) ? L["Hide"] : L["Show"]) @L["Tenant Details"] - - @if (_canModify) - { - @if (!context.IsActive) - { - @L["Activate Tenant"] - } - else - { - @L["Deactivate Tenant"] - } - } - - - - @if (context.ShowDetails) - { - - - - - - @L["Details for Tenant"] : - @context.Id - - - - - - - - @if(string.IsNullOrEmpty(context.ConnectionString?.Trim())) - { - @L["Shared Database"] - } - else - { - - - } - - @if (Authentication.ProviderType == AuthProvider.AzureAd) - { - - - - - } - -
@L["Connection String"] - - @context.ConnectionString?.Trim() - -
@L["Issuer"] - - - @context.Issuer?.Trim() - - -
-
-
- -
- } -
- -
\ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor.cs deleted file mode 100644 index d18eb13..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/Tenants.razor.cs +++ /dev/null @@ -1,121 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.EntityTable; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Authorization; -using Mapster; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Multitenancy; - -public partial class Tenants -{ - [Inject] - private ITenantsClient TenantsClient { get; set; } = default!; - private string? _searchString; - protected EntityClientTableContext Context { get; set; } = default!; - private List _tenants = new(); - public EntityTable EntityTable { get; set; } = default!; - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - - private bool _canUpgrade; - private bool _canModify; - - protected override async Task OnInitializedAsync() - { - Context = new( - entityName: L["Tenant"], - entityNamePlural: L["Tenants"], - entityResource: FSHResource.Tenants, - searchAction: FSHAction.View, - deleteAction: string.Empty, - updateAction: string.Empty, - fields: new() - { - new(tenant => tenant.Id, L["Id"]), - new(tenant => tenant.Name, L["Name"]), - new(tenant => tenant.AdminEmail, L["Admin Email"]), - new(tenant => tenant.ValidUpto.ToString("MMM dd, yyyy"), L["Valid Upto"]), - new(tenant => tenant.IsActive, L["Active"], Type: typeof(bool)) - }, - loadDataFunc: async () => _tenants = (await TenantsClient.GetListAsync()).Adapt>(), - searchFunc: (searchString, tenantDto) => - string.IsNullOrWhiteSpace(searchString) - || tenantDto.Name.Contains(searchString, StringComparison.OrdinalIgnoreCase), - createFunc: tenant => TenantsClient.CreateAsync(tenant.Adapt()), - hasExtraActionsFunc: () => true, - exportAction: string.Empty); - - var state = await AuthState; - _canUpgrade = await AuthService.HasPermissionAsync(state.User, FSHAction.UpgradeSubscription, FSHResource.Tenants); - _canModify = await AuthService.HasPermissionAsync(state.User, FSHAction.Update, FSHResource.Tenants); - } - - private void ViewTenantDetails(string id) - { - var tenant = _tenants.First(f => f.Id == id); - tenant.ShowDetails = !tenant.ShowDetails; - foreach (var otherTenants in _tenants.Except(new[] { tenant })) - { - otherTenants.ShowDetails = false; - } - } - - private async Task ViewUpgradeSubscriptionModalAsync(string id) - { - var tenant = _tenants.First(f => f.Id == id); - var parameters = new DialogParameters - { - { - nameof(UpgradeSubscriptionModal.Request), - new UpgradeSubscriptionRequest - { - TenantId = tenant.Id, - ExtendedExpiryDate = tenant.ValidUpto - } - } - }; - var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true, DisableBackdropClick = true }; - var dialog = DialogService.Show(L["Upgrade Subscription"], parameters, options); - var result = await dialog.Result; - if (!result.Cancelled) - { - await EntityTable.ReloadDataAsync(); - } - } - - private async Task DeactivateTenantAsync(string id) - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => TenantsClient.DeactivateAsync(id), - Snackbar, - null, - L["Tenant Deactivated."]) is not null) - { - await EntityTable.ReloadDataAsync(); - } - } - - private async Task ActivateTenantAsync(string id) - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => TenantsClient.ActivateAsync(id), - Snackbar, - null, - L["Tenant Activated."]) is not null) - { - await EntityTable.ReloadDataAsync(); - } - } - - public class TenantDetail : TenantDto - { - public bool ShowDetails { get; set; } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/UpgradeSubscriptionModal.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/UpgradeSubscriptionModal.razor deleted file mode 100644 index 48921de..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Multitenancy/UpgradeSubscriptionModal.razor +++ /dev/null @@ -1,58 +0,0 @@ -@inject IStringLocalizer L -@inject ITenantsClient TenantsClient - - - - - - - @L["Upgrade Subscription"] - - - - - - - - - - - - - - - - - @L["Cancel"] - @L["Upgrade"] - - - - -@code -{ - [Parameter] public UpgradeSubscriptionRequest Request { get; set; } = new(); - [CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!; - DateTime? date = DateTime.Today; - - protected override void OnInitialized() => - date = Request.ExtendedExpiryDate; - - private async Task UpgradeSubscriptionAsync() - { - Request.ExtendedExpiryDate = date.HasValue ? date.Value : Request.ExtendedExpiryDate; - if (await ApiHelper.ExecuteCallGuardedAsync( - () => TenantsClient.UpgradeSubscriptionAsync(Request.TenantId, Request), - Snackbar, - null, - L["Upgraded Subscription."]) is not null) - { - MudDialog.Close(); - } - } - - public void Cancel() - { - MudDialog.Cancel(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor deleted file mode 100644 index d10503a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor +++ /dev/null @@ -1,131 +0,0 @@ -@page "/audit-logs" - -@inject IStringLocalizer L - - - - - - - @L["Search in Old Values"] - @L["Search in New Values"] - - - @L["Clear"] - @L["Cancel"] - @L["Ok"] - - - - - - @((context.ShowDetails == true) ? L["Hide"] : L["Show"]) @L["Trail Details"] - - - - @if (context.ShowDetails) - { - - - - - - @L["Details for Trail ID"] : @context.Id - - - - - - @if (!string.IsNullOrEmpty(context.AffectedColumns)) - { - - - - - } - - - - - @if (!string.IsNullOrEmpty(context.OldValues)) - { - - - - - } - @if (!string.IsNullOrEmpty(context.NewValues)) - { - - - - - } - -
@L["Columns Affected"] - - @foreach (var column in context.AffectedColumns.Trim('[').Trim(']').Split(',')) - { - @column.Replace('"', ' ').Trim() - } - -
@L["Primary Key"] - - @context.PrimaryKey?.Trim('{').Trim('}').Replace('"', ' ').Trim() - -
@L["Old Values"] - - - @foreach (var value in context.OldValues.Trim('{').Trim('}').Split(',')) - { - @if (_searchInOldValues) - { - - - - } - else - { - @value.Replace('"', ' ').Trim() - } - } - -
@L["New Values"] - - - @foreach (var value in context.NewValues.Trim('{').Trim('}').Split(',')) - { - @if (_searchInNewValues) - { - - - - } - else - { - @value.Replace('"', ' ').Trim() - } - } - -
-
-
- -
- } -
- -
- -@code { - private RenderFragment DateFieldTemplate => trail => __builder => - { - - @L["Local"] : @trail.LocalTime.ToString("G") - - - @L["UTC"] : @trail.DateTime.ToString("G") - - }; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor.cs deleted file mode 100644 index 3f6460c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/AuditLogs.razor.cs +++ /dev/null @@ -1,71 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.EntityTable; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using Mapster; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Pages.Personal; - -public partial class AuditLogs -{ - [Inject] - private IPersonalClient PersonalClient { get; set; } = default!; - - protected EntityClientTableContext Context { get; set; } = default!; - - private string? _searchString; - private MudDateRangePicker _dateRangePicker = default!; - private DateRange? _dateRange; - private bool _searchInOldValues; - private bool _searchInNewValues; - private List _trails = new(); - - // Configure Automapper - static AuditLogs() => - TypeAdapterConfig.NewConfig().Map( - dest => dest.LocalTime, - src => DateTime.SpecifyKind(src.DateTime, DateTimeKind.Utc).ToLocalTime()); - - protected override void OnInitialized() - { - Context = new( - entityNamePlural: L["Trails"], - searchAction: true.ToString(), - fields: new() - { - new(audit => audit.Id, L["Id"]), - new(audit => audit.TableName, L["Table Name"]), - new(audit => audit.DateTime, L["Date"], Template: DateFieldTemplate), - new(audit => audit.Type, L["Type"]) - }, - loadDataFunc: async () => _trails = (await PersonalClient.GetLogsAsync()).Adapt>(), - searchFunc: (searchString, trail) => - (string.IsNullOrWhiteSpace(searchString) // check Search String - || trail.TableName?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true - || (_searchInOldValues && - trail.OldValues?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true) - || (_searchInNewValues && - trail.NewValues?.Contains(searchString, StringComparison.OrdinalIgnoreCase) == true)) - && ((_dateRange?.Start is null && _dateRange?.End is null) // check Date Range - || (_dateRange?.Start is not null && _dateRange.End is null && trail.DateTime >= _dateRange.Start) - || (_dateRange?.Start is null && _dateRange?.End is not null && trail.DateTime <= _dateRange.End + new TimeSpan(0, 11, 59, 59, 999)) - || (trail.DateTime >= _dateRange!.Start && trail.DateTime <= _dateRange.End + new TimeSpan(0, 11, 59, 59, 999))), - hasExtraActionsFunc: () => true); - } - - private void ShowBtnPress(Guid id) - { - var trail = _trails.First(f => f.Id == id); - trail.ShowDetails = !trail.ShowDetails; - foreach (var otherTrail in _trails.Except(new[] { trail })) - { - otherTrail.ShowDetails = false; - } - } - - public class RelatedAuditTrail : AuditDto - { - public bool ShowDetails { get; set; } - public DateTime LocalTime { get; set; } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor b/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor deleted file mode 100644 index 5e2fd94..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor +++ /dev/null @@ -1,65 +0,0 @@ -@page "/dashboard" -@attribute [MustHavePermission(FSHAction.View, FSHResource.Dashboard)] - -@inject IStringLocalizer L - - - -@if (!_loaded) -{ - -} -else -{ - - - - -
- @L["Products"] - @ProductCount -
-
-
- - - -
- @L["Brands"] - @BrandCount -
-
-
- - - -
- @L["Registered Users"] - - @UserCount -
-
-
- - - -
- @L["Registered Roles"] - - @RoleCount -
-
-
- - - - - -
-} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor.cs deleted file mode 100644 index 4fcadd5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Pages/Personal/Dashboard.razor.cs +++ /dev/null @@ -1,62 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications; -using FSH.BlazorWebAssembly.Client.Shared; -using FSH.WebApi.Shared.Notifications; -using MediatR.Courier; -using Microsoft.AspNetCore.Components; - -namespace FSH.BlazorWebAssembly.Client.Pages.Personal; - -public partial class Dashboard -{ - [Parameter] - public int ProductCount { get; set; } - [Parameter] - public int BrandCount { get; set; } - [Parameter] - public int UserCount { get; set; } - [Parameter] - public int RoleCount { get; set; } - - [Inject] - private IDashboardClient DashboardClient { get; set; } = default!; - [Inject] - private ICourier Courier { get; set; } = default!; - - private readonly string[] _dataEnterBarChartXAxisLabels = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - private readonly List _dataEnterBarChartSeries = new(); - private bool _loaded; - - protected override async Task OnInitializedAsync() - { - Courier.SubscribeWeak>(async _ => - { - await LoadDataAsync(); - StateHasChanged(); - }); - - await LoadDataAsync(); - - _loaded = true; - } - - private async Task LoadDataAsync() - { - if (await ApiHelper.ExecuteCallGuardedAsync( - () => DashboardClient.GetAsync(), - Snackbar) - is StatsDto statsDto) - { - ProductCount = statsDto.ProductCount; - BrandCount = statsDto.BrandCount; - UserCount = statsDto.UserCount; - RoleCount = statsDto.RoleCount; - foreach (var item in statsDto.DataEnterBarChart) - { - _dataEnterBarChartSeries - .RemoveAll(x => x.Name.Equals(item.Name, StringComparison.OrdinalIgnoreCase)); - _dataEnterBarChartSeries.Add(new MudBlazor.ChartSeries { Name = item.Name, Data = item.Data?.ToArray() }); - } - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Program.cs b/blazor-wasm-boilerplate-main/src/Client/Program.cs deleted file mode 100644 index ebd6774..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Globalization; -using FSH.BlazorWebAssembly.Client; -using FSH.BlazorWebAssembly.Client.Infrastructure; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.WebAssembly.Hosting; - -var builder = WebAssemblyHostBuilder.CreateDefault(args); - -builder.RootComponents.Add("#app"); -builder.RootComponents.Add("head::after"); - -builder.Services.AddClientServices(builder.Configuration); - -var host = builder.Build(); - -var storageService = host.Services.GetRequiredService(); -if (storageService != null) -{ - CultureInfo culture; - if (await storageService.GetPreference() is ClientPreference preference) - culture = new CultureInfo(preference.LanguageCode); - else - culture = new CultureInfo(LocalizationConstants.SupportedLanguages.FirstOrDefault()?.Code ?? "en-US"); - CultureInfo.DefaultThreadCurrentCulture = culture; - CultureInfo.DefaultThreadCurrentUICulture = culture; -} - -await host.RunAsync(); \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Properties/launchSettings.json b/blazor-wasm-boilerplate-main/src/Client/Properties/launchSettings.json deleted file mode 100644 index ec01420..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:21716", - "sslPort": 44331 - } - }, - "profiles": { - "FSH.BlazorWebAssembly": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:5002;http://localhost:5003", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ar.resx deleted file mode 100644 index 61567a8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ar.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} من {all_items} - - - صف لكل صفحة - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.de.resx deleted file mode 100644 index bce5fdf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.de.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} von {all_items} - - - Zeilen je Seite: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.en.resx deleted file mode 100644 index eef54b7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.en.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} of {all_items} - - - Rows per page: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.es.resx deleted file mode 100644 index 9971ad9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.es.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} de {all_items} - - - Registros por página: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.fr.resx deleted file mode 100644 index 4ed5249..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.fr.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} sur {all_items} - - - Lignes par page : - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.id.resx deleted file mode 100644 index b45e839..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.id.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} dari {all_items} - - - Baris per halaman: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.it.resx deleted file mode 100644 index 338aa89..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.it.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} di {all_items} - - - Righe per pagina: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.km.resx deleted file mode 100644 index ba27d45..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.km.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} នៃ {all_items} - - - ជួរដេកក្នុងមួយទំព័រ៖ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.nl.resx deleted file mode 100644 index bac82ce..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.nl.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} of {all_items} - - - Rijen per pagina: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ru.resx deleted file mode 100644 index 7a5d02c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.ru.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} из {all_items} - - - Строк на странице: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.sv.resx deleted file mode 100644 index d28249a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Components/Common/TablePager.sv.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {first_item}-{last_item} of {all_items} - - - Rader per sida: - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ar.resx deleted file mode 100644 index bc64cb0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ar.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - هل لديك حساب؟ - - - بريد الالكتروني - - - أوافق على الشروط والخصوصية - - - كلمه السر - - - رقم الهاتف - - - اشتراك - - - تسجيل الدخول - - - اشتراك - - - اسم المستخدم - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.de.resx deleted file mode 100644 index 59166f3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.de.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bereits registriert? - - - E-Mail - - - Ich stimme den Nutzungs- und Datenschutzbedingungen zu. - - - Passwort - - - Telefon - - - Registrieren - - - Anmelden - - - Registrieren - - - Benutzername - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.en.resx deleted file mode 100644 index d8c326d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.en.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Already have an account? - - - E-mail - - - I agree to the terms and privacy - - - Password - - - Phone Number - - - Register - - - Sign In - - - Sign Up - - - Username - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.es.resx deleted file mode 100644 index 8ff1bdf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.es.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ¿Ya tiene una cuenta? - - - Correo - - - Acepto los términos y condiciones - - - Contraseña - - - Teléfono - - - Registrarse - - - Ingresar - - - Registrarse - - - Usuario - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.fr.resx deleted file mode 100644 index e912e94..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.fr.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vous possédez déjà un compte ? - - - Courriel - - - J'accepte les conditions d'utilisation et la politique de confidentialité - - - Mot de passe - - - Numéro de téléphone - - - S'inscrire - - - Se connecter - - - S'inscrire - - - Nom d'utilisateur - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.id.resx deleted file mode 100644 index a9f2a0d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.id.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sudah punya akun? - - - E-mail - - - Saya setuju akan ketentuan dan kebijakan privasi - - - Sandi - - - Nomor Telepon - - - Daftar - - - Masuk - - - Daftar - - - Nama pengguna - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.it.resx deleted file mode 100644 index 9cb4fdc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.it.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sei già registrato? - - - E-Mail - - - Accetto i termini e la privacy - - - Telefono - - - Registrati - - - Accedi - - - Iscriviti - - - Utente - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.km.resx deleted file mode 100644 index f6f8870..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.km.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មានគណនីរួចហើយ? - - - អ៊ីមែល - - - ខ្ញុំយល់ស្របនឹងលក្ខខណ្ឌនិងភាពឯកជន - - - លេខសម្ងាត់ - - - លេខទូរស័ព្ទ - - - ចុះឈ្មោះ - - - ចូល - - - ចុះ​ឈ្មោះ - - - ឈ្មោះ​អ្នកប្រើប្រាស់ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.nl.resx deleted file mode 100644 index 0be70ca..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.nl.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Heb je al een account? - - - E-mail - - - Ik ga akkoord met de voorwaarden en privacy - - - Wachtwoord - - - Telefoonnummer - - - Registreren - - - Aanmelden - - - Inschrijven - - - Gebruikersnaam - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ru.resx deleted file mode 100644 index 1ac7f04..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.ru.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Уже имеете аккаунт? - - - E-mail - - - Я согласен с условиями и конфиденциальностью - - - Пароль - - - Номер телефона - - - Зарегистрировать - - - Авторизация - - - Регистрация - - - Username - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.sv.resx deleted file mode 100644 index a8984ec..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Register.sv.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Har du redan ett konto? - - - Epost - - - Jag godkänner villkoren och integriteten - - - Lösenord - - - Telefonnummer - - - Registrera - - - Logga In - - - Bli Medlem - - - Användarnamn - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ar.resx deleted file mode 100644 index dfc9fd2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ar.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أوافق على الشروط والخصوصية - - - كلمة مرور جديدة - - - ضع كلمة مرور جديدة - - - لم يتم العثور على الرمز! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.de.resx deleted file mode 100644 index 530dfed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.de.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ich stimme den Nutzungs- und Datenschutzbestimmungen zu. - - - Neues Passwort - - - Neues Passwort festlegen - - - Token nicht gefunden! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.en.resx deleted file mode 100644 index 51f60ad..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.en.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - I agree to the terms and privacy - - - New Password - - - Set new password - - - Token Not Found! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.es.resx deleted file mode 100644 index f6f44bc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.es.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acepto los términos y condiciones - - - Nueva contraseña - - - Establecer contraseña - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.fr.resx deleted file mode 100644 index 8019f31..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.fr.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - J'accepte les conditions d'utilisation et la politique de confidentialité - - - Nouveau mot de passe - - - Définir le nouveau mot de passe - - - Jeton introuvable ! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.id.resx deleted file mode 100644 index d169911..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.id.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Saya setuju akan ketentuan dan kebijakan privasi - - - Sandi baru - - - Atur sandi baru - - - Token Tidak Ditemukan! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.it.resx deleted file mode 100644 index 0d29f14..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.it.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Accetto i termini e la privacy - - - Nuova Password - - - Token non trovato! - - - Imposta nuova password - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.km.resx deleted file mode 100644 index e302b84..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.km.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ខ្ញុំយល់ស្របនឹងលក្ខខណ្ឌនិងភាពឯកជន - - - ពាក្យសម្ងាត់​ថ្មី - - - កំណត់ពាក្យសម្ងាត់ថ្មី - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.nl.resx deleted file mode 100644 index 30f308e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.nl.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ik ga akkoord met de voorwaarden en privacy - - - Nieuw wachtwoord - - - Nieuw wachtwoord instellen - - - Token niet gevonden! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ru.resx deleted file mode 100644 index acf21ac..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.ru.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Я согласен с условиями и конфиденциальностью - - - Новый пароль - - - Установить новый пароль - - - Токен не найден! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.sv.resx deleted file mode 100644 index f1f44a3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Account/Reset.sv.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Jag godkänner villkoren och integriteten - - - Nytt Lösenord - - - Det nya lösenordet - - - Token hittades inte! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ar.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ar.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.de.resx deleted file mode 100644 index 94f8d99..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.de.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Du wurdest erfolgreich ausgeloggt. - - - Klicke hier, um dich wieder einzuloggen. - - - Du wirst eingeloggt... - - - Überprüfe Berechtigungen... - - - Entschuldigung, dein Login ist fehlgeschlagen. Versuche es noch einmal oder kontaktiere den Support. - - - Du wirst ausgeloggt... - - - Entschuldigung, dein Logout ist fehlgeschlagen. Versuche es noch einmal oder kontaktiere den Support. - - - Profil wird abgerufen... - - - Konto wird registriert... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.en.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.en.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.es.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.es.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.fr.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.fr.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.id.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.id.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.it.resx deleted file mode 100644 index c015459..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.it.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sei stato disconnesso con successo. - - - Clicca qui per accedere indietro - - - Registrarti in ... - - - Controllo Autorizzazioni ... - - - Siamo spiacenti, il tuo login è fallito. Si prega di riprovare o contattare il supporto. - - - Disattivandoti ... - - - Siamo spiacenti, operazione di disconnessione fallito. Si prega di riprovare o contattare il supporto. - - - Recupero del profilo ... - - - Registrazione dell'account ... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.km.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.km.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.nl.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.nl.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ru.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.ru.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.sv.resx deleted file mode 100644 index c331d00..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Authentication.sv.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - You were successfully logged out. - - - Click here to log back in - - - Logging you in... - - - Checking permissions... - - - Sorry, your login failed. Please try again or contact support. - - - Logging you out... - - - Sorry, log out operation failed. Please try again or contact support. - - - Retrieving profile... - - - Registering account... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ar.resx deleted file mode 100644 index 14e0972..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ar.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - تم! - - - البريد الإلكتروني - - - أدخل عنوان البريد الإلكتروني المرتبط بحسابك وستتلقى رسالة بريد إلكتروني تحتوي على رابط لإعادة تعيين كلمة المرور الخاصة بك - - - هل نسيت كلمة السر? - - - إعادة تعيين كلمة المرور - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.de.resx deleted file mode 100644 index f949b86..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.de.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fertig! - - - E-Mail - - - E-Mail-Adresse eingeben, mit welcher das Konto verknüpft ist, um eine E-Mail zum zurücksetzen des Passworts zu erhalten. - - - Passwort vergessen? - - - Passwort zurücksetzen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.en.resx deleted file mode 100644 index 5e4f57a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.en.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Done! - - - E-Mail - - - Enter the email address linked to your account and you will recieve an email containing a link to reset your password - - - Forgot password? - - - Reset Password - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.es.resx deleted file mode 100644 index 31824cf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.es.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Correo - - - Ingresa la dirección de correo vinculada a su cuenta y recibirá un correo con un enlace para blanquear la contraseña - - - ¿Olvidó su contraseña? - - - Blanquear contraseña - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.fr.resx deleted file mode 100644 index d887377..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.fr.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Terminé ! - - - Courriel - - - Sasissez le courriel lié à votre compte et vous y recevrez un message contenant un lien pour réinitialiser votre mot de passe - - - Mot de passe oublié ? - - - Réinitialiser le mot de passe - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.id.resx deleted file mode 100644 index 52c8afd..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.id.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Selesai! - - - E-Mail - - - Masukkan alamat email yang terhubung ke akun anda dan anda akan menerima email berisi link untuk mereset password anda - - - Lupa password? - - - Reset Password - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.it.resx deleted file mode 100644 index b300815..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.it.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Password dimenticata? - - - E-Mail - - - Ripristina Password - - - Fatto! - - - Inserisci l'indirizzo E-Mail collegato al tuo utente e riceverai un link per il ripristino della password. - - - Possiamo aiutarti ripristinando la password. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.km.resx deleted file mode 100644 index b574e84..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.km.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - អ៊ីម៉ែល - - - បញ្ចូលអាសយដ្ឋានអ៊ីមែលដែលភ្ជាប់ទៅគណនីរបស់អ្នកហើយអ្នកនឹងទទួលបានអ៊ីមែលដែលមានតំណភ្ជាប់ដើម្បីកំណត់លេខសម្ងាត់របស់អ្នកឡើងវិញ - - - ភ្លេច​លេខសំងាត់​? - - - កំណត់ពាក្យសម្ងាត់ឡើងវិញ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.nl.resx deleted file mode 100644 index d725b6c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.nl.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - E-mail - - - Voer het e-mailadres in dat aan uw account is gekoppeld en u ontvangt een e-mail met een link om uw wachtwoord opnieuw in te stellen - - - Wachtwoord vergeten? - - - Wachtwoord opnieuw instellen - - - Klaar! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ru.resx deleted file mode 100644 index 9ff2cdc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.ru.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Готово! - - - E-Mail - - - Введите email-адрес, прикреплённый к вашему аккаунту, и вы получите письмо, соржащее ссылку для сброса вашего пароля - - - Забыли пароль? - - - Сбросить пароль - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.sv.resx deleted file mode 100644 index 7553815..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/ForgotPassword.sv.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Klart! - - - Epost - - - Fyll i din Epost-adress kopplat till ditt konto och du får ett mail med en länk för att nollställa ditt lösenord. - - - Glömt Lösenord? - - - Nollställ Lösenord - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ar.resx deleted file mode 100644 index a30f0a0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ar.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - تسجيل الدخول مع أوراق الاعتماد الخاصة بك. - - - ليس لديك حساب؟ - - - بريد الالكتروني - - - البريد الالكتروني مطلوب! - - - قم بتعبئة بيانات اعتماد المسؤول - - - املأ بيانات اعتماد المستخدم الأساسية - - - هل نسيت كلمة السر؟ - - - كلمه السر - - - كلمة المرور مطلوبة! - - - سجل هنا - - - تذكرنى؟ - - - تسجيل الدخول - - - عنوان - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.de.resx deleted file mode 100644 index 4812f2f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.de.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Mit Zugangsdaten anmelden - - - Du hast noch keine Konto? - - - E-Mail - - - E-Mail wird benötigt. - - - Gib deine Zugangsdaten - - - Mit Zugangsdaten des Administrators ausfüllen - - - Mit Basis-Zugangsdaten ausfüllen - - - Passwort vergessen? - - - Passwort - - - Passwort wird benötigt! - - - Registriere dich hier - - - Zugangsdaten speichern? - - - Anmelden - - - Anmelden - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.en.resx deleted file mode 100644 index e13f761..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.en.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Login with your Credentials. - - - Don't have an account? - - - E-mail - - - Email is required! - - - Enter your credentials to get started. - - - Fill Administrator Credentials - - - Fill Basic User Credentials - - - Forgot password? - - - Password - - - Password is required! - - - Register here - - - Remember me? - - - Sign In - - - Sign In - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.es.resx deleted file mode 100644 index 3c5e771..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.es.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ingrese con sus credenciales. - - - ¿No tiene una cuenta? - - - Correo - - - El Correo es requerido! - - - Completar con Credenciales Administrador - - - Completar con Credenciales Usuario - - - ¿Olvidó su Contraseña? - - - Contraseña - - - La Contraseña es requerida! - - - Registrarse aquí - - - ¿Recordarme? - - - Ingresar - - - Ingresar - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.fr.resx deleted file mode 100644 index 8692631..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.fr.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Connectez-vous avec vos identifiants. - - - Courriel - - - Un courriel est requis ! - - - Mot de passe oublié ? - - - Mot de passe - - - Mot de passe requis ! - - - Se souvenir de moi ? - - - Connexion - - - Connexion - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.id.resx deleted file mode 100644 index 28006ca..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.id.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Masuk dengan Kredensial Anda. - - - Tidak punya akun? - - - E-mail - - - Email wajib diisi! - - - Isi Kredensial Administrator - - - Isi Kredensial Pengguna Basic - - - Lupa sandi? - - - Sandi - - - Sandi wajib diisi! - - - Daftar di sini - - - Ingat saya? - - - Masuk - - - Masuk - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.it.resx deleted file mode 100644 index bb48a76..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.it.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Accedi con le tue credenziali. - - - E-Mail - - - È richiesto un indirizzo E-Mail - - - Inserisci le tue credenziali per iniziare. - - - Utilizza credenziali amministrative - - - Utilizza credenziali utente base - - - Password dimenticata? - - - Password - - - È richiesta una password! - - - Ricordati di me? - - - Accedi - - - Accedi - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.km.resx deleted file mode 100644 index 1bf008e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.km.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ឡុកចូលប្រព័ន្ធជាមួយលេខកូដសម្ងាត់អ្នក - - - អ៊ីម៉ែល - - - ត្រូវការបំពេញអ៊ីម៉ែល - - - ភ្លេចលេខកូដសម្ងាត់? - - - លេខកូដសម្ងាត់ - - - ត្រូវការបំពេញលេខកូដសម្ងាត់ - - - ចងចាំក្នុងប្រព័ន្ធ? - - - ឡុកចូល - - - ឡុកចូល - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.nl.resx deleted file mode 100644 index e0d271e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.nl.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Log in met uw inloggegevens. - - - E-mail - - - E-mail is vereist! - - - Wachtwoord vergeten? - - - Wachtwoord - - - Wachtwoord is vereist! - - - Aanmelden - - - Aanmelden - - - Heb je geen account? - - - Beheerdersreferenties invullen - - - Basisgebruikersreferenties invullen - - - Schrijf je hier in - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ru.resx deleted file mode 100644 index ad69eb7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.ru.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Авторизуйтесь с помощью ваших учётных данных. - - - У вас ещё нет аккаунта? - - - E-mail - - - Email обязателен! - - - Заполнить учётными данными администратора - - - Заполнить учётными данными пользователя с базовыми правами - - - Забыли пароль? - - - Пароль - - - Пароль обязателен! - - - Зарегистрируйтесь здесь - - - Запомнить меня? - - - Авторизоваться - - - Авторизация - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.sv.resx deleted file mode 100644 index d236777..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Login.sv.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Logga in med dina uppgifter - - - Har du inget konto? - - - Epost - - - Epost är obligatoriskt - - - Fyll i Administratör Användaruppgifter - - - Fyll i Grundläggande Användaruppgifter - - - Glömt Lösenord? - - - Lösenord - - - Lösenord är obligatoriskt! - - - Registrera här - - - Kom ihåg mig? - - - Logga In - - - Logga In - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ar.resx deleted file mode 100644 index 94332f5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ar.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - هل لديك حساب؟ - - - تأكيد كلمة المرور - - - بريد الالكتروني - - - الاسم الأول - - - الكنية - - - كلمه السر - - - رقم الهاتف - - - يسجل - - - تسجيل الدخول - - - اسم االمستخدم - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.de.resx deleted file mode 100644 index 1bfb8a3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.de.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Du hast schon ein Konto? - - - Passwort bestätigen - - - E-Mail - - - Vorname - - - Nachname - - - Passwort - - - Telefonnummer - - - Registrieren - - - Einloggen - - - Benutzername - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.en.resx deleted file mode 100644 index fe26547..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.en.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Already have an account? - - - Confirm Password - - - E-mail - - - First Name - - - Last Name - - - Password - - - Phone Number - - - Register - - - Sign In - - - User Name - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.es.resx deleted file mode 100644 index 8010e7c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.es.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ¿Ya tiene una cuenta? - - - Confirmar Contraseña - - - Correo - - - Nombre - - - Apellido - - - Contraseña - - - Número de Teléfono - - - Registrarse - - - Ingresar - - - Nombre de Usuario - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.fr.resx deleted file mode 100644 index 41e6323..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.fr.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vous possédez déjà un compte ? - - - Confirmation du mot de passe - - - Courriel - - - Prénom - - - Nom - - - Mot de passe - - - Numéro de téléphone - - - S'inscrire - - - Se connecter - - - Nom d'utilisateur - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.id.resx deleted file mode 100644 index bbc2810..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.id.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sudah punya akun? - - - Konfirmasi Password - - - E-mail - - - Nama Depan - - - Nama Belakang - - - Sandi - - - Nomor Telepon - - - Daftar - - - Masuk - - - User Name - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.it.resx deleted file mode 100644 index 86387eb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.it.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hai già un account? - - - Conferma Password - - - E-mail - - - Nome - - - Cognome - - - Accetto i termini e la privacy - - - Telefono - - - Registrati - - - Registrati - - - Username - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.km.resx deleted file mode 100644 index 0cf656e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.km.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មានគណនីរួចហើយ? - - - បញ្ជាក់លេខកូដសម្ងាត់ - - - អ៊ីម៉ែល - - - នាមខ្លួន - - - នាមត្រកូល - - - លេខកូដសម្ងាត់ - - - លេខទូរស័ព្ទ - - - ចុះឈ្មោះ - - - ឡុកចូល - - - ឈ្មោះអ្នកប្រើប្រាស់ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.nl.resx deleted file mode 100644 index e355b93..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.nl.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Heb je al een account? - - - Wachtwoord bevestigen - - - E-mail - - - Voornaam - - - Achternaam - - - Wachtwoord - - - Telefoonnummer - - - Registreren - - - Aanmelden - - - Gebruikersnaam - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ru.resx deleted file mode 100644 index 6d4d7ed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.ru.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - У вас уже есть аккаунт? - - - Подтверждение пароля - - - E-mail - - - Имя - - - Фамилия - - - Пароль - - - Номер телефона - - - Зарегистрировать - - - Авторизоваться - - - User Name - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.sv.resx deleted file mode 100644 index d3ac6a2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Authentication/Register.sv.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Har du redan ett konto? - - - Bekräfta lösenord - - - E-post - - - Förnamn - - - Efternamn - - - Lösenord - - - Telefonnummer - - - Registrera dig - - - Logga In - - - Användarnamn - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ar.resx deleted file mode 100644 index 32a2c4e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ar.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أضف العلامة التجارية - - - تم حفظ العلامة التجارية! - - - تم تحديث العلامة التجارية! - - - إلغاء - - - وصف - - - المعرّف - - - اسم - - - حفظ - - - ضريبة - - - تحديث - - - تحديث العلامة التجارية - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.de.resx deleted file mode 100644 index 618b6ed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.de.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Marke hinzufügen - - - Marke gespeichert! - - - Marke aktualisiert! - - - Abbrechen - - - Beschreibung - - - Id - - - Name - - - Speichern - - - Steuer - - - Aktualisieren - - - Martke Aktualisieren - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.en.resx deleted file mode 100644 index b8de313..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.en.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Brand - - - Brand Saved! - - - Brand Updated! - - - Cancel - - - Description - - - Id - - - Name - - - Save - - - Tax - - - Update - - - Update Brand - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.es.resx deleted file mode 100644 index bb9b491..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.es.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Marca - - - Marca Guardada! - - - Marca Actualizada! - - - Cancelar - - - Descripción - - - Id - - - Nombre - - - Guardar - - - Impuestos - - - Actualizar - - - Actualizar Marca - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.fr.resx deleted file mode 100644 index 732642a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.fr.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter une marque - - - Marque enregistrée ! - - - Marque mise à jour ! - - - Annuler - - - Description - - - Identifiant - - - Nom - - - Sauvegarder - - - Taxe - - - Mettre à jour - - - Édition d'une marque - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.id.resx deleted file mode 100644 index 635c20b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.id.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tambah Merek - - - Merek Tersimpan! - - - Merek Diperbarui! - - - Batal - - - Deskripsi - - - Id - - - Nama - - - Simpan - - - Pajak - - - Perbarui - - - Perbarui Merek - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.it.resx deleted file mode 100644 index 56dc1eb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.it.resx +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Nuova marca - - - Marca salvata! - - - Marca aggiornata! - - - Annulla - - - Descrizione - - - Id - - - Nome - - - Salva - - - Imposta - - - Aggiorna - - - Aggiorna marca - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.km.resx deleted file mode 100644 index f29d99f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.km.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ថែមម៉ាក - - - ម៉ាកបានរក្សាទុក! - - - ម៉ាកបានធ្វើបច្ចុប្បន្នភាព - - - បោះបង់ - - - ការពិពណ៌នា - - - លេខកូដសម្ងាល់ - - - ឈ្មោះ - - - រក្សាទុក - - - ពន្ធ - - - បច្ចុប្បន្នភាព - - - បច្ចុប្បន្នភាពម៉ាក - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.nl.resx deleted file mode 100644 index 13c6a94..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.nl.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Merk toevoegen - - - Merk gered! - - - Merk bijgewerkt! - - - Annuleren - - - Beschrijving - - - Id - - - Naam - - - Opslaan - - - Belasting - - - Update - - - Merk bijwerken - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ru.resx deleted file mode 100644 index 2e506f3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditBrandModal.ru.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить бренд - - - Бренд сохранён - - - Бренд обновлён - - - Отмена - - - Описание - - - Id - - - Наименование - - - Сохранить - - - Сбор - - - Обновить - - - Обновить бренд - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ar.resx deleted file mode 100644 index bcb9ce0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ar.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أضف منتج - - - الشفره - - - ماركة - - - إلغاء - - - حذف - - - وصف - - - المعرّف - - - اسم - - - تم حفظ المنتج! - - - تم تحديث المنتج! - - - تقييم - - - حفظ - - - تحديث - - - تحديث المنتج - - - تحميل - - - عرض - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.de.resx deleted file mode 100644 index 1bf6eaa..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.de.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Produkt hinzufügen - - - Strichcode - - - Marke - - - Abbrechen - - - Löschen - - - Beschreibung - - - Id - - - Name - - - Produkte gespeichert - - - Produkt aktualisiert - - - Bewertung - - - Speichern - - - Aktualisieren - - - Produkt aktualisieren - - - Upload - - - Ansicht - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.en.resx deleted file mode 100644 index ef00fca..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.en.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Product - - - Barcode - - - Brand - - - Cancel - - - Delete - - - Description - - - Id - - - Name - - - Product Saved! - - - Product Updated! - - - Rate - - - Save - - - Update - - - Update Product - - - Upload - - - View - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.es.resx deleted file mode 100644 index 1dabb2f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.es.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Producto - - - Código de barra - - - Marca - - - Cancelar - - - Eliminar - - - Descripción - - - Id - - - Nombre - - - Producto Guardado! - - - Producto Actualizado! - - - Precio - - - Guardar - - - Actualizar - - - Actualizar Producto - - - Subir - - - Ver - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.fr.resx deleted file mode 100644 index 4ba8a22..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.fr.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter un produit - - - Code barre - - - Marque - - - Annuler - - - Supprimer - - - Description - - - Identifiant - - - Nom - - - Produit enregistré ! - - - Produit mis à jour ! - - - Note - - - Sauvegarder - - - Mettre à jour - - - Édition d'un produit - - - Téléverser - - - Voir - - diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.id.resx deleted file mode 100644 index 770fbfa..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.id.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tambah Produk - - - Barcode - - - Merek - - - Batal - - - Hapus - - - Deskripsi - - - Id - - - Nama - - - Produk Tersimpan! - - - Produk Diperbarui! - - - Nilai - - - Simpan - - - Perbarui - - - Perbarui Produk - - - Unggah - - - View - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.it.resx deleted file mode 100644 index 1d11a75..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.it.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aggiungi prodotto - - - Barcode - - - Marca - - - Annulla - - - Elimina - - - Descrizione - - - Id - - - Nome - - - Prodotto Salvato! - - - Prodotto Aggiornato! - - - Vota - - - Salva - - - Aggiorna - - - Aggiorna Prodotto - - - Carica - - - View - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.km.resx deleted file mode 100644 index 06f7050..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.km.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ថែមផលិតផល - - - បាកូដ - - - ម៉ាក - - - បោះបង់ - - - លុប - - - ការពិពណ៌នា - - - លេខកូដសម្ងាល់ - - - ឈ្មោះ - - - ផលិតផលបានរក្សាទុក - - - ផលិតផលបានធ្វើបច្ចុប្បន្នភាព - - - អត្រា - - - រក្សាទុក - - - បច្ចុប្បន្នភាព - - - ធ្វើបច្ចុប្បន្នភាពផលិតផល - - - ផ្ទុកឡើង - - - បង្ហាញ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.nl.resx deleted file mode 100644 index f81d047..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.nl.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Product toevoegen - - - Barcode - - - Merk - - - Annuleren - - - Verwijderen - - - Beschrijving - - - Id - - - Naam - - - Product opgeslagen! - - - Product bijgewerkt! - - - Verhouding - - - Opslaan - - - Update - - - Product bijwerken - - - Uploaden - - - Bekijken - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ru.resx deleted file mode 100644 index 58dbb12..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.ru.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить продукт - - - Баркод - - - Бренд - - - Отмена - - - Удалить - - - Описание - - - Id - - - Наименование - - - Продукт сохранён - - - Продукт обновлён - - - Рейтинг - - - Сохранить - - - Обновить - - - Обновить продукт - - - Загрузить - - - Просмотр - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.sv.resx deleted file mode 100644 index 1882727..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/AddEditProductModal.sv.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Lägg till produkt - - - Streckkod - - - Varumärke - - - Avbryt - - - Radera - - - Beskrivning - - - Id - - - Namn - - - Produkt Sparad! - - - Produkt Uppdaterad! - - - Betygsätt - - - Spara - - - Uppdatera - - - Uppdatera Produkt - - - Ladda upp - - - View - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ar.resx deleted file mode 100644 index 45c2a98..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ar.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - أضف العلامة التجارية - - - يحدها - - - العلامات التجارية - - - تصدير الماركات - - - إنشاء - - - حذف - - - حذف المحتوى - - - كثيف - - - وصف - - - تعديل - - - تصدير - - - تم تصدير العلامات التجارية المفلترة - - - المعرّف - - - استيراد - - - إدارة العلامات التجارية. - - - اسم - - - لا توجد إجراءات مسموح بها - - - إعادة تحميل - - - ابحث عن العلامات التجارية - - - مخطط - - - ضريبة - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.de.resx deleted file mode 100644 index 88c287c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.de.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Marke hinzufügen - - - Gerahmt - - - Marken - - - Marken exportiert - - - Hinzufügen - - - Löschen - - - Inhalt löschen - - - Schmal - - - Beschreibung - - - Bearbeiten - - - Exportieren - - - Gefilterte Marken exportiert - - - Id - - - Importieren - - - Marken verwalten. - - - Name - - - Keine Aktionen erlaubt - - - Neu laden - - - Nach Marken suchen - - - Gebändert - - - Steuer - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.en.resx deleted file mode 100644 index 27b237c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.en.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Add Brand - - - Bordered - - - Brands - - - Brands exported - - - Create - - - Delete - - - Delete Content - - - Dense - - - Description - - - Edit - - - Export - - - Filtered Brands exported - - - Id - - - Import - - - Manage Brands. - - - Name - - - No Allowed Actions - - - Reload - - - Search for Brands - - - Striped - - - Tax - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.es.resx deleted file mode 100644 index 35aebe0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.es.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Agregar Marca - - - Bordeado - - - Marcas - - - Marcas Exportadas - - - Crear - - - Borrar - - - ¿Desea eliminar el registro? - - - Denso - - - Descripción - - - Editar - - - Exportar - - - Marcas filtradas exportadas - - - Id - - - Importar - - - Gestionar Marcas - - - Nombre - - - Acciones no Permitidas - - - Recargar - - - Buscar Marcas - - - Rayado - - - Impuestos - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.fr.resx deleted file mode 100644 index 5ccf553..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.fr.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Ajouter un marque - - - Avec bordures - - - Marques - - - Marques exportées - - - Créer - - - Supprimer - - - Supprimer la marque - - - Dense - - - Description - - - Éditer - - - Exporter - - - Marques filtrées exportées - - - Identifiant - - - Importer - - - Gérer les marques - - - Nom - - - Aucune action autorisée - - - Recharger - - - Chercher des marques - - - Rayé - - - Taxe - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.id.resx deleted file mode 100644 index 81a2f01..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.id.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tindakan - - - Tambah Merek - - - Merek - - - Brands exported - - - Tambah - - - Hapus - - - Hapus Konten - - - Deskripsi - - - Sunting - - - Ekspor - - - Filtered Brands exported - - - Id - - - Import - - - Kelola Merek. - - - Nama - - - No Allowed Actions - - - Muat Ulang - - - Cari Merek - - - Pajak - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.it.resx deleted file mode 100644 index 346068b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.it.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Aggiungi marca - - - Marche - - - Brands exported - - - Crea - - - Elimina - - - Cancella contenuto - - - Descrizione - - - Modifica - - - Export - - - Filtered Brands exported - - - Id - - - Import - - - Gestione marca. - - - Nome - - - Nessuna azione consentita - - - Ricarica - - - Ricerca marche - - - Imposta - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.km.resx deleted file mode 100644 index 20a35b7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.km.resx +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មុខងារ - - - បន្ថែមម៉ាក - - - ម៉ាក - - - ម៉ាកបាននាំចេញ - - - បង្កើត - - - លុប - - - ការពិពណ៌នា - - - កែប្រែ - - - នាំចេញ - - - ច្រោះម៉ាកបាននាំចេញ - - - លេខកូដសម្ងាល់ - - - Import - - - គ្រប់គ្រងម៉ាក - - - ឈ្មោះ - - - មិនមានសិទ្ធិ - - - ផ្ទុកឡើងវិញ - - - ស្វែងរកម៉ាក - - - ពន្ធ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.nl.resx deleted file mode 100644 index d3e5aec..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.nl.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Merk toevoegen - - - Grenst aan - - - Merken - - - Geëxporteerde merken - - - Aanmaken - - - Verwijderen - - - Inhoud verwijderen - - - Dicht - - - Beschrijving - - - Bewerken - - - Exporteren - - - Gefilterde merken geëxporteerd - - - Id - - - Importeren - - - Beheer merken. - - - Naam - - - Geen toegestane acties - - - Herladen - - - Zoeken naar merken - - - Gestreept - - - Belasting - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ru.resx deleted file mode 100644 index 1c34c46..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.ru.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Добавить бренд - - - Обрамлённый - - - Бренды - - - Бренды экспортированы - - - Создать - - - Удалить - - - Удалить контент - - - Компактный - - - Описание - - - Редактировать - - - Экспорт в Excel - - - Отфильтрованные бренды экспортированы - - - Id - - - Импорт - - - Управление брендами. - - - Наименование - - - Нет доступных действий - - - Перезагрузить - - - Поиск брендов... - - - Чередующийся - - - Сбор - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.sv.resx deleted file mode 100644 index 934d8d1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Brands.sv.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Åtgärder - - - Lägg till varumärke - - - Varumärken - - - Brands exported - - - Skapa - - - Radera - - - Ta bort innehåll - - - Beskrivning - - - Redigera - - - Exportera - - - Filtered Brands exported - - - Id - - - Import - - - Hantera varumärken. - - - Namn - - - No Allowed Actions - - - Ladda om - - - Sök efter varumärken - - - Moms - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ar.resx deleted file mode 100644 index e84ef69..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ar.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - الشفره - - - يحدها - - - ماركة - - - إنشاء - - - حذف - - - حذف المحتوى - - - كثيف - - - وصف - - - تعديل - - - تصدير - - - تصدير المنتجات المفلترة - - - المعرّف - - - إدارة المنتجات. - - - اسم - - - لا توجد إجراءات مسموح بها - - - منتجات - - - تصدير المنتجات - - - تقييم - - - إعادة تحميل - - - بحث - - - مخطط - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.de.resx deleted file mode 100644 index d3ab068..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.de.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Strichcode - - - Gerahmt - - - Marke - - - Hinzufügen - - - Löschen - - - Inhalt löschen - - - Schmal - - - Beschreibung - - - Bearbeiten - - - Exportieren - - - Gefilterte Produkte exportiert - - - Id - - - Produkte verwalten - - - Maximale Bewertung - - - Minimale Bewertung - - - Name - - - Keine Aktionen erlaubt - - - Produkte - - - Produkte exportiert - - - Bewertung - - - Neu laden - - - Suchen - - - Gebändert - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.en.resx deleted file mode 100644 index 1c633ca..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.en.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Barcode - - - Bordered - - - Brand - - - Create - - - Delete - - - Delete Content - - - Dense - - - Description - - - Edit - - - Export - - - Filtered Products exported - - - Id - - - Manage Products. - - - Maximum Rate - - - Minimum Rate - - - Name - - - No Allowed Actions - - - Products - - - Products exported - - - Rate - - - Reload - - - Search - - - Striped - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.es.resx deleted file mode 100644 index 3da508d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.es.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Código de barra - - - Bordeado - - - Marca - - - Crear - - - Borrar - - - ¿Desea eliminar el registro? - - - Denso - - - Descripción - - - Editar - - - Exportar - - - Productos filtrados exportados - - - Id - - - Gestionar Productos - - - Nombre - - - Acciones no Permitidas - - - Productos - - - Productos exportados - - - Precio - - - Recargar - - - Buscar - - - Rayado - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.fr.resx deleted file mode 100644 index ebf66a8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.fr.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Code barre - - - Avec bordures - - - Marque - - - Créer - - - Supprimer - - - Supprimer le produit - - - Dense - - - Description - - - Éditer - - - Exporter - - - Produits filtrés exportés - - - Identifiant - - - Gérer les produits. - - - Nom - - - Aucune action autorisée - - - Produits - - - Products exported - - - Note - - - Recharger - - - Chercher - - - Rayé - - diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.id.resx deleted file mode 100644 index 15d8d77..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.id.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tindakan - - - Barcode - - - Merek - - - Tambah - - - Hapus - - - Hapus Konten - - - Deskripsi - - - Sunting - - - Ekspor - - - Filtered Products exported - - - Id - - - Kelola Produk. - - - Nama - - - No Allowed Actions - - - Produk - - - Products exported - - - Nilai - - - Muat Ulang - - - Cari - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.it.resx deleted file mode 100644 index a218fa3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.it.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Descrizione - - - Id - - - Nome - - - Prodotti - - - Ricarica - - - Marca - - - Cancella contenuto - - - Ricerca - - - Tasso - - - Gestione prodotti. - - - Modifica - - - Elimina - - - Crea - - - Barcode - - - Prodotti esportati - - - Prodotti filtrati esportati - - - Nessuna azione consentita - - - Tasso massimo - - - Tasso minimo - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.km.resx deleted file mode 100644 index 6cbf00d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.km.resx +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មុខងារ - - - បាកូដ - - - បង្កើត - - - លុប - - - ការពិពណ៌នា - - - កែប្រែ - - - ច្រោះផលិតផលបាននាំចេញ - - - លេខកូដសម្ងាល់ - - - គ្រប់គ្រងផលិតផល - - - ឈ្មោះ - - - គ្មានសិទ្ធិ - - - ផលិតផល - - - ផលិតផលនាំចេញ - - - អត្រា - - - ផ្ទុកឡើងវិញ - - - ស្វែងរក - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.nl.resx deleted file mode 100644 index cc4ced9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.nl.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Barcode - - - Aanmaken - - - Verwijderen - - - Beschrijving - - - Bewerken - - - Gefilterde producten geëxporteerd - - - Id - - - Producten beheren. - - - Naam - - - Geen toegestane acties - - - Producten - - - Uitgevoerde producten - - - Verhouding - - - Herladen - - - Zoeken - - - Grenst aan - - - Merk - - - Inhoud verwijderen - - - Dicht - - - Exporteren - - - Gestreept - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ru.resx deleted file mode 100644 index b2ae187..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.ru.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Баркод - - - Обрамлённый - - - Бренд - - - Создать - - - Удалить - - - Удалить контент - - - Компактный - - - Описание - - - Редактировать - - - Экспорт в Excel - - - Отфильтрованные продукты экспортированы - - - Id - - - Управление продуктами. - - - Наименование - - - Нет доступных действий - - - Продукты - - - Продукты экспортированы - - - Рейтинг - - - Перезагрузить - - - Поиск продуктов... - - - Чередующийся - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.sv.resx deleted file mode 100644 index 43994b0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Catalog/Products.sv.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Åtgärder - - - Streckkod - - - Varumärke - - - Skapa - - - Radera - - - Ta bort innehåll - - - Beskrivning - - - Redigera - - - Exportera - - - Filtered Products exported - - - Id - - - Hantera Produkter. - - - Namn - - - No Allowed Actions - - - Produkter - - - Products exported - - - Betygsätta - - - Ladda om - - - Sök - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ar.resx deleted file mode 100644 index 6637bd9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ar.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - دردشة - - - جهات الاتصال - - - دليل مفصل للمزيد. - - - أدخل رسالتك... - - - مسجّل الدخول. - - - تسجيل الخروج. - - - رسالة جديدة من {0} - - - يرسل - - - هل تريد أن تفهم كيف يتم تنفيذ الدردشة في BlazorHero؟ قم بإحالة هذا - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.de.resx deleted file mode 100644 index 0555b5b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.de.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Chat - - - Kontakte - - - Detaillierte Anleitung für mehr. - - - Gibt deine Nachricht ein... - - - Eingeloggt. - - - Ausgeloggt. - - - Neue Nachricht von {0} - - - Absenden - - - Du möchtest verstehen, wie der Chat in FullStackHero implementiert ist? Lies hier - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.en.resx deleted file mode 100644 index 7b318d4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.en.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - chat - - - contacts - - - detailed guide for more. - - - Enter your message... - - - Logged In. - - - Logged Out. - - - New Message From {0} - - - Send - - - Want to understand how Chat is implemented in BlazorHero ? Refer this - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.es.resx deleted file mode 100644 index 702f3f7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.es.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - chat - - - contactos - - - guía detallada para mas. - - - Ingrese su mensaje... - - - Contectado. - - - Desconectado. - - - Nuevo mensaje de {0} - - - Enviar - - - ¿Quiere entender como el Chat está implmentado en BlazorHero? Mirar esta referencia - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.fr.resx deleted file mode 100644 index 9b67e0b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.fr.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Conversations - - - Contacts - - - guide détaillé pour en savoir plus. - - - Entrez votre message. - - - Connecté. - - - Déconnecté. - - - Nouveau message de {0} - - - Envoyer - - - Vous voulez comprendre comment le chat est implémenté dans BlazorHero ? Jettez un œil à ce - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.id.resx deleted file mode 100644 index a9e65c4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.id.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - obrolan - - - kontak - - - panduan rinci lebih lanjut. - - - Tulis pesan anda... - - - Logged In. - - - Logged Out. - - - New Message From {0} - - - Kirim - - - Ingin tau bagaimana cara obrolan diimplementasi di BlazorHero ? Lihat - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.it.resx deleted file mode 100644 index 534c625..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.it.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - chat - - - contatti - - - guida dettagliata per saperne di più. - - - Inserisci il tuo messaggio ... - - - Logged In. - - - Logged Out. - - - New Message From {0} - - - Invia - - - Vuoi capire come viene implementata la chat in BlazorHero? Guarda qui - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.km.resx deleted file mode 100644 index f492f0a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.km.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ជជែក - - - ឈ្មោះទំនាក់ទំនង - - - ការណែនាំលំអិត - - - វាយបញ្ចូលសាររបស់អ្នក - - - ឡុកចូល។ - - - ឡុកចេញ។ - - - សារថ្មីមកពី {0} - - - ផ្ញើ - - - ចង់ដឹងអំពីរបៀបសរសេរកូដមុខងារជជែកក្នុងប្លេហ្សឺហេរ៉ូ ចូលទៅកាន់តំណភ្ជាប់នេះ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.nl.resx deleted file mode 100644 index 7b2a08f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.nl.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gesprek - - - Contactpersonen - - - gedetailleerde gids voor meer. - - - Voer uw bericht in... - - - Ingelogd. - - - Uitgelogd. - - - Nieuw bericht van {0} - - - Verzenden - - - Wilt u begrijpen hoe een Chat wordt geïmplementeerd in BlazorHero ? Ga dan naar deze - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ru.resx deleted file mode 100644 index e2e8a9e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.ru.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - чат - - - контакты - - - подробному руководству для получения дополнительной информации. - - - Введите ваше сообщение... - - - авторизовался. - - - вышел. - - - Новое сообщение от {0} - - - Отправить - - - Хотите понять, как реализован чат в BlazorHero ? Обратитесь к этому - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.sv.resx deleted file mode 100644 index 0fa02a8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Communication/Chat.sv.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - chatt - - - kontakter - - - detaljerad guide för mer. - - - Ditt meddelande... - - - Logged In. - - - Logged Out. - - - New Message From {0} - - - Skicka - - - Vill du förstå hur Chatt implementeras i BlazorHero? Se detta - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ar.resx deleted file mode 100644 index 06018d1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ar.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - بليزر للمبتدئين - بدء استخدام بليزر - - - Blazor Hero عبارة عن نموذج للحل الشامل للهندسة المعمارية النظيفة لتجميع الويب Blazor الذي تم إنشاؤه باستخدام - - - بناء تطبيق دردشة مع Blazor ، Identity ، و SignalR - - - الاحتفال بـ 1500 نجمة على جيثب! - - - مكتبة المكونات - - - المصادقة المخصصة في Blazor WebAssembly - بالتفصيل - - - قالب معماري نظيف لـ Blazor Web-Assembly - - - التوثيق - قريبا - - - استكشاف هيكل مشروع Blazor - - - ابدء - - - مستودع جيثب: لا تنسى ترك نجم ؛) - - - إليك بعض المقالات التي من المفترض أن تساعدك في البدء باستخدام Blazor. - - - كيفية تنفيذ Blazor CRUD باستخدام Entity Framework Core؟ - - - تنفيذ Blazor CRUD باستخدام مكتبة مكونات Mudblazor في .NET 5 - - - روابط مهمة - - - في حال كنت عالقًا في أي مكان أو كان لديك أي استفسارات بخصوص هذا التنفيذ ، فقد قمت بتجميع دليل البدء السريع للرجوع إليه - - - مصادر التعلم - - - أحب BlazorHero؟ نجمة لنا على جيثب! - - - هندسة البصل في ASP.NET Core مع CQRS - مفصل - - - صفحة المشروع - - - دليل البدء السريع - - - اقرأ الدليل - - - ادعمني! - - - بلازور هيرو - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.de.resx deleted file mode 100644 index 64fdfeb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.de.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor für Anfänger - Erste Schritte in Blazor - - - Blazor Hero ist ein All-In-One Clean Architecture Lösungstemplate für Blazor Web-Assembly, erstellt mit - - - Baue eine Chat-Anwendung With Blazor, Identity, And SignalR - - - Wir feiern 1,500 Sterne auf Github! - - - Komponentenbibliothek - - - Benutzerdefinierte Authentifizierung in Blazor WebAssembly im Detail - - - Clean Architecture Vorlage für Blazor Web-Assembly - - - Dokumentation - demnächst - - - Erforsche die Blazor Projektstruktur - - - Erste Schritte - - - Github Repository : Vergiss nicht, einen Stern zu hinterlassen ;) - - - Hier sind ein paar Artikel, die dir beimn Einstieg in Blazor helfen sollten. - - - Wie implementierst du Blazor CRUD mit Entity Framework Core? - - - Implementiere Blazor CRUD mit der Mudblazor Komponentenbibliothek in .NET 5 - - - Wichtige Verknüpfungen - - - Falls du irgendwo steckenbleiben solltest, oder Fragen zu dieser Implementierung hast, habe ich eine Schnellstartanleitung für dich erstellt. - - - Lernmittel - - - Dir gefällt BlazorHero? Hinterlasse einen Stern auf Github! - - - Zwiebelarchitektur in ASP.NET Core mit CQRS im Detail - - - Projektseite - - - Schnellstartanleitung - - - Lies die Anleitung - - - Unterstütze mich! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.en.resx deleted file mode 100644 index 1d1c273..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.en.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor For Beginners – Getting Started With Blazor - - - Blazor Hero is an All-In-One Clean Architecture Solution Template For Blazor Web-Assembly built with - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Celebrating 1,500 Stars on Github! - - - Component Library - - - Custom Authentication In Blazor WebAssembly – Detailed - - - Clean Architecture Template For Blazor Web-Assembly - - - Documentation - Coming Soon - - - Exploring Blazor Project Structure - - - Getting Started - - - Github Repository : Do Not Forget to Leave a Star ;) - - - Here are few articles that should help you get started with Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Important Links - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - Learning Resources - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - Project Page - - - Quick Start Guide - - - Read The Guide - - - Support Me! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.es.resx deleted file mode 100644 index f5e12b4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.es.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor para Principiantes – Iniciarse con Blazor - - - Blazor Hero es un template de Solución de Arquitectura todo-en-uno para Blazor Web-Assembly, hecho con la Librería de Componentes - - - Construir una Aplicación de Chat con Blazor, Identity y SignalR - - - Celebrando 1,500 Estrellas en Github! - - - - - - Autenticación Personalizada en Blazor WebAssembly – Detallado - - - Template de Arquitectura Limpia para Blazor Web-Assembly - - - Documentación - Pronto - - - Explorando la estructura de un Proyecto Blazor - - - Iniciarse - - - Repositorio en Github: No olvides dejar una estrella ;) - - - Aquí hay unos artículos que te ayudarán a iniciarte el Blazor. - - - ¿Cómo implementar un CRUD en Blazro usando Entity Framework Core? - - - Implementando un CRUD en Blazor usando la librería de componentes Mudblazor en .NET 5 - - - Links Importantes - - - En caso que tengas problemas para avanzar o tengas preguntas sobre la implementación, he compilado una Guía de Inicio Rápido para tu referencia. - - - Recursos para Aprendizaje - - - ¿Te gustó BlazorHero? Deja una estrella en Github! - - - Arquitectura Onion en ASP.NET Core con CQRS – Detalle - - - Página del proyecto - - - Guía de Inicio Rápido - - - Lee la guía - - - Apoyarme! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.fr.resx deleted file mode 100644 index 0024b82..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.fr.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor For Beginners – Getting Started With Blazor - - - Blazor Hero est un modèle de solution propre et tout en un pour Blazor Web-Assembly, construit avec la bibliothèque de composants - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Celebrating 1,500 Stars on Github! - - - - - - Custom Authentication In Blazor WebAssembly – Detailed - - - Modèle d'architecture propre pour Blasor Web-Assembly - - - Documentation - Coming Soon - - - Exploring Blazor Project Structure - - - Getting Started - - - Github Repository : Do Not Forget to Leave a Star ;) - - - Here are few articles that should help you get started with Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Important Links - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - Learning Resources - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - Project Page - - - Quick Start Guide - - - Read The Guide - - - Support Me! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.id.resx deleted file mode 100644 index 32c38ef..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.id.resx +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor For Beginners – Getting Started With Blazor - - - Blazor Hero adalah sebuah Template Solusi Clean Architecture All-In-One Untuk Blazor Web-Assembly - - - Blazor Hero is an All-In-One Clean Architecture Solution Template For Blazor Web-Assembly built with - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Celebrating 1,500 Stars on Github! - - - Pustaka Komponen - - - Component Library - - - Custom Authentication In Blazor WebAssembly – Detailed - - - Template Clean Architecture Untuk Blazor Web-Assembly - - - Documentation - Coming Soon - - - Exploring Blazor Project Structure - - - Getting Started - - - Github Repository : Do Not Forget to Leave a Star ;) - - - Here are few articles that should help you get started with Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Important Links - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - Learning Resources - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - Halaman Proyek - - - Quick Start Guide - - - Read The Guide - - - Dukung Saya! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.it.resx deleted file mode 100644 index e004f55..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.it.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Descrizione - - - Blazor Hero - - - Libreria di compoenti - - - Supportami! - - - Blazor Hero - - - Blazor For Beginners – Getting Started With Blazor - - - Blazor Hero is an All-In-One Clean Architecture Solution Template For Blazor Web-Assembly built with - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Celebrating 1,500 Stars on Github! - - - Component Library - - - Custom Authentication In Blazor WebAssembly – Detailed - - - Exploring Blazor Project Structure - - - Getting Started - - - Github Repository : Do Not Forget to Leave a Star ;) - - - Here are few articles that should help you get started with Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Important Links - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - Learning Resources - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - Quick Start Guide - - - Read The Guide - - - Documentation - Coming Soon - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.km.resx deleted file mode 100644 index 7fccc0b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.km.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ប្លេហ្សឺសម្រាប់ការចាប់ផ្តើម - ចាំផ្តើមជាមួយប្លេហ្សឺ - - - Blazor Hero is an All-In-One Clean Architecture Solution Template For Blazor Web-Assembly built with - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Celebrating 1,500 Stars on Github! - - - Component Library - - - Custom Authentication In Blazor WebAssembly – Detailed - - - គំរូកម្មវិធីដែលអភិវឌ្ឍតាមបច្ចេកវិទ្យា Blazor Web-Assembly - - - ឯកសារណែនាំលម្អិត មកដល់ឆាប់ៗនេះ - - - គ្រោងថតរបស់គម្រោង - - - ចាប់ផ្តើម - - - Github Repository : Do Not Forget to Leave a Star ;) - - - Here are few articles that should help you get started with Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Important Links - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - ធនធានសិក្សា - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - ទំព័រគម្រោង - - - ការណែនាំសង្ខេប - - - អានការណែនា - - - គាំទ្រយើងខ្ញុំ! - - - ប្លេហ្សឺ ហេរ៉ូ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.nl.resx deleted file mode 100644 index 6ec8ae5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.nl.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor voor beginners – Aan de slag met Blazor - - - Blazor Hero is een alles-in-één schone architectuuroplossing sjabloon voor Blazor web-assembly gebouwd met - - - Een chattoepassing bouwen met Blazor, Identity en SignalR - - - Inmiddels 1500 sterren op Github! - - - Componentbibliotheek - - - Aangepaste verificatie in Blazor WebAssembly - Gedetailleerd - - - Schone architectuursjabloon voor Blazor Web-Assembly - - - Documentatie - Binnenkort beschikbaar - - - Blazor-projectstructuur verkennen - - - Opstarten - - - Github Repository : Vergeet niet om een ster achter te laten ;) - - - Hier zijn enkele artikelen die u moeten helpen aan de slag te gaan met Blazor. - - - Hoe Blazor CRUD implementeren met Entity Framework Core? - - - Blazor CRUD implementeren met mudblazor-componentbibliotheek in .NET 5 - - - Belangrijke links - - - Verhoog dat u ergens vastzit of heb vragen over deze implementatie, ik heb een Quick Start Guide voor u samengesteld. - - - Leermiddelen - - - Vind je BlazorHero leuk? Geef een ster op Github! - - - Onion Architecture In ASP.NET Core Met CQRS – Gedetailleerd - - - Projectpagina - - - Snelstartgids - - - Lees de gids - - - Steun mij! - - - Blazor Held - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ru.resx deleted file mode 100644 index c1d6b11..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.ru.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor For Beginners – Getting Started With Blazor - - - Blazor Hero - это All-In-One шаблон решения с применением "чистой" архитектуры для Blazor Web-Assembly, построенный с помощью - - - Building A Chat Application With Blazor, Identity, And SignalR - - - Достигнуто 1,500 Звёзд на Github! - - - библиотеки компонентов - - - Custom Authentication In Blazor WebAssembly – Detailed - - - Шаблон "чистой" архитектуры для Blazor Web-Assembly - - - Документация - скоро появится - - - Exploring Blazor Project Structure - - - Начало работы - - - Репозиторий Github : не забудьте поставить звезду ;) - - - Вот несколько статей, которые должны помочь вам начать работу с Blazor. - - - How To Implement Blazor CRUD Using Entity Framework Core? - - - Implementing Blazor CRUD Using Mudblazor Component Library In .NET 5 - - - Важные ссылки - - - Если вы где-то застряли или у вас есть какие-либо вопросы относительно этой реализации, я составил для вас краткое руководство по началу работы. - - - Учебные ресурсы - - - Нравится BlazorHero? Поставьте звезду на Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detailed - - - Страница проекта - - - Краткое руководство по началу работы - - - Прочитать руководство - - - Поддержать меня! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.sv.resx deleted file mode 100644 index a9bcdcc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Home.sv.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor för nybörjare - Komma igång med Blazor - - - Blazor Hero är en allt-i-ett-ren mall för arkitekturlösningar för Blazor Web-Assembly byggd med - - - Bygga en Chattapplikation med Blazor, Identity och SignalR - - - Celebrating 1,500 Stars on Github! - - - Komponentbibliotek - - - Anpassad autentisering i Blazor WebAssembly - Detaljerad - - - Ren arkitekturmall för Blazor Web-Assembly - - - Documentation - Coming Soon - - - Utforska Blazor-projektets struktur - - - Komma igång - - - Github Repository : Glöm inte att lämna en stjärna ;) - - - Här är några artiklar som kan hjälpa dig att komma igång med Blazor. - - - Hur implementerar jag Blazor CRUD med Entity Framework Core? - - - Implementering av Blazor CRUD med Mudblazor Komponent Library i .NET 5 - - - Viktiga länkar - - - Öka att du har fastnat någonstans eller har några frågor angående denna implementering, jag har sammanställt en snabbstartsguide som referens. - - - Lärande resurser - - - Liked BlazorHero? Star us on Github! - - - Onion Architecture In ASP.NET Core With CQRS – Detaljerad - - - Projektsida - - - Snabbstartsguide - - - Läs guiden - - - Stöd Mig! - - - Blazor Hero - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ar.resx deleted file mode 100644 index 4f13a27..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ar.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الوصول إلى الموارد هنا. - - - رهيبة بليزر - - - مكان رائع للتعلم والعثور على معلومات ومشاريع / أمثلة حول Blazor. - - - موارد - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.de.resx deleted file mode 100644 index 9000594..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.de.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Auf Ressourcen zugreifen. - - - Awesome Blazor - - - Großartige Seite zum Lernen von Blazor. Es gibt eine Vielzahl an Informationen, Projekten und Beispielen. - - - Ressourcen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.en.resx deleted file mode 100644 index 4254cab..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.en.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Access Resources here. - - - Awesome Blazor - - - Great place to learn, find information and projects/examples about Blazor. - - - Resources - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.es.resx deleted file mode 100644 index 0f6b656..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.es.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acceder a los recursos aquí - - - Awesome Blazor - - - Estupendo lugar para aprender, buscar información y proyectos/ejemplos sobre Blazor. - - - Recursos - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.fr.resx deleted file mode 100644 index fdccea8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.fr.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Accédez aux ressouces ici. - - - Awesome Blazor - - - Bon endroit pour apprendre, trouver des informations et des projets / exemples avec Blazor. - - - Ressources - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.id.resx deleted file mode 100644 index 5233f41..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.id.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Akses Resources di sini. - - - Awesome Blazor - - - Tempat yang bagus untuk belajar, mencari informasi dan proyek/contoh tentang Blazor. - - - Resources - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.it.resx deleted file mode 100644 index 2d8f2f6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.it.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Risorse - - - Ottimo posto per imparare, trovare informazioni e progetti/esempi su Blazor. - - - Eccezionale Blazor - - - Accedi alle risorse qui. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.km.resx deleted file mode 100644 index fe1c3c3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.km.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ចូលប្រើធនធាននៅទីនេះ - - - ធនធានប្លេហ្សឺមហាសាល - - - កន្លែងដ៏ល្អដើម្បីរៀនស្វែងរកព័ត៌មាននិងគម្រោង / ឧទាហរណ៍គំរូរបស់ប្លេហ្សឺ - - - ធនធាន - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.nl.resx deleted file mode 100644 index a6e54ef..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.nl.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hier kunt u bronnen openen. - - - Geweldige Blazor - - - Geweldige plek om te leren, informatie en projecten / voorbeelden over Blazor te vinden. - - - Bronnen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ru.resx deleted file mode 100644 index c69e400..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.ru.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Доступ к ресурсам здесь. - - - Awesome Blazor - - - Отличное место для обучения, где можно найти информацию и проекты/примеры о Blazor. - - - Ресурсы - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.sv.resx deleted file mode 100644 index 163625f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Content/Resources.sv.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Få tillgång till resurser här. - - - Fantastisk Blazor - - - Bra ställe att lära sig, hitta information och projekt / exempel om Blazor. - - - Resurser - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ar.resx deleted file mode 100644 index a1e51f2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ar.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الحساب - - - إدارة حسابك - - - الملف الشخصي - - - حماية - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.de.resx deleted file mode 100644 index a309580..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.de.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Konto verwalten - - - Profil - - - Sicherheit - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.en.resx deleted file mode 100644 index 8153dbd..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.en.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Manage your account - - - Profile - - - Security - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.es.resx deleted file mode 100644 index d838676..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.es.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cuenta - - - Gestione su cuenta - - - Perfil - - - Seguridad - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.fr.resx deleted file mode 100644 index 3ff7ab8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.fr.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Compte - - - Gérez votre compte - - - Profile - - - Sécurité - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.id.resx deleted file mode 100644 index 7ee6bd2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.id.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Akun - - - Kelola akun anda - - - Profil - - - Keamanan - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.it.resx deleted file mode 100644 index d4c0346..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.it.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Gestisci il tuo account - - - Profilo - - - Sicurezza - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.km.resx deleted file mode 100644 index d3e124c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.km.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - គណនី - - - គ្រប់គ្រង​គណនី​របស់​អ្នក - - - ប្រវត្តិរូប - - - សន្តិសុខ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.nl.resx deleted file mode 100644 index 4e3d049..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.nl.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Uw account beheren - - - Profiel - - - Beveiliging - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ru.resx deleted file mode 100644 index 5344d37..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.ru.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Аккаунт - - - Управление вашим аккаунтом - - - Профиль - - - Безопасность - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.sv.resx deleted file mode 100644 index 2bfbf5c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Account.sv.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Hantera ditt konto - - - Profil - - - Säkerhet - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ar.resx deleted file mode 100644 index 549b9dc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ar.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - حذف صورة - - - حذف الصورة - - - هل تريد حذف صورة ملف تعريف {0} - - - بريد الالكتروني - - - الاسم الأول - - - الكنية - - - رقم الهاتف - - - الملف الشخصي - - - تفاصيل الملف الشخصي - - - تمت إضافة صورة الملف الشخصي. - - - تم حذف صورة الملف الشخصي. - - - حفظ التغييرات - - - تحميل الصور - - - تم تحديث ملفك الشخصي. الرجاء تسجيل الدخول للمتابعة. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.de.resx deleted file mode 100644 index badb9b7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.de.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bild löschen - - - Bild löschen - - - Möchtest du das Profilbild von {0} löschen - - - E-Mail - - - Vorname - - - Nachname - - - Telefon - - - Profil - - - Profildetails - - - Profilbild hinzugefügt. - - - Profilbild gelöscht. - - - Änderungen speichern - - - Bild hochladen - - - Profil aktualisiert. Zum Fortfahren anmelden. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.en.resx deleted file mode 100644 index 708594b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.en.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Delete Image - - - Delete Picture - - - Do you want to delete the profile picture of {0} - - - Email - - - First Name - - - Last Name - - - Phone Number - - - Profile - - - Profile Details - - - Profile picture added. - - - Profile picture deleted. - - - Save Changes - - - Upload Image - - - Your Profile has been updated. Please Login to Continue. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.es.resx deleted file mode 100644 index add91bb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.es.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Borrar Imagen - - - Borrar Imagen - - - ¿Quiere borrar la imagen de perfil de {0} - - - Correo - - - Nombre - - - Apellido - - - Teléfono - - - Perfil - - - Detalle del perfil - - - Imagen de Perfil agregada. - - - Imagen de Perfil borrada. - - - Guardar cambios - - - Cargar Imagen - - - Tu perfil fue actualizado, por favor ingrese para continuar. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.fr.resx deleted file mode 100644 index 9dd3d5c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.fr.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Supprimer image - - - Supprimer photo - - - Voulez-vous supprimer la photo de profil de {0} - - - Courriel - - - Prénom - - - Nom - - - Numéro de téléphone - - - Profil - - - Détails du profil - - - Photo de profil ajouté. - - - Photo de profil supprimée. - - - Sauvagarder les changements - - - Téléverser une image - - - Votre profil a été mis à jour. Merci de vous reconnecter pour continuer. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.id.resx deleted file mode 100644 index 238596e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.id.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hapus Gambar - - - Hapus Gambar - - - Do you want to delete the profile picture of {0} - - - Email - - - Nama Depan - - - Nama Belakang - - - Nomor Telepon - - - Profil - - - Detail Profil - - - Profile picture added. - - - Profile picture deleted. - - - Simpan Perubahan - - - Unggah Gambar - - - Profil Anda telah diperbarui. Login untuk Melanjutkan. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.it.resx deleted file mode 100644 index 3848468..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.it.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Elimina Immagine - - - Elimina Immagine - - - Do you want to delete the profile picture of {0} - - - Email - - - Nome - - - Cognome - - - Telefono - - - Profilo - - - Dettagli profilo - - - Profile picture added. - - - Profile picture deleted. - - - Salvare le modifiche - - - Carica immagine - - - Il tuo profilo è stato aggiornato. Accedere per continuare. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.km.resx deleted file mode 100644 index 56fd8a9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.km.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - លុបរូបភាព - - - លុបរូបភាព - - - តើអ្នកចង់លុបរូបថតប្រូហ្វាល់នៃ {0} - - - អ៊ីមែល - - - នាមខ្លួន - - - នាមត្រកូល - - - លេខទូរស័ព្ទ - - - ប្រវត្តិរូប - - - ព័ត៌មានលម្អិតប្រវត្តិរូប - - - រូបថតប្រូហ្វាល់បានបន្ថែម - - - រូបថតប្រូហ្វាល់បានលុប - - - រក្សាទុកការផ្លាស់ប្តូរ - - - ផ្ទុកឡើងរូបភាព - - - ពត៌មានរបស់អ្នកត្រូវបានធ្វើបច្ចុប្បន្នភាព។ សូមចូលដើម្បីបន្ត។ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.nl.resx deleted file mode 100644 index faba084..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.nl.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Afbeelding verwijderen - - - Wilt u de profielfoto van {0} verwijderen? - - - Email - - - Voornaam - - - Achternaam - - - Telefoonnummer - - - Profiel - - - Profielgegevens - - - Profielfoto toegevoegd. - - - Profielfoto verwijderd. - - - Wijzigingen opslaan - - - Uw profiel is bijgewerkt. Log in om door te gaan. - - - Afbeelding verwijderen - - - Afbeelding uploaden - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ru.resx deleted file mode 100644 index c08082a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.ru.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Удалить изображение - - - Вы действительно хотите удалить изображение профиля {0} - - - Email - - - Имя - - - Фамилия - - - Номер телефона - - - Профиль - - - Детали профиля - - - Изображение профиля добавлено. - - - Изображение профиля удалено. - - - Сохранить изменения - - - Загрузить изображение - - - Ваш профиль был обновлён. Пожалуйста, авторизуйтесь, чтобы продолжить. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.sv.resx deleted file mode 100644 index 48cf3c5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Profile.sv.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Radera Bild - - - Radera Bild - - - Do you want to delete the profile picture of {0} - - - E-post - - - Förnamn - - - Efternamn - - - Telefonnummer - - - Profil - - - Profil Detaljer - - - Profile picture added. - - - Profile picture deleted. - - - Spara Ändringar - - - Ladda upp bild - - - Din profil har uppdaterats. Var vänlig logga in för att fortsätta. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ar.resx deleted file mode 100644 index 8e0d14b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ar.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - تغيير كلمة المرور - - - كلمة المرور الحالي - - - كلمة سر خاطئة. - - - كلمه السر - - - تم تغيير كلمة السر! - - - تأكيد كلمة المرور - - - مطلوب تأكيد كلمة المرور! - - - كلمة المرور مطلوبة! - - - يجب ألا يقل طول كلمة المرور عن 8 - - - يجب أن تحتوي كلمة المرور على حرف كبير واحد على الأقل - - - يجب أن تحتوي كلمة المرور على رقم واحد على الأقل - - - يجب أن تحتوي كلمة المرور على حرف صغير واحد على الأقل - - - كلمات المرور غير متطابقة - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.de.resx deleted file mode 100644 index 593ce75..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.de.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Passwort ändern - - - Aktuelles Passwort - - - Falsches Passwort. - - - Passwort - - - Passwort geändert! - - - Passwortwiederholung - - - Passwortwiederholung wird benötigt! - - - Passwort wird benötigt! - - - Passwort muss mindestens 8 Zeichen lang sein - - - Passwort muss mindestens einen Großbuchstaben enthalten - - - Passwort muss mindestens eine Zahl enthalten - - - Passwort muss mindestens einen Kleinbuchstaben enthalten - - - Passwörter stimmen nicht überein. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.en.resx deleted file mode 100644 index 9de3a3e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.en.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Change Password - - - Current Password - - - Incorrect Password. - - - Password - - - Password Changed! - - - Password Confirmation - - - Password Confirmation is required! - - - Password is required! - - - Password must be at least of length 8 - - - Password must contain at least one capital letter - - - Password must contain at least one digit - - - Password must contain at least one lowercase letter - - - Passwords don't match - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.es.resx deleted file mode 100644 index 998fab6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.es.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cambiar contraseña - - - Contraseña actual - - - Contraseña - - - Confirmación de contraseña - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.fr.resx deleted file mode 100644 index b98c7ae..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.fr.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Changer le mot de passe - - - Mot de passe actuel - - - Mot de passe incorrect. - - - Mot de passe - - - Mot de passe changé ! - - - Mot de passe confirmé ! - - - Confirmation du mot de passe requise ! - - - Mot de passe requis ! - - - Le mot de passe doit au moins contenir 8 caractères ! - - - Le mot de passe doit au moins contenir une lettre majuscule - - - Le mot de passe doit au moins contenir un chiffre - - - Le mot de passe doit au moins contenir une minuscule - - - Les mots de passes de correspondent pas - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.id.resx deleted file mode 100644 index 6f68328..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.id.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ubah sandi - - - Sandi saat Ini - - - Sandi salah. - - - Sandi - - - Sandi diperbarui! - - - Konfirmasi sandi - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.it.resx deleted file mode 100644 index 787c422..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.it.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cambia password - - - Password corrente - - - Password non corretta. - - - Password - - - Password cambiata! - - - Conferma password - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.km.resx deleted file mode 100644 index 9f41488..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.km.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ផ្លាស់ប្តូរពាក្យសម្ងាត់ - - - លេខសំងាត់​បច្ចុប្បន្ន - - - ពាក្យសម្ងាត់ - - - ការ​បញ្ជាក់​ពាក្យ​សម្ងាត់ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.nl.resx deleted file mode 100644 index 54116f3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.nl.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Wachtwoord wijzigen - - - Huidig wachtwoord - - - Wachtwoord - - - Wachtwoordbevestiging - - - Onjuist wachtwoord. - - - Wachtwoord gewijzigd! - - - Lösenordsbekräftelse krävs! - - - Wachtwoord is vereist! - - - Wachtwoord moet uit minimaal 8 karakters bestaan! - - - Wachtwoord moet uit minimaal 1 hoofdletter bestaan! - - - Wachtwoord moet uit minimaal 1 nummer! - - - Wachtwoord moet uit minimaal 1 kleine letter! - - - Wachtwoorden komen niet overeen! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ru.resx deleted file mode 100644 index 6240d95..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.ru.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Изменить пароль - - - Текущий пароль - - - Неверный пароль. - - - Пароль - - - Пароль изменён! - - - Подтверждение пароля - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.sv.resx deleted file mode 100644 index 1fa3c42..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Account/Security.sv.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ändra lösenord - - - Nuvarande lösenord - - - Fel lösenord. - - - Lösenord - - - Lösenord Ändrat! - - - Lösenordsbekräftelse - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ar.resx deleted file mode 100644 index aa9eed6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ar.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - المستخدم نشط؟ - - - هل تريد تأكيد البريد الإلكتروني تلقائيًا؟ - - - إلغاء - - - تأكيد كلمة المرور - - - بريد الالكتروني - - - الاسم الأول - - - الكنية - - - كلمه السر - - - رقم الهاتف - - - الملف الشخصي - - - تفاصيل الملف الشخصي - - - تسجيل - - - تسجيل المستخدم - - - حفظ التغييرات - - - اسم االمستخدم - - - مستخدم مسجل! - - - مستخدم مسجل. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.de.resx deleted file mode 100644 index 06149d5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.de.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Benutzer aktivieren? - - - E-Mail automatisch bestätigen? - - - Abbrechen - - - Passwort wiederholen - - - E-Mail - - - Vorname - - - Nachname - - - Passwort - - - Telefon - - - Profil - - - Profildetails - - - Registrieren - - - Benutzer registrieren - - - Änderungen speichern - - - Benutzername - - - Benutzer registriert! - - - Benutzer registriert. Eine Bestätigungsemail wurde an die angegebene E-Mail-Adresse versendet. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.en.resx deleted file mode 100644 index 02e1e86..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.en.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Activate User? - - - Auto Confirm Email? - - - Cancel - - - Confirm Password - - - Email - - - First Name - - - Last Name - - - Password - - - Phone Number - - - Profile - - - Profile Details - - - Register - - - Register User - - - Save Changes - - - User Name - - - User Registered! - - - User Registered. Confirmation Mail has been delivered to the Mailbox. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.es.resx deleted file mode 100644 index ff8e8ee..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.es.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ¿Activar usuario? - - - ¿Autoconfirmar correo? - - - Cancelar - - - Confirmar contraseña - - - Correo - - - Nombre - - - Apellido - - - Contraseña - - - Teléfono - - - Perfil - - - Detalle del perfil - - - Registrar - - - Usuario registrado - - - Guardar cambios - - - Usuario - - - Usuario Registrado! - - - Usuario Registrado. Un correo de confirmación fue enviado a su casilla de correo. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.fr.resx deleted file mode 100644 index 3c2d06a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.fr.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Utilisateur actif ? - - - Confirmer automatiquement le courriel ? - - - Annuler - - - Confirmer le mot de passe - - - Courriel - - - Prénom - - - Nom - - - Mot de passe - - - Numéro de téléphone - - - Profil - - - Détails du profil - - - Inscrire - - - Inscrire l'utilisateur - - - Sauvegarder les changements. - - - Nom d'utilisateur - - - Utilisateur enregistré. - - - Utilisateur enregistré. Un courriel de confirmation a lui été envoyé. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.id.resx deleted file mode 100644 index b26268a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.id.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktifkan Pengguna? - - - Konfirmasi Email Otomatis? - - - Batal - - - Konfirmasi Sandi - - - Email - - - Nama Depan - - - Nama Belakang - - - Sandi - - - Nomor Telepon - - - Profil - - - Detail Profil - - - Daftar - - - Daftar Pengguna - - - Simpan Perubahan - - - User Name - - - Pengguna Terdaftar! - - - Pengguna Terdaftar. Email konfirmasi telah dikirim ke email Anda. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.it.resx deleted file mode 100644 index 2999209..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.it.resx +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Auto conferma E-Mail? - - - Annulla - - - Conferma password - - - Email - - - Nome - - - Cognome - - - Password - - - Telefono - - - Profilo - - - Dettagli profilo - - - Registrati - - - Registra utente - - - Salvare le modifiche - - - Nome utente - - - Utente registrato! - - - Utente registrato. Una mail di conferma è stata inviata alla vostra casella E-Mail. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.km.resx deleted file mode 100644 index 821eb89..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.km.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ធ្វើឱ្យអ្នកប្រើប្រាស់សកម្ម? - - - បញ្ជាក់អ៊ីមែលដោយស្វ័យប្រវត្តិ? - - - បោះបង់ - - - បញ្ជាក់ពាក្យសម្ងាត់ - - - អ៊ីមែល - - - នាមខ្លួន - - - នាមត្រកូល - - - ពាក្យសម្ងាត់ - - - លេខទូរស័ព្ទ - - - ប្រវត្តិរូប - - - ប្រវត្តិរូបលម្អិត - - - ចុះឈ្មោះ - - - ចុះឈ្មោះអ្នកប្រើប្រាស់ - - - រក្សាការកែប្រែ - - - ឈ្មោះអ្នកប្រើប្រាស់ - - - អ្នកប្រើប្រាស់ត្រូវបានចុះឈ្មោះរួចរាល់ - - - អ្នកប្រើប្រាស់ត្រូវបានចុះឈ្មោះរួចរាល់ សារអ៊ីម៉ែលបញ្ជាក់នឹងត្រូវផ្ញើទៅកាន់ប្រអប់សាររបស់អ្នក! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.nl.resx deleted file mode 100644 index 39a5449..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.nl.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gebruiker activeren? - - - E-mail automatisch bevestigen? - - - Annuleren - - - Wachtwoord bevestigen - - - Email - - - Voornaam - - - Achternaam - - - Wachtwoord - - - Telefoonnummer - - - Profiel - - - Profielgegevens - - - Registreren - - - Gebruiker registreren - - - Wijzigingen opslaan - - - Gebruikersnaam - - - Gebruiker geregistreerd! - - - Geregistreerde gebruiker. Bevestigingsmail is afgeleverd bij de mailbox. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ru.resx deleted file mode 100644 index 15c69df..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.ru.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Активировать пользователя? - - - Подтвердить email автоматически? - - - Отмена - - - Подтверждение пароля - - - Email - - - Имя - - - Фамилия - - - Пароль - - - Номер телефона - - - Профиль - - - Детали профиля - - - Зарегистрировать - - - Регистрация пользователя - - - Сохранить изменения - - - Username - - - Пользователь зарегистрирован - - - Пользователь зарегистрирован. Письмо для подтверждения будет отправлено по почте. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.sv.resx deleted file mode 100644 index 949f8d8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RegisterUserModal.sv.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktivera användare? - - - Bekräfta e-post automatiskt? - - - Avbryt - - - Bekräfta lösenord - - - E-post - - - Förnamn - - - Efternamn - - - Lösenord - - - Telefonnummer - - - Profil - - - Profil Detaljer - - - Registrera - - - Registrera användare - - - Spara ändringar - - - Användarnamn - - - Användare Registrerad! - - - Användare registrerad. Bekräftelsemeddelande har skickats till brevlådan. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ar.resx deleted file mode 100644 index cfc5c47..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ar.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - تأكيد كلمة المرور - - - بريد الالكتروني - - - أدخل البريد الإلكتروني لإعادة تعيين كلمة المرور - - - كلمه السر - - - إعادة تعيين كلمة المرور - - - لم يتم العثور على الرمز! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.de.resx deleted file mode 100644 index 00eb773..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.de.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Passwort bestätigen - - - E-Mail - - - E-Mail-Adresse eingeben um, das Passwort zurückzusetzen - - - Passwort - - - Passwort zurücksetzen - - - Token nicht gefunden! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.en.resx deleted file mode 100644 index 4e4a724..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.en.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirm Password - - - E-mail - - - Enter email for password reset - - - Password - - - Reset password - - - Token Not Found! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.es.resx deleted file mode 100644 index cf79b0c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.es.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirmar Contraseña - - - Correo - - - Ingrese correo para blanquear contraseña - - - Contraseña - - - Blanquear Contraseña - - - Token no encontrado! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.fr.resx deleted file mode 100644 index a38eed5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.fr.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirmer le mot de passe - - - Courriel - - - Entrez le courriel pour la réinitialisation du mot de passe - - - Mot de passe - - - Réinitialiser le mot de passe - - - Jeton introuvable ! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.id.resx deleted file mode 100644 index 4e4a724..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.id.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirm Password - - - E-mail - - - Enter email for password reset - - - Password - - - Reset password - - - Token Not Found! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.it.resx deleted file mode 100644 index 4e4a724..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.it.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirm Password - - - E-mail - - - Enter email for password reset - - - Password - - - Reset password - - - Token Not Found! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.km.resx deleted file mode 100644 index 895f21c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.km.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - លេខកូដសម្ងាត់បញ្ជាក់ - - - អ៊ីំម៉ែល - - - បញ្ចូលអ៊ីម៉ែលដើម្បីកំណត់លេខកូដសម្ងាត់ឡើងវិញ - - - លេខកូដសម្ងាត់ - - - កំណត់លេខកូដសម្ងាត់ឡើងវិញ - - - ធូឃីនរកមិនឃើញ! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.nl.resx deleted file mode 100644 index d1617f7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.nl.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Wachtwoord bevestigen - - - E-mail - - - Voer uw E-mail in voor het opnieuw instellen van het wachtwoord! - - - Wachtwoord - - - Wachtwoord opnieuw instellen - - - Token niet gevonden! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ru.resx deleted file mode 100644 index 47208bc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.ru.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Подтверждение пароля - - - E-mail - - - Введите email для сброса ппароля - - - Пароль - - - Сбросить пароль - - - Токен не найден! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.sv.resx deleted file mode 100644 index 4e4a724..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Reset.sv.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Confirm Password - - - E-mail - - - Enter email for password reset - - - Password - - - Reset password - - - Token Not Found! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ar.resx deleted file mode 100644 index ea2c146..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ar.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أضف دورًا - - - إلغاء - - - وصف - - - معرف الدور - - - اسم الدور - - - حفظ الدور - - - تحديث الدور - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.de.resx deleted file mode 100644 index 3ad22b6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.de.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Rolle hinzufügen - - - Abbrechen - - - Beschreibung - - - Rollen ID - - - Rollenname - - - Rolle speichern - - - Rolle aktualisieren - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.en.resx deleted file mode 100644 index a9dfc58..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.en.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Role - - - Cancel - - - Description - - - Role ID - - - Role Name - - - Save Role - - - Update Role - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.es.resx deleted file mode 100644 index 059eae4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.es.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Rol - - - Cancelar - - - Descripción - - - ID de Rol - - - Nombre de Rol - - - Guardar - - - Actualizar - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.fr.resx deleted file mode 100644 index 88f6a63..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.fr.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter un rôle - - - Annuler - - - Description - - - Identifiant du rôle - - - Nom du rôle - - - Sauvegarder le rôle - - - Mettre à jour le rôle - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.id.resx deleted file mode 100644 index ba2c181..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.id.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tambah Wewenang - - - Batal - - - Description - - - Wewenang berhasil dibuat! - - - ID Wewenang - - - Nama Wewenang - - - Simpan Wewenang - - - Perbarui Wewenang - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.it.resx deleted file mode 100644 index eba449c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.it.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Attivare l'utente? - - - Annulla - - - Description - - - Id ruolo - - - Nome ruolo - - - Salvare ruolo - - - Aggiorna ruolo - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.km.resx deleted file mode 100644 index eaa3005..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.km.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ថែមតួនាទី - - - បោះបង់ - - - ពិពណ៌នា - - - លេខសម្គាល់តួនាទី - - - ឈ្មោះតួនាទី - - - រក្សាទុកតួនាទី - - - ធ្វើបច្ចុប្បន្នភាពតួនាទី - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.nl.resx deleted file mode 100644 index 26ddbae..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.nl.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Rol toevoegen - - - Annuleren - - - Beschrijving - - - Rol-ID - - - Rolnaam - - - Rol opslaan - - - Rol bijwerken - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ru.resx deleted file mode 100644 index a66eebf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.ru.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить роль - - - Отмена - - - Описание - - - ID роли - - - Имя роли - - - Сохранить роль - - - Обновить роль - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.sv.resx deleted file mode 100644 index d01cb2e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/RoleModal.sv.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Lägg till roll - - - Avbryt - - - Description - - - Roll ID - - - Roll Namn - - - Spara Roll - - - Uppdatera Roll - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ar.resx deleted file mode 100644 index d40cc37..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ar.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - كل الأذونات - - - تطبيق - - - يحدها - - - كثيف - - - وصف - - - هنا يمكنك ترك تعليق لهذا الإذن للدور الحالي - - - إدارة الإذن - - - إدارة أذونات {0} {1} - - - اسم الإذن - - - ابحث عن أذونات - - - حالة - - - مخطط - - - نوع - - - تحديث أذونات الدور - - - سيتم حفظها فقط عند تحديد الإذن - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.de.resx deleted file mode 100644 index bc9a1e6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.de.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Alle Berechtigungen - - - Anwenden - - - Gerahmt - - - Schmal - - - Beschreibung - - - Hier kann ein Kommentar für diese Berechtigung der aktuellen Rolle hinterlassen werden - - - Berechtigungen verwalten - - - Verwalte {0} Berechtigungen von {1} - - - Berechtigungsname - - - Nach Berechtigungen suchen - - - Status - - - Gebändert - - - Typ - - - Rollenberechtigungen verwalten - - - Wird nur gespeichert wenn Berechtigung ausgewählt - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.en.resx deleted file mode 100644 index 83f81ed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.en.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - All Permissions - - - Apply - - - Bordered - - - Dense - - - Description - - - Here you can leave a comment for this permission for the current role - - - Manage Permission - - - Manage {0} {1}'s Permissions - - - Permission Name - - - Search For Permissions - - - Status - - - Striped - - - Type - - - Update Role Permissions - - - Will be saved only when selected Permission - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.es.resx deleted file mode 100644 index 358154c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.es.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Todos los Permisos - - - Aplicar - - - Bordeado - - - Denso - - - Descripción - - - Aquí puede dejar un comentario para este permiso para el rol actual - - - Administrar Permisos - - - Administrar los permisos de {0} {1} - - - Nombre del Permiso - - - Buscar Permisos - - - Estado - - - Rayado - - - Tipo - - - Actualizar los Permisos del Rol - - - Será guardado únicamente cuando se seleccione Permisos - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.fr.resx deleted file mode 100644 index 8b5380b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.fr.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Toutes les permissions - - - Appliquer - - - Avec bordures - - - Dense - - - Description - - - Vous pouvez laisser ici un commentaire pour expliquer la permission de ce rôle. - - - Gérer la permission - - - Gérer les permissions du rôle {0} {1} - - - Nom de la permission - - - Rechercher une permission - - - Statut - - - Rayé - - - Type - - - Mettre à jour les permissions du rôle - - - Va être sauvegardé seulement si la permission est sélectionnée - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.id.resx deleted file mode 100644 index 6698c6a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.id.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - All Permissions - - - Apply - - - Description - - - Here you can leave a comment for this permission for the current role - - - Pengaturan Izin - - - Pengaturan {0} {1} Izin - - - Nama Wewenang - - - Status - - - Tipe - - - Perbarui Izin Wewenang - - - Will be saved only when selected Permission - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.it.resx deleted file mode 100644 index 56b3c0d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.it.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tutti le autorizzazioni - - - Applica - - - Descrizione - - - Qui puoi lasciare un commento per questa autorizzazione per il ruolo corrente - - - Gestisci autorizzazione - - - Gestisci {0} {1} Autorizzazioni - - - Nome autorizzazioni - - - Status - - - Questa è una visualizzazione solo amministratore - - - Salva autorizzazioni - - - Aggiorna le autorizzazioni del ruolo - - - Saranno salvati solo i permessi selezionati - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.km.resx deleted file mode 100644 index 10fa383..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.km.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - សិទ្ធិទាំងអស់ - - - អនុវត្ត - - - ពិពណ៌នា - - - ទីនេះអ្នកអាចដាក់កំណត់សម្គាល់សិទ្ធិសម្រាប់តួនាទីមួយនេះបាន - - - គ្រង់គ្រងសិទ្ធិ - - - គ្រប់គ្រង {0} {1} សិទ្ធិ - - - ឈ្មោះសិទ្ធិ - - - ស្ថានភាព - - - ប្រភេទ - - - បច្ចុប្បន្នភាពសិទ្ធិរបស់តួនាទី - - - ត្រូវបានរក្សាទុកចំពោះសិទ្ធិដែលបានជ្រើសរើសតែប៉ុណ្ណោះ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.nl.resx deleted file mode 100644 index ac114dc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.nl.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Alle machtigingen - - - Toepassen - - - Grenst aan - - - Dicht - - - Beschrijving - - - Hier kunt u een opmerking achterlaten voor deze machtiging voor de huidige rol - - - Machtiging beheren - - - Machtigingen van {0} {1} beheren - - - Naam machtiging - - - Zoeken naar machtigingen - - - Status - - - Gestreept - - - Type - - - Rolmachtigingen bijwerken - - - Wordt alleen opgeslagen wanneer deze optie Is geselecteerd - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ru.resx deleted file mode 100644 index 752fc9c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.ru.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Все права - - - Применить - - - Обрамлённый - - - Компактный - - - Описание - - - Здесь вы можете оставить комментарий к этому разрешению для текущей роли - - - Управление правами - - - Управление правами {0} {1} - - - Имя права - - - Найти права - - - Статус - - - Чередующийся - - - Тип - - - Обновить права роли - - - Будет сохранено только при выбранном разрешении - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.sv.resx deleted file mode 100644 index f45df6a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/RolePermissions.sv.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - All Permissions - - - Apply - - - Description - - - Here you can leave a comment for this permission for the current role - - - Hantera Behörighet - - - Hantera {0} {1} Behörigheter - - - Permission Name - - - Status - - - Typ - - - Uppdatera Rollbehörigheter - - - Will be saved only when selected Permission - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ar.resx deleted file mode 100644 index fd3def1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ar.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - يحدها - - - إنشاء - - - حذف - - - هل تريد حذف الدور بالمعرف {0}؟ - - - كثيف - - - وصف - - - يحرر - - - المعرف - - - إدارة الإذن - - - إدارة الأدوار. - - - لا توجد إجراءات مسموح بها - - - إعادة تحميل - - - دور - - - الأدوار - - - البحث عن الأدوار ... - - - مخطط - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.de.resx deleted file mode 100644 index dab2a04..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.de.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Gerahmt - - - Hinzufügen - - - Löschen - - - Möchtest du die Rolle mit der Id {0} löschen? - - - Schmal - - - Beschreibung - - - Bearbeiten - - - Id - - - Berechtigungen verwalten - - - Rollen verwalten. - - - Keine Aktionen erlaubt - - - Neu laden - - - Rolle - - - Rollen - - - Nach Rollen suchen... - - - Gebändert - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.en.resx deleted file mode 100644 index 0fa1138..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.en.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Bordered - - - Create - - - Delete - - - Do you want to delete the role with Id {0}? - - - Dense - - - Description - - - Edit - - - Id - - - Manage Permission - - - Manage Roles. - - - No Allowed Actions - - - Reload - - - Role - - - Roles - - - Search for Roles... - - - Striped - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.es.resx deleted file mode 100644 index 1d2ab77..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.es.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Bordeado - - - Crear - - - Borrar - - - ¿Deseas borrar el rol con el Id {0}? - - - Denso - - - Descripción - - - Editar - - - Id - - - Administrar Permisos - - - Gestionar Roles - - - Acciones no Permitidas - - - Recargar - - - Rol - - - Roles - - - Buscar Roles - - - Rayado - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.fr.resx deleted file mode 100644 index 24b39cc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.fr.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Avec bordures - - - Créer - - - Supprimer - - - Voulez-vous supprimer le rôle d'identifiant {0}? - - - Dense - - - Description - - - Éditer - - - Identifiant - - - Gérer la permission - - - Gérer les rôles - - - Aucune action autorisée - - - Recharger - - - Rôle - - - Rôles - - - Rechercher des rôles - - - Rayé - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.id.resx deleted file mode 100644 index 7c09d81..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.id.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tindakan - - - Tambah - - - Hapus - - - Hapus wewenang dengan Id {0}? - - - Description - - - Sunting - - - Id - - - Atur Perizinan - - - Atur Wewenang. - - - No Allowed Actions - - - Muat Ulang - - - Wewenang - - - Wewenang - - - Cari Wewenang... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.it.resx deleted file mode 100644 index fbd73a3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.it.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Crea - - - Elimina - - - Vuoi eliminare il ruolo con Id {0}? - - - Description - - - Modifica - - - Id - - - Gestisci autorizzazione - - - Gestisci ruoli. - - - No Allowed Actions - - - Ricarica - - - Ruolo - - - Ruoli - - - Ricerca ruoli... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.km.resx deleted file mode 100644 index eca7c51..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.km.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មុខងារ - - - បង្កើត - - - លុប - - - តើអ្នកចង់លុបតួនាទីជាមួយលេខសម្គាល់ {0} ទេ? - - - ពិពណ៌នា - - - កែប្រែ - - - លេខកូដ - - - គ្រប់គ្រងតួនាទី - - - សកម្មភាពមិនត្រូវបានអនុញ្ញាត្ត - - - ផ្ទុកឡើងវិញ - - - តួនាទី - - - ស្វែងរកតួនាទី ... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.nl.resx deleted file mode 100644 index e64ccda..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.nl.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Aanmaken - - - Verwijderen - - - Wilt u de rol verwijderen met Id {0}? - - - Beschrijving - - - Bewerken - - - Id - - - Rollen beheren. - - - Geen toegestane acties - - - Herladen - - - Rollen - - - Rollen zoeken... - - - Grenst aan - - - Dicht - - - Machtiging beheren - - - Rol - - - Gestreept - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ru.resx deleted file mode 100644 index 283844d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.ru.resx +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Обрамлённый - - - Создать - - - Удалить - - - Вы действительно хотите удалить роль с Id {0}? - - - Компактный - - - Описание - - - Редактировать - - - Id - - - Управление правами - - - Управление ролями. - - - Нет доступных действий - - - Перезагрузить - - - Роль - - - Роли - - - Поиск ролей... - - - Чередующийся - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.sv.resx deleted file mode 100644 index 0b9f79f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Roles/Roles.sv.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Åtgärder - - - Skapa - - - Radera - - - Vill du ta bort rollen med Id {0}? - - - Description - - - Redigera - - - Id - - - Hantera Behörighet - - - Hantera Roller. - - - No Allowed Actions - - - Ladda Om - - - Roll - - - Roller - - - Sök efter Roll... - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ar.resx deleted file mode 100644 index 9a71a7f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ar.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - نشيط؟ - - - إعدادات المسؤول. - - - البريد الإلكتروني - - - الاسم الأول - - - الكنية - - - رقم الهاتف - - - الملف الشخصي - - - حساب عام - - - حفظ التغييرات - - - هذا هو العرض المسؤول فقط. - - - تم تحديث حالة المستخدم. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.de.resx deleted file mode 100644 index 7ae4716..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.de.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktiv? - - - Administrator Einstellungen - - - E-Mail - - - Vorname - - - Nachname - - - Telefon - - - Profil - - - Öffentliches Profil - - - Änderungen speichern - - - Diese Ansicht ist nur für den Administrator. - - - Benutzerstatus aktualisiert. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.en.resx deleted file mode 100644 index f98093b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.en.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Active? - - - Administrator Settings. - - - E-Mail - - - First Name - - - Last Name - - - Phone Number - - - Profile - - - Public Profile - - - Save Changes - - - This is an Administrator Only View. - - - Updated User Status. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.es.resx deleted file mode 100644 index 6acdc56..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.es.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ¿Activo? - - - Configuraciones de Administrador - - - Correo - - - Nombre - - - Apellido - - - Teléfono - - - Perfil - - - Perfil Público - - - Guardar cambios - - - Esta es una vista solo de Administrador - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.fr.resx deleted file mode 100644 index 4ce1ad8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.fr.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actif ? - - - Paramètres pour les administateurs. - - - Courriel - - - Prénom - - - Nom - - - Numéro de téléphone - - - Profil - - - Profil public - - - Sauvegarder les changements - - - Ceci est visible uniquement par les administrateurs. - - - Statut de l'utilisateur mis à jour. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.id.resx deleted file mode 100644 index 56bde38..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.id.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktif? - - - Pengaturan Administrator. - - - E-Mail - - - Nama Depan - - - Nama Belakang - - - Nomor Telepon - - - Profil - - - Profil Publik - - - Simpan Perubahan - - - Ini adalah tampilan khusus Administrator. - - - Perbarui Status Pengguna. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.it.resx deleted file mode 100644 index 3bea79d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.it.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Attivato ? - - - Impostazioni amministratore. - - - E-Mail - - - Nome - - - Cognome - - - Telefono - - - Profilo - - - Profilo pubblico - - - Salvare le modifiche - - - Questa è una visualizzazione solo amministratore. - - - Aggiorna status utente. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.km.resx deleted file mode 100644 index fb3e505..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.km.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - សកម្ម? - - - ការកំណត់អ្នកគ្រប់គ្រង - - - អ៊ីមែល - - - នាមខ្លួន - - - នាមត្រកូល - - - លេខទូរស័ព្ទ - - - ប្រវត្តិរូប - - - ប្រវត្តិរូបសាធារណៈ - - - រក្សាទុកការផ្លាស់ប្តូរ - - - ផ្ទាំងសម្រាប់តែអ្នកប្រើប្រាស់មានសិទ្ធិជារដ្ឋបាលប្រព័ន្ធទេ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.nl.resx deleted file mode 100644 index 17c4cd3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.nl.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actief? - - - Beheerdersinstellingen - - - E-mail - - - Voornaam - - - Achternaam - - - Telefoonnummer - - - Profiel - - - Openbaar profiel - - - Wijzigingen opslaan - - - Dit is alleen een weergave voor beheerders. - - - Bijgewerkte gebruikersstatus. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ru.resx deleted file mode 100644 index ca0349c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.ru.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Активный? - - - Настройки администратора. - - - E-Mail - - - Имя - - - Фамилия - - - Номер телефона - - - Профиль - - - Публичные данные профиля - - - Сохранить изменения - - - Эта стрица доступна только администраторам. - - - Статус пользователя обновлён. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.sv.resx deleted file mode 100644 index ad47191..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserProfile.sv.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktiv? - - - Administratörsinställningar. - - - E-post - - - Förnamn - - - Efternamn - - - Telefonnummer - - - Profil - - - Offentlig profil - - - Spara ändringar - - - Detta är enbart en administratörsvy. - - - Uppdaterad användarstatus. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ar.resx deleted file mode 100644 index 74663cc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ar.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bordered - - - Dense - - - Manage {0} {1}'s Roles - - - Role Name - - - Roles Updated! - - - Search For User Roles - - - Status - - - Striped - - - Update User Roles - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.de.resx deleted file mode 100644 index cd38ab3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.de.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gerahmt - - - Schmal - - - Rollen von {0} {1}'s verwalten - - - Rollenname - - - Rollen aktualisiert! - - - Nach Benutzerrollen suchen - - - Status - - - Gebändert - - - Nutzerrolle aktualisieren - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.en.resx deleted file mode 100644 index 74663cc..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.en.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bordered - - - Dense - - - Manage {0} {1}'s Roles - - - Role Name - - - Roles Updated! - - - Search For User Roles - - - Status - - - Striped - - - Update User Roles - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.es.resx deleted file mode 100644 index f4b8b24..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.es.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bordeado - - - Denso - - - Descripción - - - Administrar Roles de {0} {1} - - - Nombre del Rol - - - Roles actualizados! - - - Buscar por Rol de Usuario - - - Estado - - - Rayado - - - Actualizar Roles de Usuario - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.fr.resx deleted file mode 100644 index e56749a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.fr.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Avec bordures - - - Dense - - - Gérer les rôles de {0} {1} - - - Nom du rôle - - - Rôles mis à jour - - - Rechercher parmis les rôles de l'utilisateur - - - Statut - - - Rayé - - - Mettre à jour les rôles de l'utilisateur - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.id.resx deleted file mode 100644 index 5015c9e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.id.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Pengaturan {0} {1} Wewenang - - - Nama Wewenang - - - Wewenang Diperbarui! - - - Status - - - Perbarui Wewenang Pengguna - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.it.resx deleted file mode 100644 index ac5b7c0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.it.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Manage {0} {1}'s Roles - - - Nome ruolo - - - Ruoli aggiornati! - - - Stato - - - Aggiorna ruoli utente - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.km.resx deleted file mode 100644 index 706e0a6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.km.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Manage {0} {1}'s Roles - - - ឈ្មោះតួនាទី - - - តួនាទីត្រូវបានធ្វើបច្ចុប្បន្នភាព! - - - ស្ថានភាព - - - បច្ចុប្បន្នភាពតួនាទីរបស់អ្នកប្រើប្រាស់ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.nl.resx deleted file mode 100644 index e515e39..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.nl.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Rollen van {0} {1} beheren - - - Rolnaam - - - Rollen bijgewerkt! - - - Status - - - Gebruikersrollen bijwerken - - - Grenst aan - - - Dicht - - - Zoeken naar gebruikersrollen - - - Gestreept - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ru.resx deleted file mode 100644 index a934c03..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.ru.resx +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Обрамлённый - - - Компактный - - - Управление Ролями {0} {1} - - - Имя роли - - - Роли обновлены! - - - Поиск ролей пользователя - - - Статус - - - Чередующийся - - - Обновить роли пользователя - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.sv.resx deleted file mode 100644 index 4963a5f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/UserRoles.sv.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hantera {0} {1} Roller - - - Rollnamn - - - Roller uppdaterade! - - - Status - - - Uppdatera användarroller - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ar.resx deleted file mode 100644 index 09b0624..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ar.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - نشيط - - - يحدها - - - إنشاء - - - كثيف - - - بريد الالكتروني - - - تأكيد البريد الإلكتروني - - - تصدير - - - تم تصدير المستخدمين الذين تمت تصفيتهم - - - الاسم الأول - - - الكنية - - - إدارة الأدوار - - - ادارة المستخدمين - - - لا توجد إجراءات مسموح بها - - - غير مسموح. - - - رقم الهاتف - - - تسجيل مستخدم جديد - - - إعادة تحميل - - - البحث عن المستخدمين - - - مخطط - - - اسم االمستخدم - - - المستخدمون - - - تصدير المستخدمين - - - عرض الصفحة الشخصية - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.de.resx deleted file mode 100644 index 48abf2c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.de.resx +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Aktiv - - - Gerahmt - - - Passwort bestätigen - - - Hinzufügen - - - Schmal - - - E-Mail - - - E-Mail bestätigt - - - Export - - - Gefilterte Benutzer exportiert - - - Vorname - - - Nachname - - - Rollen verwalten - - - Nutzer verwalten - - - Keine Aktionen erlaubt - - - Nicht erlaubt. - - - Passwort - - - Telefonnummer - - - Neuen Nutzer anlegen - - - Neu laden - - - Nach Benutzern suchen - - - Gebändert - - - Benutzername - - - Nutzer - - - Benutzer exportiert - - - Profil anzeigen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.en.resx deleted file mode 100644 index 2251438..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.en.resx +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Active - - - Bordered - - - Confirm Password - - - Create - - - Dense - - - Email - - - Email Confirmation - - - Export - - - Filtered Users exported - - - First Name - - - Last Name - - - Manage Roles - - - Manage Users - - - No Allowed Actions - - - Not Allowed. - - - Password - - - Phone Number - - - Register New User - - - Reload - - - Search For Users - - - Striped - - - User Name - - - Users - - - Users exported - - - View Profile - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.es.resx deleted file mode 100644 index 9a9793a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.es.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Activo - - - Bordeado - - - Crear - - - Denso - - - Correo - - - Confirmación de correo - - - Exportar - - - Usuarios Filtrados exportados - - - Nombre - - - Apellido - - - Gestionar Roles - - - Gestionar Usuarios - - - Acciones no Permitidas - - - No Permitido - - - Teléfono - - - Nuevo usuario - - - Recargar - - - Buscar usuarios - - - Rayado - - - Nombre de Usuario - - - Usuarios - - - Usuarios exportados - - - Ver perfil - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.fr.resx deleted file mode 100644 index 771937f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.fr.resx +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Actif - - - Créer - - - Courriel - - - Confirmation du courriel - - - Exporter - - - Utilisateurs filtrés exportés - - - Prénom - - - Nom - - - Gérer les rôles - - - Gérer les utilisateurs - - - Aucune action autorisée - - - Enregistrer un nouvel utilisateur - - - Recharger - - - Rechercher des utilisateurs - - - Utilisateurs - - - Utilisateurs exportés - - - Voir le profil - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.id.resx deleted file mode 100644 index 4b1f5dd..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.id.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tindakan - - - Aktif - - - Tambah Pengguna - - - Email - - - Konfirmasi Email - - - Export - - - Filtered Users exported - - - Nama Depan - - - Nama Belakang - - - Atur Wewenang - - - Atur Pengguna - - - No Allowed Actions - - - Tidak Diizinkan. - - - Daftar Pengguna Baru - - - Muat Ulang - - - Cari Pengguna - - - Pengguna - - - Users exported - - - Lihat Profil - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.it.resx deleted file mode 100644 index 7d50b0c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.it.resx +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Attiva - - - Conferma Password - - - Crea - - - Email - - - Conferma E-Mail - - - Export - - - Filtered Users exported - - - Nome - - - Cognome - - - Gestisci ruoli - - - Gestisci utenti - - - No Allowed Actions - - - Non autorizzato. - - - Password - - - Numero di telefono - - - Numero di telefono - - - Registra nuovo utente - - - Ricarica - - - Ricerca utenti - - - Nome utente - - - Nome utente - - - Utenti - - - Users exported - - - Vedi profilo - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.km.resx deleted file mode 100644 index 7e26532..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.km.resx +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មុខងារ - - - សកម្ម - - - បង្កើត - - - អ៊ីម៉ែល - - - អ៊ីម៉ែលបញ្ជាក់ - - - នាំចេញ - - - ច្រោះអ្នកប្រើប្រាស់បាននាំចេញ - - - នាមខ្លួន - - - នាមត្រកូល - - - កំណត់សិទ្ធិអ្នកប្រើប្រាស់ - - - កំណត់អ្នកប្រើប្រាស់ - - - សកម្មភាពមិនអនុញ្ញាត្ត - - - ចុះឈ្មោះអ្នកប្រើប្រាស់ថ្មី - - - ផ្ទុកឡើងវិញ - - - ស្វែងរកអ្នកប្រើប្រាស់ - - - អ្នកប្រើប្រាស់ - - - អ្នកប្រើប្រាស់បាននាំចេញ - - - បង្ហាញព័ត៌មានផ្ទាល់ខ្លួន - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.nl.resx deleted file mode 100644 index 80ee914..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.nl.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Actief - - - Aanmaken - - - Email - - - Bevestiging per e-mail - - - Exporteren - - - Gefilterde gebruikers geëxporteerd - - - Voornaam - - - Achternaam - - - Rollen beheren - - - Gebruikers beheren - - - Geen toegestane acties - - - Nieuwe gebruiker registreren - - - Herladen - - - Gebruikers zoeken - - - Gebruikers - - - Gebruikers geëxporteerd - - - Profiel weergeven - - - Grenst aan - - - Dicht - - - Niet toegestaan. - - - Telefoonnummer - - - Gestreept - - - Gebruikersnaam - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ru.resx deleted file mode 100644 index 9b83555..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.ru.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Активный - - - Обрамлённый - - - Создать - - - Компактный - - - Email - - - Email подтверждён - - - Экспорт в Excel - - - Отфильтрованные пользователи экспортированы - - - Имя - - - Фамилия - - - Управление ролями - - - Управление пользователями - - - Нет доступных действий - - - Не разрешено. - - - Номер телефона - - - Зарегистрировать нового пользователя - - - Перезагрузить - - - Поиск пользователя... - - - Чередующийся - - - UserName - - - Пользователи - - - Пользователи экспортированы - - - Посмотреть профиль - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.sv.resx deleted file mode 100644 index bdc6cd6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Identity/Users/Users.sv.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Åtgärder - - - Aktiv - - - Skapa - - - E-post - - - E-post Bekräftelse - - - Export - - - Filtered Users exported - - - Förnamn - - - Efternamn - - - Hantera Roller - - - Hantera Användare - - - No Allowed Actions - - - Inte Tillåtet. - - - Registrera ny användare - - - Ladda om - - - Sök efter användare - - - Användare - - - Users exported - - - Visa Profil - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.de.resx deleted file mode 100644 index e998e26..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.de.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor WASM Vorlage - - - Erstellt mit dem Besten von - - - Kompatibel mit - - - Komponentenbibliothek - - - Falls du irgendwo steckenbleiben solltest, oder Fragen zu dieser Implementierung hast, habe ich eine Schnellstartanleitung für dich erstellt. - - - Anleitung lesen - - - Version 1.0 - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.en.resx deleted file mode 100644 index 14ddac7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.en.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor WASM Boilerplate - - - Built with the goodness of - - - Compatible with - - - Component Library - - - In case you are stuck anywhere or have any queries regarding this implementation, I have compiled a Quick Start Guide for you reference. - - - Read The Guide - - - Version 1.0 - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.it.resx deleted file mode 100644 index cb76ac0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Index.it.resx +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Blazor WASM Boilerplate - - - Sviluppato con l'ultilizzo di componenti della libreria - - - Compatibile con - - - Component Library - - - Nel caso in cui tu sia bloccato ovunque o hai domande riguardanti questa implementazione, ho compilato una guida rapida per il tuo riferimento. - - - GUIDA - - - Versione 1.0 - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ar.resx deleted file mode 100644 index c32c8b3..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ar.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أضف مستند - - - الغاء - - - وصف - - - نوع المستند - - - تنزيل - - - رقم المعرف - - - عام؟ - - - حفظ - - - عنوان - - - تحديث - - - تحديث المستند - - - رفع - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.de.resx deleted file mode 100644 index 5c863a4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.de.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dokument hinzufügen - - - Abbrechen - - - Beschreibung - - - Dokumenttyp - - - Herunterladen - - - Id - - - Öffentlich? - - - Speichern - - - Titel - - - Aktualisieren - - - Dokument aktualisieren - - - Hochladen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.en.resx deleted file mode 100644 index 87f6df1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.en.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Document - - - Cancel - - - Description - - - Document Type - - - Download - - - Id - - - Is Public? - - - Save - - - Title - - - Update - - - Update Document - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.es.resx deleted file mode 100644 index dc71795..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.es.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Documento - - - Cancelar - - - Descripción - - - Tipo de Documento - - - Descargar - - - Id - - - ¿Es Público? - - - Guardar - - - Título - - - Actualizar - - - Actualizar Documento - - - Subir - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.fr.resx deleted file mode 100644 index 2e1cc02..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.fr.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter un document - - - Annuler - - - Description - - - Type du document - - - Télécharger - - - Identifiant - - - Est public ? - - - Sauvegarder - - - Titre - - - Mettre à jour - - - Mettre à jour le document - - - Téléverser - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.id.resx deleted file mode 100644 index afa6f30..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.id.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tambah Dokumen - - - Batal - - - Deskripsi - - - Document Type - - - Unduh - - - Id - - - Dokumen Publik? - - - Simpan - - - Judul - - - Perbarui - - - Perbarui Dokumen - - - Unggah - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.it.resx deleted file mode 100644 index 6c14e3b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.it.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aggiungi documento - - - Annulla - - - Descrizione - - - Document Type - - - Download - - - Id - - - È pubblico? - - - Salva - - - Titolo - - - Aggiorna - - - Aggiorna Documento - - - Carica - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.km.resx deleted file mode 100644 index 0797109..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.km.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ថែមឯកសារ - - - បោះបង់ - - - ការពិពណ៌នា - - - ប្រភេទឯកសារ - - - ទាញយក - - - លេខកូដសម្គាល់ - - - ជាសាធារណះ? - - - រក្សាទុក - - - ចំណងជើង - - - បច្ចុប្បន្នភាព - - - បច្ចុប្បន្នភាពឯកសារ - - - ផ្ទុកឡើង - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.nl.resx deleted file mode 100644 index 3da7669..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.nl.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Document toevoegen - - - Annuleren - - - Beschrijving - - - Documenttype - - - Downloaden - - - Id - - - Is het openbaar? - - - Opslaan - - - Titel - - - Update - - - Document bijwerken - - - Uploaden - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ru.resx deleted file mode 100644 index 4da98f0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.ru.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить документ - - - Отмена - - - Описание - - - Тип документа - - - Скачать - - - Id - - - Публичный? - - - Сохранить - - - Заголовок - - - Обновить - - - Обновить документ - - - Загрузить - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.sv.resx deleted file mode 100644 index e23d6b5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentModal.sv.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Lägg till dokument - - - Avbryt - - - Beskrivning - - - Document Type - - - Ladda ner - - - Id - - - Är Offentlig? - - - Spara - - - Rubrik - - - Uppdatera - - - Uppdatera Dokument - - - Ladda Upp - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ar.resx deleted file mode 100644 index 909c248..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ar.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Document Type - - - الغاء - - - وصف - - - رقم المعرف - - - اسم - - - حثظ - - - تحديث - - - تحديث موع المستند - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.de.resx deleted file mode 100644 index 4b9bf26..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.de.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dokumenttyp hinzufügen - - - Abbrechen - - - Beschreibung - - - Id - - - Name - - - Speichern - - - Aktualisieren - - - Dokumenttyp aktualisieren - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.en.resx deleted file mode 100644 index 8b60e1c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.en.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Document Type - - - Cancel - - - Description - - - Id - - - Name - - - Save - - - Update - - - Update Document Type - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.es.resx deleted file mode 100644 index 647a528..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.es.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Tipo de Documento - - - Cancelar - - - Descripción - - - Id - - - Nombre - - - Guardar - - - Actualizar - - - Actualizar Tipo de Documento - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.fr.resx deleted file mode 100644 index a0b980d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.fr.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter un type de document - - - Annuler - - - Description - - - Identifiant - - - Nom - - - Sauvegarder - - - Mettre à jour - - - Mettre à jour le type de document - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.km.resx deleted file mode 100644 index bd07f65..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.km.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ថែមប្រភេទឯកសារ - - - បោះបង់ - - - ពិពណ៌នា - - - លេខកូដ - - - ឈ្មោះ - - - រក្សាទុក - - - បច្ចុប្បន្នភាព - - - បច្ចុប្បន្នភាពប្រភេទឯកសារ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.nl.resx deleted file mode 100644 index cb353bf..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.nl.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Documenttype toevoegen - - - Annuleren - - - Beschrijving - - - Id - - - Naam - - - Opslaan - - - Update - - - Documenttype bijwerken - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ru.resx deleted file mode 100644 index 0f7290e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/AddEditDocumentTypeModal.ru.resx +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить тип документа - - - Отмена - - - Описание - - - Id - - - Наименование - - - Сохранить - - - Обновить - - - Обновить тип документа - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ar.resx deleted file mode 100644 index ae36281..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ar.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - يحدها - - - تصفح المستندات المتاحة. - - - إنشاء - - - تاريخ الإنشاء - - - حذف - - - حذف المحتوى - - - كثيف - - - وصف - - - متجر المستندات - - - نوع الوثيقة - - - تحميل - - - يحرر - - - المعرف - - - عام - - - إدارة السمات الموسعة - - - لا توجد إجراءات مسموح بها - - - صاحب - - - إعادة تحميل - - - بحث - - - مخطط - - - عنوان - - - أنت - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.de.resx deleted file mode 100644 index d7f094f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.de.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Gerahmt - - - Verfügbare Dokumente durchsuchen. - - - Erstellen - - - Erstellungsdatum - - - Löschen - - - Inhalt löschen - - - Schmal - - - Beschreibung - - - Dokumentenspeicher - - - Dokumenttyp - - - Herunterladen - - - Bearbeiten - - - Id - - - Öffentlich - - - Erweiterte Attribute verwalten - - - Keine Aktionen erlaubt - - - Eigentümer - - - Neu laden - - - Suche - - - Gebändert - - - Titel - - - Du - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.en.resx deleted file mode 100644 index 68cb0bb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.en.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Bordered - - - Browse Available Documents. - - - Create - - - Date Created - - - Delete - - - Delete Content - - - Dense - - - Description - - - Document Store - - - Document Type - - - Download - - - Edit - - - Id - - - Is Public - - - Manage Extended Attributes - - - No Allowed Actions - - - Owner - - - Reload - - - Search - - - Striped - - - Title - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.es.resx deleted file mode 100644 index 74654a0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.es.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Bordeado - - - Navegar Documentos Disponibles. - - - Crear - - - Fecha de Creación - - - Borrar - - - ¿Desea eliminar el registro? - - - Denso - - - Descripción - - - Almacén de Documentos - - - Tipo de Documento - - - Descarga - - - Editar - - - Id - - - Es Público - - - Administrar Atributos Extendidos - - - Acciones no Permitidas - - - Propietario - - - Recargar - - - Buscar - - - Rayado - - - Título - - - Ud. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.fr.resx deleted file mode 100644 index 5247805..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.fr.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Avec bordures - - - Parcourir les documents disponibles. - - - Créer - - - Date de création - - - Supprimer - - - Supprimer l'élément - - - Dense - - - Description - - - Stockage de documents - - - Type de document - - - Télécharger - - - Éditer - - - Identifiant - - - Est public - - - Gérer les attributs étendus - - - Aucune action autorisée - - - Propriétaire - - - Recharger - - - Rechercher - - - Rayé - - - Titre - - - vous - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.id.resx deleted file mode 100644 index 4586f7d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.id.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tindakan - - - Telusuri Dokumen yang Tersedia. - - - Tambah Dokumen - - - Tanggal Dibuat - - - Hapus - - - Delete Content - - - Deskripsi - - - Penyimpanan Dokumen - - - Document Type - - - Unduh - - - Sunting - - - Id - - - Dokumen Publik - - - Manage Extended Attributes - - - No Allowed Actions - - - Pemilik - - - Muat Ulang - - - Cari - - - Judul - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.it.resx deleted file mode 100644 index 51932c2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.it.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Sfoglia i documenti disponibili. - - - Crea - - - Data di Creazione - - - Elimina - - - Delete Content - - - Descrizione - - - Archivio documenti - - - Document Type - - - Download - - - Modifica - - - Id - - - E' Pubblico - - - Manage Extended Attributes - - - No Allowed Actions - - - Proprietario - - - Ricarica - - - Cerca - - - Titolo - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.km.resx deleted file mode 100644 index d1d4b53..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.km.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - សកម្មភាព - - - រកមើលឯកសារមានទាំងអស់ - - - បង្កើត - - - កាលបរិឆ្ឆេទបង្កើត - - - លុប - - - អត្ថបទត្រូវបានលុប - - - ការពិពណ៌នា - - - តំបន់រក្សាទុកឯកសារ - - - ប្រភេទឯកសារ - - - ទាញយក - - - កែប្រែ - - - លេខកូដសម្ងាត់ - - - ធ្វើអោយជាសាធារណះ - - - គ្រប់គ្រង ជួរឈរបន្ថែម - - - សកម្មភាពមិនបានអនុញ្ញាត្ត - - - ម្ខាស់ - - - ផ្ទុកឡើងវិញ - - - ស្វែងរក - - - ចំណងជើង - - - អ្នក - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.nl.resx deleted file mode 100644 index 5f962f4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.nl.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Grenst aan - - - Blader door beschikbare documenten. - - - Aanmaken - - - Datum gemaakt - - - Verwijderen - - - Inhoud verwijderen - - - Dicht - - - Beschrijving - - - Documentopslag - - - Documenttype - - - Downloaden - - - Bewerken - - - Id - - - Is openbaar - - - Uitgebreide kenmerken beheren - - - Geen toegestane acties - - - Eigenaar - - - Herladen - - - Zoeken - - - Gestreept - - - Titel - - - jij - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ru.resx deleted file mode 100644 index 6f251e4..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.ru.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Обрамлённый - - - Обзор доступных документов. - - - Создать - - - Дата создания - - - Удалить - - - Удалить контент - - - Компактный - - - Описание - - - Хранилище документов - - - Тип документа - - - Скачать - - - Редактировать - - - Id - - - Публичный - - - Управление атрибутами - - - Нет доступных действий - - - Владелец - - - Перезагрузить - - - Поиск документов - - - Чередующийся - - - Заголовок - - - Вы - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.sv.resx deleted file mode 100644 index 869cdea..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentStore.sv.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Åtgärder - - - Bläddra i tillgängliga dokument. - - - Skapa - - - Skapat datum - - - Radera - - - Delete Content - - - Beskrivning - - - Dokument Förvaring - - - Document Type - - - Ladda Ner - - - Ändra - - - Id - - - Är Offentlig - - - Manage Extended Attributes - - - No Allowed Actions - - - Ägare - - - Ladda Om - - - Sök - - - Rubrik - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ar.resx deleted file mode 100644 index d317b38..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ar.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - يحدها - - - إنشاء - - - حذف - - - حذف المحتوى - - - كثيف - - - وصف - - - أنواع المستندات - - - أنواع المستندات التي تم تصديرها - - - يحرر - - - يصدر - - - تم تصدير أنواع المستندات التي تمت تصفيتها - - - المعرف - - - إدارة أنواع المستندات. - - - اسم - - - لا توجد إجراءات مسموح بها - - - إعادة تحميل - - - ابحث عن أنواع المستندات - - - مخطط - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.de.resx deleted file mode 100644 index 930df1f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.de.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Gerahmt - - - Erstellen - - - Löschen - - - Inhalt löschen - - - Schmal - - - Beschreibung - - - Dokumenttypen - - - Dokumenttypen exportiert - - - Bearbeiten - - - Export - - - Gefilterte Dokumenttypen exportiert - - - Id - - - Dokumenttypen verwalten. - - - Name - - - Keine Aktionen erlaubt - - - Neu laden - - - Nach Dokumenttypen suchen - - - Gebändert - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.en.resx deleted file mode 100644 index ba73b34..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.en.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Bordered - - - Create - - - Delete - - - Delete Content - - - Dense - - - Description - - - Document Types - - - Document Types exported - - - Edit - - - Export - - - Filtered Document Types exported - - - Id - - - Manage Document Types. - - - Name - - - No Allowed Actions - - - Reload - - - Search for Document Types - - - Striped - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.es.resx deleted file mode 100644 index 527d617..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.es.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Bordeado - - - Crear - - - Borrar - - - ¿Desea borrar el registro? - - - Denso - - - Descripción - - - Tipos de Documentos - - - Tipos de Documentos exportados - - - Editar - - - Exportar - - - Tipos de Documentos Filtrados exportados - - - Id - - - Administar Tipos de Documentos. - - - Nombre - - - Acciones no Permitidas - - - Recargar - - - Buscar Tipos de Documentos - - - Rayado - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.fr.resx deleted file mode 100644 index 19ca0fb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.fr.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Avec bordures - - - Création - - - Suppression - - - Supprimer l'élément - - - Dense - - - Description - - - Types de documents - - - Types de documents exportés - - - Éditer - - - Exporter - - - Types de documents filtrés exportés - - - Identifiants - - - Gérer les types de documents - - - Nom - - - Aucune action autorisée - - - Recharger - - - Rechercher parmis les types de documents - - - Rayé - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.km.resx deleted file mode 100644 index 2ab117c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.km.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - សកម្មភាព - - - ព្រុំប្រទល់ - - - បង្កើត - - - លុប - - - លុបខ្លឹមសារ - - - ពង្រួម - - - ពិពណ៌នា - - - ប្រភេទឯកសារ - - - ប្រភេទឯកសារនាំចេញ - - - កែប្រែ - - - នាំចេញ - - - ច្រោះប្រភេទឯកសារនាំចេញ - - - លេខកូដ - - - គ្រប់គ្រងប្រភេទឯកសារ - - - ឈ្មោះ - - - សកម្មភាពមិនអនុញ្ញាត្ត - - - ផ្ទុកឡើងវិញ - - - ស្វែងរកប្រភេទឯកសារ - - - ឆ្លាស់ពណ៌ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.nl.resx deleted file mode 100644 index 65e8af1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.nl.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Grenst aan - - - Aanmaken - - - Verwijderen - - - Inhoud verwijderen - - - Dicht - - - Beschrijving - - - Documenttypen - - - Geëxporteerde documenttypen - - - Bewerken - - - Exporteren - - - Gefilterde documenttypen geëxporteerd - - - Id - - - Documenttypen beheren. - - - Naam - - - Geen toegestane acties - - - Herladen - - - Zoeken naar documenttypen - - - Gestreept - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ru.resx deleted file mode 100644 index 1d369bb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Misc/DocumentTypes.ru.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Обрамлённый - - - Создать - - - Удалить - - - Удалить контент - - - Компактный - - - Описание - - - Типы документов - - - Типы документов экспортированы - - - Редактировать - - - Экспорт в Excel - - - Отфильтрованные типы документов экспортированы - - - Id - - - Управление типами документов. - - - Наименование - - - Нет доступных действий - - - Перезагрузить - - - Поиск типов документов... - - - Чередующийся - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.de.resx deleted file mode 100644 index f0beede..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.de.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktiv - - - E-Mail-Adresse des Administrators - - - Name - - - Gültig bis - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.en.resx deleted file mode 100644 index 383c6a7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.en.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Active - - - Admin Email - - - Name - - - Valid Upto - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.it.resx deleted file mode 100644 index 356ba8f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/Tenants.it.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Attivo - - - Email (Adm) - - - Nome - - - Valito fino a - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.de.resx deleted file mode 100644 index 75eeef9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.de.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Abbrechen - - - Aktuelles Ablaufdatum - - - Neues Ablaufdatum - - - Aktualisieren - - - Abonnement aktualisieren - - - Abonnement aktualisiert. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx deleted file mode 100644 index c788ea0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.en.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Current Expiry Date - - - New Expiry Date - - - Upgrade - - - Upgrade Subscription - - - Upgraded Subscription. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.it.resx deleted file mode 100644 index 87d54c5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Multitenancy/UpgradeSubscriptionModal.it.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annulla - - - Data di scadenza - - - Nuova data di scadenza - - - Aggiornamento - - - Aggiorna Subscription - - - Subscription Aggiornata. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ar.resx deleted file mode 100644 index 2bacb36..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ar.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - مسارات المراجعة - - - تم تصدير مسارات التدقيق - - - يحدها - - - الغاء - - - مسح - - - تتأثر الأعمدة - - - تاريخ - - - النطاق الزمني للبحث - - - كثيف - - - تفاصيل معرف الممر - - - تصدير إلى Excel - - - تم تصدير مسارات التدقيق المصفاة - - - إخفاء - - - المعرف - - - محلي - - - قيم جديدة - - - موافق - - - المفتاح الأساسي - - - ابحث عن مسارات - - - ابحث في القيم الجديدة - - - ابحث في القيم القديمة - - - ابحث في القيم القديمة - - - عرض - - - مخطط - - - اسم الجدول - - - تفاضيل - - - نوع - - - التوقيت العالمي - - - أنشطتك الأخيرة. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.de.resx deleted file mode 100644 index f16282e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.de.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Prüfpfade - - - Prüfpfade aktualisiert - - - Gerahmt - - - Abbrechen - - - Leeren - - - Betroffene Spalten - - - Datum - - - Zeitraum für Suche - - - Schmal - - - Details zur Prüfpfad-Id - - - Zu Excel exportieren - - - Gefilterte Prüfpfade exported - - - Verstecken - - - Id - - - Lokal - - - Neue Werte - - - Ok - - - Alte Werte - - - Primärschlüssekl - - - Nach Prüfpfaden suchen - - - In neuen Werten suchen - - - In alten Werten suchen - - - Anzeigen - - - Gebändert - - - Tabellenname - - - Prüfpfad-Details - - - Typ - - - UTC - - - Deine letzten Aktivitäten. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.en.resx deleted file mode 100644 index c6b6a01..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.en.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Audit Trails - - - Audit Trails exported - - - Bordered - - - Cancel - - - Clear - - - Columns Affected - - - Date - - - Date Range For Searching - - - Dense - - - Details for Trail ID - - - Export To Excel - - - Filtered Audit Trails exported - - - Hide - - - Id - - - Local - - - New Values - - - Ok - - - Old Values - - - Primary Key - - - Search for Trails - - - Search in New Values - - - Search in Old Values - - - Show - - - Striped - - - Table Name - - - Trail Details - - - Type - - - UTC - - - Your Recent Activities. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.es.resx deleted file mode 100644 index a363e1c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.es.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Registro de Auditoría - - - Registro de Auditoría exportado - - - Bordeado - - - Cancelar - - - Limpiar - - - Columnas Afectadas - - - Fecha - - - Rango de Fechas para Búsqueda - - - Denso - - - Detalles para Registro ID - - - Exportar a Excel - - - Registros de Auditoría Filtrados exportados - - - Ocultar - - - Id - - - Local - - - Nuevos Valores - - - Ok - - - Valores Anteriores - - - Clave Primaria - - - Buscar Registros - - - Buscar en Valores Nuevos - - - Buscar en Valores Anteriores - - - Mostrar - - - Rayado - - - Nombre de Tabla - - - Detalle de Registro - - - Tipo - - - UTC - - - Su actividad reciente. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.fr.resx deleted file mode 100644 index f2029e1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.fr.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Pistes d'audit - - - Pistes d'audit exportées - - - Avec bordures - - - Annulées - - - Effacer - - - Colonnes affectées - - - Date - - - Plage de dates pour la recherche - - - Dense - - - Détail de la piste d'identifiant - - - Exporter vers Excel - - - Pistes d'audit filtrés exportées - - - Cacher - - - Identifiant - - - Local - - - Nouvelles valeurs - - - OK - - - Anciennes valeurs - - - Clé primaire - - - Rechercher des pistes - - - Rechercher parmis les nouvelles valeurs - - - Rechercher parmis les anciennes valeurs - - - Afficher - - - Rayé - - - Nom de la table - - - Détails de la piste - - - Type - - - UTC - - - Activité récente - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.it.resx deleted file mode 100644 index c3eab91..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.it.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Registro Attività - - - Audit Trails exported - - - Colonne Interessate - - - Data - - - Dettagli per ID Attività - - - Esporta in Excel - - - Filtered Audit Trails exported - - - Nascondi - - - Id - - - Locale - - - Nuovi valori - - - Vecchi valori - - - Chiave Primaria - - - Cerca Attività - - - Mostra - - - Nome Tabella - - - Dettagli Attività - - - Tipo - - - UTC - - - Le tue Attività Recenti. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.km.resx deleted file mode 100644 index d3a1341..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.km.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - កំណត់ត្រាប្រព័ន្ធ - - - កំណត់ត្រាប្រព័ន្ធ នាំចេញ - - - ជួរឈរដែលបានកែប្រែ - - - កាលបរិច្ឆេទ - - - កំណត់ត្រាលម្អិតសម្រាប់កំណត់ត្រាដែលមានលេខសម្ងាល់ - - - បម្លែងជា​ Excel - - - ច្រោះកំណត់ត្រាប្រព័ន្ធនាំចេញ - - - បិទ - - - លេខកូដសម្ងាល់ - - - ខាងក្នុង - - - តម្លៃថ្មី - - - តម្លៃចាស់ - - - លេខសម្គាល់គោល - - - ស្វែងរកកំណត់ត្រាប្រព័ន្ធ - - - បង្ហាញ - - - ឈ្មោះតារាង - - - កំណត់ត្រាលម្អិត - - - ប្រភេទ - - - ម៉ោងសកល - - - សកម្មភាពរបស់អ្នកចុងក្រោយ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.nl.resx deleted file mode 100644 index b84bf72..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.nl.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Audit Trails - - - Audit Trails geëxporteerd - - - Grenst aan - - - Annuleren - - - Duidelijk - - - Betrokken kolommen - - - Datum - - - Datumbereik voor zoeken - - - Dicht - - - Details voor Trail ID - - - Exporteren naar Excel - - - Gefilterde controletrails geëxporteerd - - - Verbergen - - - Id - - - Lokaal - - - Nieuwe Waarden - - - OK - - - Oude Waarden - - - Primary Key - - - Zoeken naar paden - - - Zoeken in nieuwe waarden - - - Zoeken in oude waarden - - - Tonen - - - Gestreept - - - Table Naam - - - Trail Details - - - Type - - - UTC - - - Uw recente activiteiten. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ru.resx deleted file mode 100644 index 583705f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.ru.resx +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Журналы аудита - - - Журналы аудита экспортированы - - - Обрамлённый - - - Отмена - - - Очистить - - - Затронутые стобцы - - - Дата - - - Диапазон дат для поиска - - - Компактный - - - Детали для записи с ID - - - Экспорт в Excel - - - Отфильтрованные журналы аудита экспортированы - - - Скрыть - - - Id - - - Локальное - - - Новые значения - - - Ok - - - Старые значения - - - Первичный ключ - - - Поиск в журналах - - - Искать в новых значениях - - - Искать в старых значениях - - - Показать - - - Чередующийся - - - Имя таблицы - - - Детали записи в журнале - - - Тип - - - UTC - - - Ваша текущая активность. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.sv.resx deleted file mode 100644 index 3b95b8b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/AuditLogs.sv.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Granskningsspår - - - Audit Trails exported - - - Berörda kolumner - - - Datum - - - Detaljer för Spår ID - - - Exportera till Excel - - - Filtered Audit Trails exported - - - Göm - - - Id - - - Lokalt - - - Nya Värden - - - Gamla Värden - - - Primärnyckel - - - Sök efter spår - - - Visa - - - Tabellnamn - - - Spår Detaljer - - - Typ - - - UTC - - - Dina senaste aktiviteter. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ar.resx deleted file mode 100644 index a803152..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ar.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أبريل - - - أغسطس - - - العلامات التجارية - - - الرسوم البيانية قادمة قريبا - - - لوحة القيادة - - - ديسمبر - - - سمات المستند الممتدة - - - أنواع المستندات - - - وثائق - - - فبراير - - - يناير - - - يوليو - - - يونيو - - - مارس - - - مايو - - - نوفمبر - - - أكتوبر - - - منتجات - - - رؤى سريعة. - - - تحديثات الوقت الحقيقي & رؤى مع SignalR. - - - الأدوار المسجلة - - - المستخدمون المسجلون - - - سبتمبر - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.de.resx deleted file mode 100644 index a20fd84..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.de.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Apr - - - Aug - - - Marken - - - Diagramme kommen bald... - - - Dashboard - - - Dez - - - Erweiterte Dokumentattribute - - - Dokumenttypen - - - Dokumente - - - Feb - - - Jan - - - Jul - - - Jun - - - Mär - - - Mai - - - Nov - - - Okt - - - Produkte - - - Schnelle Einblicke. - - - Echtzeitaktualisierungen & Einblicke mit SignalR. - - - Registrierte Rollen - - - Registrierte Benutzer - - - Sep - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.en.resx deleted file mode 100644 index 0ec5a3f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.en.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Apr - - - Aug - - - Brands - - - Charts comming soon ish... - - - Dashboard - - - Dec - - - Document Extended Attributes - - - Document Types - - - Documents - - - Feb - - - Jan - - - Jul - - - Jun - - - Mar - - - May - - - Nov - - - Oct - - - Products - - - Quick Insights. - - - Realtime Updates & Insights with SignalR. - - - Registered Roles - - - Registered Users - - - Sep - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.es.resx deleted file mode 100644 index e278606..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.es.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Abr - - - Ago - - - Marcas - - - Próximamente gráficos... - - - Panel de Control - - - Dic - - - Atributos Extendidos de Documentos - - - Tipos de Documentos - - - Documentos - - - Feb - - - Ene - - - Jul - - - Jun - - - Mar - - - May - - - Nov - - - Oct - - - Productos - - - Perspectivas Rápidas. - - - Actualizaciones en Tiempo Real & Perspectivas con SignalR. - - - Roles Registrados - - - Usuarios Registrados - - - Sep - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.fr.resx deleted file mode 100644 index 819beeb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.fr.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Avr. - - - Août - - - Marques - - - Tableau de bord - - - Déc. - - - Attributs étendus des documents - - - Types de documents - - - Documents - - - Févr. - - - Janv. - - - Juill. - - - Juin - - - Mars - - - Mai - - - Nov. - - - Oct. - - - Produits - - - Aperçus rapides. - - - Mises à jour en temps réel & aperçus avec SignalR. - - - Roles enregistrés - - - Utilisateurs enregistrés - - - Sept. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.id.resx deleted file mode 100644 index c7a7fed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.id.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Merek - - - Grafik akan segera hadir... - - - Dasbor - - - Document Extended Attributes - - - Document Types - - - Documents - - - Produk - - - Wawasan Singkat. - - - Wewenang Terdaftar - - - Pengguna Terdaftar - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.it.resx deleted file mode 100644 index 316467e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.it.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Prodotti - - - Utenti registrati - - - Marche - - - Grafici... coming soon... - - - Dashboard - - - Approfondimenti rapidi. - - - Ruoli registrati - - - Documenti - - - Tipi di documenti - - - Document Extended Attributes - - - Aggiornamenti in tempo reale e approfondimenti con SignalR - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.km.resx deleted file mode 100644 index 809c44a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.km.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ម៉ាក - - - ផ្ទាំងឆាតនឹងមកដល់ឆាប់ៗនេះ - - - ផ្ទាំងទិន្នន័យ - - - ជួរឈរឯកសារ - - - ប្រភេទឯកសារ - - - ឯកសារ - - - ផលិតផល - - - ផ្ទាំងទិន្នន័យសង្ខេប - - - ចំនួនតួនាទីសរុប - - - ចំនួនអ្នកប្រើប្រាស់សរុប - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.nl.resx deleted file mode 100644 index d5e9851..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.nl.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Apr - - - Aug - - - Merken - - - Grafieken binnenkort ish... - - - Dashboard - - - Dec - - - Uitgebreide kenmerken van document - - - Documenttypen - - - Documenten - - - Februari - - - Jan - - - Jul - - - Jun - - - Mar - - - Mei - - - Nov - - - Oct - - - Producten - - - Snelle inzichten. - - - Realtime updates en inzichten met SignalR. - - - Geregistreerde rollen - - - Geregistreerde gebruikers - - - Sep - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ru.resx deleted file mode 100644 index fab4703..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.ru.resx +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Апр - - - Авг - - - Брендов - - - Графики скоро появятся ... - - - Dashboard - - - Дек - - - Расширенных атрибутов документов - - - Типов документов - - - Документов - - - Фев - - - Янв - - - Июл - - - Июн - - - Мрт - - - Май - - - Ноя - - - Окт - - - Продуктов - - - Быстрая информация. - - - Обновления и аналитика в реальном времени с помощью SignalR. - - - Ролей - - - Пользователей - - - Сен - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.sv.resx deleted file mode 100644 index 25c864d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Pages/Personal/Dashboard.sv.resx +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Varumärken - - - Diagram kommer ganska snart... - - - Instrumentpanel - - - Document Extended Attributes - - - Document Types - - - Documents - - - Produkter - - - Snabba insikter. - - - Registrerade Roller - - - Registrerade Användare - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ar.resx deleted file mode 100644 index 5642e31..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ar.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - إضافة الخصائص الإضافية - - - إلغاء - - - مسح - - - تاريخ - - - عشري - - - وصف - - - رقم المعرف - - - المعرف الخارجي - - - مجموعة - - - المعرف - - - مفعل؟ - - - Json - - - مفتاح - - - موافق - - - حفظ - - - نص - - - وقت - - - نوع - - - تحديث - - - تحديث الخصائص الإضافية - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.de.resx deleted file mode 100644 index 7c7cd54..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.de.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erweiterte Attribute hinzufügen - - - Abbrechen - - - Leeren - - - Datum - - - Dezimal - - - Beschreibung - - - Objekt-Id - - - Externe Id - - - Gruppe - - - Id - - - Ist Aktiv - - - Json - - - Schlüssel - - - Ok - - - Speichern - - - Text - - - Zeit - - - Typ - - - Aktualisieren - - - Erweiterte Attribute aktualieren - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.en.resx deleted file mode 100644 index 9e1f7c0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.en.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Extended Attribute - - - Cancel - - - Clear - - - Date - - - Decimal - - - Description - - - Entity Id - - - External Id - - - Group - - - Id - - - Is Active - - - Json - - - Key - - - Ok - - - Save - - - Text - - - Time - - - Type - - - Update - - - Update Extended Attribute - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.es.resx deleted file mode 100644 index e061dff..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.es.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Agregar Atributo Extendido - - - Cancelar - - - Limpiar - - - Fecha - - - Decimal - - - Descripción - - - Id de Entidad - - - Id Externo - - - Grupo - - - Id - - - ¿Está Activo? - - - Json - - - Clave - - - Ok - - - Guardar - - - Texto - - - Hora - - - Tipo - - - Actualizar - - - Actualizar Atributos Extendidos - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.fr.resx deleted file mode 100644 index 0cbb20b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.fr.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ajouter un attribut étendu - - - Annuler - - - Effacer - - - Date - - - Décimal - - - Description - - - Identifiant de l'entité - - - Identifiant externe - - - Groupe - - - Identifiant - - - Est actif - - - Json - - - Clé - - - OK - - - Sauvegarder - - - Texte - - - Heure - - - Type - - - Mettre à jour - - - Mettre à jour l'attribut étendu - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.id.resx deleted file mode 100644 index 9e1f7c0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.id.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Extended Attribute - - - Cancel - - - Clear - - - Date - - - Decimal - - - Description - - - Entity Id - - - External Id - - - Group - - - Id - - - Is Active - - - Json - - - Key - - - Ok - - - Save - - - Text - - - Time - - - Type - - - Update - - - Update Extended Attribute - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.it.resx deleted file mode 100644 index ff5ace2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.it.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Extended Attribute - - - Annulla - - - Pulisci - - - Date - - - Decimal - - - Description - - - Entity Id - - - External Id - - - Group - - - Id - - - IsActive - - - Json - - - Key - - - Ok - - - Salva - - - Text - - - Time - - - Type - - - Aggiorna - - - Update Extended Attribute - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.km.resx deleted file mode 100644 index 184bb9f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.km.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បន្ធែមជួរឈរ - - - បោះបង់ - - - សម្អាត - - - Date - - - Decimal - - - ពិពណ៌នា - - - Entity Id - - - External Id - - - ក្រុម - - - Id - - - គឺសកម្ម - - - Json - - - Key - - - អូខេ - - - រក្សាទុក - - - Text - - - Time - - - ប្រភេទ - - - បច្ចុប្បន្នភាព - - - បច្ចុប្បន្នភាពជួរឈរបន្ថែម - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.nl.resx deleted file mode 100644 index 1a8594e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.nl.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Uitgebreid kenmerk toevoegen - - - Annuleren - - - Duidelijk - - - Datum - - - Decimaal - - - Beschrijving - - - Entiteits-id - - - Externe id - - - Groep - - - Id - - - Is actief - - - Json - - - Sleutel - - - OK - - - Opslaan - - - Sms - - - Tijd - - - Type - - - Update - - - Uitgebreid kenmerk bijwerken - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ru.resx deleted file mode 100644 index 934224d..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.ru.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Добавить расширенный атрибут - - - Отмена - - - Очистить - - - Дата - - - Числовое значение - - - Описание - - - Id сущности - - - Внешний Id - - - Группа - - - Id - - - Активный? - - - Json значение - - - Ключ - - - Ок - - - Сохранить - - - Текстовое значение - - - Время - - - Тип - - - Обновить - - - Обновить расширенный атрибут - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.sv.resx deleted file mode 100644 index 9e1f7c0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/AddEditExtendedAttributeModalLocalization.sv.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Add Extended Attribute - - - Cancel - - - Clear - - - Date - - - Decimal - - - Description - - - Entity Id - - - External Id - - - Group - - - Id - - - Is Active - - - Json - - - Key - - - Ok - - - Save - - - Text - - - Time - - - Type - - - Update - - - Update Extended Attribute - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ar.resx deleted file mode 100644 index ca79862..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ar.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - أجراءات - - - كل المجموعات - - - Bordered - - - إنشاء - - - حذف - - - هل تريد حذف السمة الموسعة؟ - - - كثيف - - - وصف - - - تعديل - - - معرف الكينونة - - - تصدير - - - الخصائص الإضافية التي تم تصديرها - - - معرف خارجي - - - تم تصدير السمات الموسعة التي تمت تصفيتها - - - مجموعة - - - رقم المعرف - - - تضمين حقول الكينونة (تصدير) - - - نشط؟ - - - مفتاح - - - إدارة الخصائص الإضافية {0} - - - إدارة سمات {0} {1} الموسعة - - - لا توجد إجراءات مسموح بها - - - غير مسموح. - - - مجموعة مختارة فقط (تصدير) - - - مالك - - - إعادة تحميل - - - ابحث عن {0} السمات الموسعة - - - مخطط - - - نوع - - - قيمة - - - أنت - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.de.resx deleted file mode 100644 index f7b7111..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.de.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Alle Gruppen - - - Gebändert - - - Erstellen - - - Löschen - - - Erweiterte Attribute löschen? - - - Schmal - - - Beschreibung - - - Bearbeiten - - - Objekt-Id - - - Export - - - Erweiterte Attribute exportiert - - - Externe Id - - - Gefilterte erweiterte Attribute exportiert - - - Gruppe - - - Id - - - Objektfelder einschließen (Export) - - - Ist Aktiv - - - Schlüssel - - - Verwalte {0} erweiterte Attribute - - - Verwalte erweiterte {0} Attribute von {1} - - - No Allowed Actions - - - Not Allowed. - - - Only Selected Group (Export) - - - Owner - - - Reload - - - Search For {0} Extended Attributes - - - Striped - - - Type - - - Value - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.en.resx deleted file mode 100644 index 4270e95..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.en.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - All Groups - - - Bordered - - - Create - - - Delete - - - Delete Extended Attribute? - - - Dense - - - Description - - - Edit - - - Entity Id - - - Export - - - Extended Attributes exported - - - External Id - - - Filtered Extended Attributes exported - - - Group - - - Id - - - Include Entity fields (Export) - - - Is Active - - - Key - - - Manage {0} Extended Attributes - - - Manage {0} {1}'s Extended Attributes - - - No Allowed Actions - - - Not Allowed. - - - Only Selected Group (Export) - - - Owner - - - Reload - - - Search For {0} Extended Attributes - - - Striped - - - Type - - - Value - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.es.resx deleted file mode 100644 index 1cfea1f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.es.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acciones - - - Todos los Grupos - - - Bordeado - - - Crear - - - Borrar - - - ¿Eliminar Atributo Extendido? - - - Denso - - - Descripción - - - Editar - - - Id de Entidad - - - Exportar - - - Atributos Extendidos exportados - - - Id Externo - - - Atributos Extendidos Filtrados exportados - - - Grupo - - - Id - - - Incluir campos de Entidad (Exportar) - - - ¿Está Activo? - - - Clave - - - Administrar Atributos Extendidos ({0}) - - - Administrar los Atributos Extendidos de: {0}-{1} - - - Acciones no Permitidas - - - No Permitido. - - - Solo el Grupo Seleccionado (Exportar) - - - Propietario - - - Recargar - - - Buscar Atributos Extendidos ({0}) - - - Rayado - - - Tipo - - - Valor - - - Ud. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.fr.resx deleted file mode 100644 index 706054b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.fr.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Tous les groupes - - - Avec bordure - - - Créer - - - Supprimer - - - Supprimer l'attribut étendu ? - - - Dense - - - Description - - - Éditer - - - Identifiant de l'entité - - - Exporter - - - Attributs étendus exportés - - - Identifiant externe - - - Attributs étendus filtrés exportés - - - Groupe - - - Identifiant - - - Inclure tous les champs (export) - - - Est actif - - - Clé - - - Gérer les attributs étendus de {0} - - - Gérer les attributs étendus de {0} {1} - - - Aucune action autorisée - - - Non autorisé. - - - Seulement les groupes sélectionné (export) - - - Propriétaire - - - Recharger - - - Rechercher les attributs étendus de {0} - - - Rayé - - - Type - - - Valeur - - - vous - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.id.resx deleted file mode 100644 index 4270e95..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.id.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - All Groups - - - Bordered - - - Create - - - Delete - - - Delete Extended Attribute? - - - Dense - - - Description - - - Edit - - - Entity Id - - - Export - - - Extended Attributes exported - - - External Id - - - Filtered Extended Attributes exported - - - Group - - - Id - - - Include Entity fields (Export) - - - Is Active - - - Key - - - Manage {0} Extended Attributes - - - Manage {0} {1}'s Extended Attributes - - - No Allowed Actions - - - Not Allowed. - - - Only Selected Group (Export) - - - Owner - - - Reload - - - Search For {0} Extended Attributes - - - Striped - - - Type - - - Value - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.it.resx deleted file mode 100644 index 4fb941f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.it.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - All Groups - - - Bordered - - - Crea - - - Cancella - - - Delete Extended Attribute? - - - Dense - - - Descrizione - - - Modifica - - - Entity Id - - - Esporta - - - Extended Attributes exported - - - External Id - - - Filtered Extended Attributes exported - - - Gruppo - - - Id - - - Include Entity fields (Export) - - - Attivo - - - Key - - - Manage {0} Extended Attributes - - - Manage {0} {1}'s Extended Attributes - - - Nessuna azione è consentita - - - Non consentito - - - Solo il gruppo selezionato (Export) - - - Owner - - - Ricarica - - - Search For {0} Extended Attributes - - - Striped - - - Tipo - - - Valore - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.km.resx deleted file mode 100644 index a88e072..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.km.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - សកម្មភាព - - - ក្រុមទាំងអស់ - - - ព្រុំព្រទល់ - - - បង្កើត - - - លុប - - - លុបជួរឈរបន្ថែម? - - - បង្រួម - - - ពិពណ៌នា - - - កែប្រែ - - - Entity Id - - - នាំចេញ - - - ជួរឈរបន្ថែមនាំចេញ - - - External Id - - - ច្រោះជួរឈរបន្ថែមនាំចេញ - - - ក្រុម - - - Id - - - Include Entity fields (Export) - - - គឺសកម្ម - - - Key - - - Manage {0} Extended Attributes - - - Manage {0} {1}'s Extended Attributes - - - មិនត្រូវបានអនុញ្ញាត - - - មិនអនុញ្ញាត្ត - - - Only Selected Group (Export) - - - ម្ចាស់ - - - ផ្ទុកឡើងវិញ - - - Search For {0} Extended Attributes - - - Striped - - - ប្រភេទ - - - តម្លៃ - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.nl.resx deleted file mode 100644 index b54e93e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.nl.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Acties - - - Alle groepen - - - Grenst aan - - - Aanmaken - - - Verwijderen - - - Uitgebreid kenmerk verwijderen? - - - Dicht - - - Beschrijving - - - Bewerken - - - Entiteits-id - - - Exporteren - - - Geëxporteerde uitgebreide kenmerken - - - Externe id - - - Gefilterde uitgebreide kenmerken geëxporteerd - - - Groep - - - Id - - - Entiteitsvelden opnemen (exporteren) - - - Is actief - - - Sleutel - - - Uitgebreide kenmerken beheren {0} - - - Uitgebreide kenmerken van {0} {1} beheren - - - Geen toegestane acties - - - Niet toegestaan. - - - Alleen geselecteerde groep (exporteren) - - - Eigenaar - - - Herladen - - - Zoeken naar {0} uitgebreide kenmerken - - - Gestreept - - - Type - - - Waarde - - - jij - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ru.resx deleted file mode 100644 index 7ec3a74..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.ru.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Действия - - - Все группы - - - Обрамлённый - - - Создать - - - Удалить - - - Удалить расширенный атрибут? - - - Компактный - - - Описание - - - Редактировать - - - Id сущности - - - Экспорт в Excel - - - Расширенные атрибуты экспортированы - - - Внешний Id - - - Отфильтрованные расширенные атрибуты экспортированы - - - Группа - - - Id - - - Включить поля сущности (Экспорт) - - - Активный? - - - Ключ - - - Управление расширенными атрибутами {0} - - - Управление расширенными атрибутами {1} с Id = {0} - - - Нет доступных действий - - - Нет доступа. - - - Только выбранную группу (Экспорт) - - - Владелец - - - Перезагрузить - - - Поиск расширенных атрибутов {0} - - - Чередующийся - - - Тип - - - Значение - - - Вы - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.sv.resx deleted file mode 100644 index 4270e95..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ExtendedAttributesLocalization.sv.resx +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - All Groups - - - Bordered - - - Create - - - Delete - - - Delete Extended Attribute? - - - Dense - - - Description - - - Edit - - - Entity Id - - - Export - - - Extended Attributes exported - - - External Id - - - Filtered Extended Attributes exported - - - Group - - - Id - - - Include Entity fields (Export) - - - Is Active - - - Key - - - Manage {0} Extended Attributes - - - Manage {0} {1}'s Extended Attributes - - - No Allowed Actions - - - Not Allowed. - - - Only Selected Group (Export) - - - Owner - - - Reload - - - Search For {0} Extended Attributes - - - Striped - - - Type - - - Value - - - you - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ar.resx deleted file mode 100644 index 23dee1b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ar.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - إلغاء - - - استيراد - - - الرجاء رفع ملف اكسل! - - - رفع - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.de.resx deleted file mode 100644 index fd884a0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.de.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Abbrechen - - - Importieren - - - Bitte lade eine Excel-Datei hoch! - - - Hochladen - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.en.resx deleted file mode 100644 index 7d6c332..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.en.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Import - - - Please upload excel file! - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.es.resx deleted file mode 100644 index cb3b505..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.es.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancelar - - - Importar - - - Por favor subar el archivo Excel! - - - Subir - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.fr.resx deleted file mode 100644 index eece67a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.fr.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuler - - - Importer - - - Merci de téléverser un fichier excel ! - - - Téléverser - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.id.resx deleted file mode 100644 index 7d6c332..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.id.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Import - - - Please upload excel file! - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.it.resx deleted file mode 100644 index 7d6c332..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.it.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Import - - - Please upload excel file! - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.km.resx deleted file mode 100644 index 7d6c332..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.km.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Import - - - Please upload excel file! - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.nl.resx deleted file mode 100644 index 719c7eb..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.nl.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuleren - - - Importeren - - - Upload excel-bestand! - - - Uploaden - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ru.resx deleted file mode 100644 index 6cbf650..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.ru.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Отмена - - - Импорт - - - Пожалуйста, загрузите excel файл! - - - Загрузить - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.sv.resx deleted file mode 100644 index 7d6c332..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/ImportExcelModal.sv.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Import - - - Please upload excel file! - - - Upload - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ar.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ar.resx deleted file mode 100644 index 5ab4357..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ar.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - English - - - French - - - German - - - Indonesia - - - Italian - - - Khmer - - - Russian - - - Spanish - - - Swedish - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.de.resx deleted file mode 100644 index 0b8081b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.de.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Niederländisch - Nederland - - - Englisch - English - - - Französisch - Français - - - Deutsch - - - Indonesisch - bahasa Indonesia - - - Italienisch - Italiano - - - Khmer - ខ្មែរ - - - Russisch - русский - - - Spanisch - Español - - - Schwedisch - Svenska - - - Arabisch - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.en.resx deleted file mode 100644 index 5ab4357..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.en.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - English - - - French - - - German - - - Indonesia - - - Italian - - - Khmer - - - Russian - - - Spanish - - - Swedish - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.es.resx deleted file mode 100644 index 3c1f165..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.es.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Holandés - Holanda - - - Inglés - - - Francés - - - Alemán - - - Indonesia - - - Italiano - - - Jemer - - - Ruso - - - Español - - - Sueco - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.fr.resx deleted file mode 100644 index 09a7e86..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.fr.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - Anglais - - - Français - - - Allemand - - - Indonésie - - - Italien - - - Jemer - - - Russe - - - Espanol - - - Suédois - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.id.resx deleted file mode 100644 index e728993..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.id.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - Inggris - - - Perancis - - - Jerman - - - Indonesiano - - - Italia - - - Khmer - - - Rusia - - - Orang Spanyol - - - Orang Swedia - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.it.resx deleted file mode 100644 index 001bf81..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.it.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - Inglese - - - Francese - - - Tedesco - - - Indonesiano - - - Italiano - - - Khmer - - - Russo - - - Spagnolo - - - Svedese - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.nl.resx deleted file mode 100644 index 5ab4357..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.nl.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dutch - Netherlands - - - English - - - French - - - German - - - Indonesia - - - Italian - - - Khmer - - - Russian - - - Spanish - - - Swedish - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ru.resx deleted file mode 100644 index 9290d77..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Components/LanguageSelector.ru.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Голландский - Нидерланды - - - Английский - - - Французский - - - Немецкий - - - Индонезия - - - Итальянский - - - Кхмерский - - - Русский - - - Испанский - - - Шведский - - - عربي - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.en.resx deleted file mode 100644 index ad5c1a2..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.en.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Confirm - - - Delete Confirmation - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.es.resx deleted file mode 100644 index 83a4d45..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.es.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancelar - - - Confirmar - - - Confirmación de borrado - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.fr.resx deleted file mode 100644 index 8aa2a1a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.fr.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuler - - - Confirmer - - - Confirmation de suppression - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.id.resx deleted file mode 100644 index 33fd900..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.id.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Batal - - - Konfirmasi - - - Konfirmasi Hapus - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.it.resx deleted file mode 100644 index a529978..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.it.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annulla - - - Conferma - - - Conferma eliminazione - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.km.resx deleted file mode 100644 index 819d5ff..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.km.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បោះបង់ - - - បញ្ជាក់ - - - បញ្ជាក់លុប - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.nl.resx deleted file mode 100644 index d9fdfce..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.nl.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuleren - - - Bevestig - - - Verwijder Bevestiging - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.ru.resx deleted file mode 100644 index 7b147f7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.ru.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Отмена - - - Подтвердить - - - Подтвержедние удаления - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.sv.resx deleted file mode 100644 index 5a9a09f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/DeleteConfirmation.sv.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Avbryt - - - Bekräfta - - - Radera bekräftelse - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.en.resx deleted file mode 100644 index 2bb3110..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.en.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancel - - - Logout Confirmation - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.es.resx deleted file mode 100644 index fa3257a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.es.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cancelar - - - Confirmación de Salida - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.fr.resx deleted file mode 100644 index 8cc6a39..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.fr.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuler - - - Confirmation de déconnexion - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.id.resx deleted file mode 100644 index 077f91a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.id.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Batal - - - Konfirmasi Keluar - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.it.resx deleted file mode 100644 index d2222c8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.it.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annulla - - - Conferma Logout - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.km.resx deleted file mode 100644 index 8438a5c..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.km.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - បោះបង់ - - - បញ្ជាក់ពីការចាកចេញពីប្រព័ន្ធ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.nl.resx deleted file mode 100644 index 01f52ed..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.nl.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Annuleren - - - Afmeldbevestiging - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.ru.resx deleted file mode 100644 index 68a6131..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.ru.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Отмена - - - Подтверждение выхода - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.sv.resx deleted file mode 100644 index 7ad76d8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/Logout.sv.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Avbryt - - - Bekräftelse För Utloggning - - \ No newline at end of file diff --git "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217DeleteConfirmation.ar.resx" "b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217DeleteConfirmation.ar.resx" deleted file mode 100644 index 7172f86..0000000 --- "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217DeleteConfirmation.ar.resx" +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الغاء - - - تأكيد - - - تأكيد الحذف - - \ No newline at end of file diff --git "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217Logout.ar.resx" "b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217Logout.ar.resx" deleted file mode 100644 index c23d9df..0000000 --- "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/Dialogs/\342\200\217\342\200\217Logout.ar.resx" +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الغاء - - - تأكيد الخروج - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.de.resx deleted file mode 100644 index 819ef5a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.de.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Kauf mir einen Kaffee! - - - Chat? - - - Community - - - Facebook-Gruppe - - - Facebook-Seite - - - Repository forken - - - Ausloggen - - - Möchtest du dich wirklich ausloggen? - - - MudBlazor-Dokumentation - - - Schnellstartanleitung - - - Token aktualisiert. - - - Ressourcen - - - Support - - - Umschalten zum dunklen Modus - - - Rechts nach Links / Links nach Rechts umschalten - - - Willkommen {0} - - - Du wurdest ausgeloggt, weil die Berechtigungen einer deine Rollen aktualisiert wurden. - - - Du wurdest ausgeloggt, weil der Benutzer mit deinem Token gelöscht wurde. - - - Bis bist ausgeloggt. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.en.resx deleted file mode 100644 index ef2c7d0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.en.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Buy Me A Coffee! - - - Chat? - - - Community - - - Facebook Group - - - Facebook Page - - - Fork Repository - - - Logout - - - Do you really want to Logout? - - - MudBlazor Documentation - - - Quick-Start Guide - - - Refreshed Token. - - - Resources - - - Support - - - Toggle Dark Mode - - - Toggle right-to-left/left-to-right - - - Welcome {0} - - - You are logged out because the Permissions of one of your Roles have been updated. - - - You are logged out because the user with your Token has been deleted. - - - You are Logged Out. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.es.resx deleted file mode 100644 index 79c64e9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.es.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cuenta - - - Buy Me A Coffee! - - - Chat? - - - Comunidad - - - Grupo de Facebook - - - Página de Facebook - - - Salir - - - ¿Realmente quiere salir del sistema? - - - Documentación de MudBlazor - - - Guía de Inicio Rápido - - - Token refrescado. - - - Recursos - - - Soporte - - - Alternar modo oscuro - - - Alternar right-to-left/left-to-right - - - Bienvenido {0} - - - Ha cerrado sesión porque los permisos de su Rol han sido actualizados. - - - Ha cerrado sesión porque el usuario asociado a su Token ha sido borrado. - - - Ha cerrado sesión. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.fr.resx deleted file mode 100644 index e3538b8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.fr.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Compte - - - Buy Me A Coffee! - - - Chatter ? - - - Communauté - - - Grouppe Facebook - - - Page Facebook - - - Forker le dépôt - - - Déconnexion - - - Voulez-vous vraiment vous déconnecter ? - - - Documentation MudBlazor - - - Guide de démarrage rapide - - - Jeton raffraîchi - - - Ressources - - - Support - - - Basculer le mode sombre / mode clair - - - Basculer affichage gauche-droite / droite-gauche - - - Bienvenu {0} - - - Vous avez été déconnecté car les permissions de l'un de vos rôles ont été mise à jour. - - - Vous avez été déconnecté car l'utilisateur lié au jeton a été supprimé. - - - Vous êtes déconnecté. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.id.resx deleted file mode 100644 index 33714f0..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.id.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Akun - - - Buy Me A Coffee! - - - Chat? - - - Komunitas - - - Grup Facebook - - - Halaman Facebook - - - Fork Repository - - - Keluar - - - Apakah anda yakin ingin Keluar? - - - Dokumentasi MudBlazor - - - Panduan Awal Singkat - - - Refreshed Token. - - - Resources - - - Dukung - - - Toggle Mode Gelap - - - Toggle right-to-left/left-to-right - - - Selamat Datang {0} - - - You are logged out because the Permissions of one of your Roles have been updated. - - - You are logged out because the user with your Token has been deleted. - - - You are Logged Out. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.it.resx deleted file mode 100644 index 5140d04..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.it.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Buy Me A Coffee! - - - Chat? - - - Community - - - Gruppo Facebook - - - Pagina Facebook - - - Fork Repository - - - Logout - - - Vuoi effettuare il Logout? - - - Documentazione MudBlazor - - - Guida rapida - - - Refreshed Token. - - - Risorse - - - Supporto - - - Attiva la modalità scura - - - Toggle right-to-left/left-to-right - - - Benvenuto {0} - - - You are logged out because the Permissions of one of your Roles have been updated. - - - You are logged out because the user with your Token has been deleted. - - - You are Logged Out. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.km.resx deleted file mode 100644 index 227e366..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.km.resx +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - គណនី - - - ទិញកាហ្វេមួយមក! - - - ឆាត? - - - សហគមន៍ - - - ក្រុមហ្វេសប៊ុក - - - ទំព័រហ្វេសប៊ុក - - - ចាកចេញ - - - តើអ្នកពិតជាចង់ចាកចេញមែនទេ? - - - ឯកសារ MudBlazor - - - ម​គ្គុ​ទេស​ក៍​ចាប់​ផ្តើ​ម​រហ័ស - - - Refreshed Token. - - - ធនធាន - - - គាំទ្រ - - - បិទ / បើកស្បែកងងឹត - - - Toggle right-to-left/left-to-right - - - ស្វាគមន៏ {0} - - - អ្នកត្រូវបានចាកចេញពីប្រព័ន្ធព្រោះសិទ្ធិនៃមុខងារបស់អ្នកត្រូវបានធ្វើបច្ចុប្បន្នភាព - - - អ្នកត្រូវបានចាកចេញពីប្រព័ន្ធព្រោះកូដធូឃីនអ្នកត្រូវបានលុប - - - អ្នកត្រូវបានចាកចេញ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.nl.resx deleted file mode 100644 index 9cbbf9e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.nl.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Koop me een koffie! - - - Chatten? - - - Community - - - Facebook Groep - - - Facebook Pagina - - - Fork Repository - - - Uitloggen - - - Wil je echt uitloggen? - - - MudBlazor Documentation - - - Snelstartgids - - - Vernieuwd Token. - - - Bronnen - - - Ondersteuning - - - Donkere Modus Schakelen - - - Wissel van rechts naar links/links naar rechts - - - Welkom {0} - - - U bent uitgelogd omdat de machtigingen van een van uw rollen zijn bijgewerkt. - - - U bent uitgelogd omdat de gebruiker met uw Token is verwijderd. - - - U bent uitgelogd. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.ru.resx deleted file mode 100644 index 1fee9c5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.ru.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Аккаунт - - - Купить мне кофе! - - - К чату? - - - Сообщество - - - Группа Facebook - - - Страница Facebook - - - Репозиторий - - - Выйти - - - Подтверждение выхода - - - Документация MudBlazor - - - Краткое руководство пользователя - - - Токен обновлён. - - - Ресурсы - - - Поддержка - - - Переключить Тёмный режим - - - Переключить справа-на-лево/слева-на-право - - - Добро пожаловать {0} - - - Вы вышли из системы, потому что были обновлены разрешения одной из ваших ролей. - - - Вы вышли из системы, потому что пользователь с вашим токеном был удален. - - - Вы вышли из системы. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.sv.resx deleted file mode 100644 index d66bc71..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/MainLayout.sv.resx +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Buy Me A Coffee! - - - Chat? - - - Community - - - Facebook Grupp - - - Facebook Sida - - - Fork Repository - - - Logga ut - - - Vill du verkligen logga ut? - - - MudBlazor Dokumentation - - - Snabbstart Guide - - - Refreshed Token. - - - Resurser - - - Support - - - Växla Mörktläge - - - Toggle right-to-left/left-to-right - - - Välkommen {0} - - - You are logged out because the Permissions of one of your Roles have been updated. - - - You are logged out because the user with your Token has been deleted. - - - You are Logged Out. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.de.resx deleted file mode 100644 index 8bd8b09..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.de.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Administrator - - - Marken - - - Katalog - - - Chat - - - Kommunikation - - - Dashboard - - - Dokumentenverwaltung - - - Dokumentenspeicher - - - Documenttypen - - - FAQs - - - Merkmale - - - Start - - - Protokolle - - - E-Mail - - - Persönlich - - - Produkte - - - Schnellstartanleitung - - - Ressourcen - - - Rollen - - - Swagger - - - Benutzer - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.en.resx deleted file mode 100644 index 61adb32..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.en.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Administrator - - - Brands - - - Catalog - - - Chat - - - Communication - - - Dashboard - - - Document Management - - - Document Store - - - Document Types - - - FAQs - - - Features - - - Home - - - Logs - - - Mail - - - Personal - - - Products - - - Quick Start Guide - - - Resources - - - Roles - - - Swagger - - - Users - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.es.resx deleted file mode 100644 index 6bfbf6e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.es.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Cuenta - - - Administrador - - - Auditoría - - - Marcas - - - Gestión de catálogo - - - Chat - - - Comunicaciones - - - Panel de Control - - - Administración de Documentos - - - Almacén de Documentos - - - Tipos de Documentos - - - FAQs - - - Características - - - Inicio - - - Mail - - - Personal - - - Productos - - - Guía de Inicio Rápido - - - Recursos - - - Roles - - - Swagger - - - Usuarios - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.fr.resx deleted file mode 100644 index b888549..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.fr.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Compte - - - Administrateur - - - Pistes d'audit - - - Marques - - - Gestion du catalogue - - - Conversations - - - Communication - - - Tableau de bord - - - Gestion des documents - - - Stockage des documents - - - Types de documents - - - FAQ - - - Fonctionnalités - - - Accueil - - - Courriel - - - Renseignements personnels - - - Produits - - - Guide de démarrage rapide - - - Ressources - - - Rôles - - - Swagger - - - Utilisateurs - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.id.resx deleted file mode 100644 index 5240880..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.id.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Akun - - - Administrator - - - Audit Trails - - - Merek - - - Manajemen Katalog - - - Obrolan - - - Komunikasi - - - Dasbor - - - Document Management - - - Document Store - - - Document Types - - - FAQs - - - Fitur - - - Beranda - - - Mail - - - Personal - - - Produk - - - Panduan Awal Singkat - - - Resources - - - Wewenang - - - Swagger - - - Pengguna - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.it.resx deleted file mode 100644 index 371cd91..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.it.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Amministratore - - - Marche - - - Gestione catalogo - - - Chat - - - Comunicazione - - - Dashboard - - - Document Management - - - Archivio documenti - - - Document Types - - - FAQs - - - Caratteristiche - - - Home - - - Registro Attività - - - Mail - - - Personale - - - Prodotti - - - Guida rapida - - - Risorse - - - Ruoli - - - Swagger - - - Utenti - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.km.resx deleted file mode 100644 index 01df5e7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.km.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - គណនី - - - រដ្ឋបាល - - - ផលិតផល - - - គ្រប់គ្រងកាតាឡុក - - - ទំនាក់ទំនង - - - ការគ្រប់គ្រងឯកសារ - - - ប្រភេទឯកសារ - - - កម្រងសំណួរចម្លើយ - - - មុខងារ - - - ទំព័រដើម - - - ឯកជន - - - ផលិតផល - - - ធនធាន - - - សិទ្ធិប្រើប្រាស់ - - - អ្នកប្រើប្រាស់ - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.nl.resx deleted file mode 100644 index 30d1ce8..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.nl.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Account - - - Administrator - - - Audit Trails - - - Merken - - - Catalogusbeheer - - - Chat - - - Communicatie - - - Dashboard - - - Documentbeheer - - - Documentopslag - - - Documenttypen - - - FAQs - - - Functies - - - Hoofdscherm - - - Mail - - - Persoonlijk - - - Producten - - - Snelstartgids - - - Bronnen - - - Rollen - - - Swagger - - - Gebruikers - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.ru.resx deleted file mode 100644 index 253d25a..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.ru.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Аккаунт - - - Администрирование - - - Журналы аудита - - - Бренды - - - Управление каталогом - - - Чат - - - Коммуникации - - - Dashboard - - - Управление документами - - - Хранилище документов - - - Типы документов - - - FAQ - - - Функции - - - Домашняя - - - Почта - - - Персональные данные - - - Продукты - - - Краткое руководство пользователя - - - Ресурсы - - - Роли - - - Swagger - - - Пользователи - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.sv.resx deleted file mode 100644 index d85fdd1..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NavMenu.sv.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Konto - - - Administratör - - - Audit Trails - - - Märken - - - Kataloghantering - - - Chatt - - - Kommunikation - - - Översikt - - - Document Management - - - Dokumentlagring - - - Document Types - - - FAQs - - - Funktioner - - - Hem - - - Mail - - - Personal - - - Produkter - - - Snabbstart Guide - - - Resurser - - - Roler - - - Swagger - - - Användare - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.de.resx deleted file mode 100644 index 15b332f..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.de.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zur Startseite gehen! - - - Die gesuchte Seite existiert nicht! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.en.resx deleted file mode 100644 index 3b95741..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.en.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Go Home! - - - The page you were looking for doesn't exist. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.es.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.es.resx deleted file mode 100644 index 8cda145..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.es.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ir a Inicio! - - - La página que busca no existe - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.fr.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.fr.resx deleted file mode 100644 index c0d6d60..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.fr.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Revenir à l'accueil - - - La page que vous recherchez n'existe pas. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.id.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.id.resx deleted file mode 100644 index 1b922b7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.id.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Kembali ke Beranda! - - - Halaman yang anda tuju tidak tersedia. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.it.resx deleted file mode 100644 index 5f231c6..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.it.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vai alla Home! - - - La pagina che stavi cercando non esiste. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.km.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.km.resx deleted file mode 100644 index b6c6f4b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.km.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ទៅទំព័រដើម! - - - ទំព័រដែលអ្នកមកកាន់នេះគឺពុំមានទេ! - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.nl.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.nl.resx deleted file mode 100644 index 39ea8d9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.nl.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ga naar hoofdpagina - - - De pagina die u zocht bestaat niet - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.ru.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.ru.resx deleted file mode 100644 index 506a4d9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.ru.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - На домашнюю страницу! - - - Страница, которую вы искали, не существует. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.sv.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.sv.resx deleted file mode 100644 index e49cb97..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/NotFoundLayout.sv.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Till Start! - - - Sidan du letar efter finns inte. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.de.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.de.resx deleted file mode 100644 index c6de4f5..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.de.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aktionen - - - Fortgeschrittene Suche - - - Marke - - - Abbrechen - - - Erstellen - - - Bearbeiten - - - Produkt - - - Produkte - - - Neu laden - - - Suche nach - - - Aktualisieren - - - Benutzer - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.en.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.en.resx deleted file mode 100644 index 4ced943..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.en.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Actions - - - Advanced Search - - - Brand - - - Cancel - - - Create - - - Edit - - - Product - - - Products - - - Reload - - - Search for - - - Update - - - User - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.it.resx b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.it.resx deleted file mode 100644 index 310e16e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/SharedResource.it.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Azioni - - - Ricerca avanzata - - - Marchio - - - Annulla - - - Crea - - - Modifica - - - Prodotto - - - Prodotti - - - Ricarica - - - Ricerca per - - - Aggiorna - - - Utente - - \ No newline at end of file diff --git "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217MainLayout.ar.resx" "b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217MainLayout.ar.resx" deleted file mode 100644 index 55bb1c9..0000000 --- "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217MainLayout.ar.resx" +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الحساب - - - اشتري لي قهوة! - - - دردشة؟ - - - تواصل اجتماعي - - - مجموعة الفيسبوك - - - صفحة الفيسبوك - - - نسخ الشوكة - - - تسجيل خروج - - - هل تريد حقًا تسجيل الخروج؟ - - - توثيق MudBlazor - - - دليل البدء السريع - - - Rرمز محدث. - - - الموارد - - - الدعم - - - تبديل الوضع الداكن - - - التبديل من اليمين إلى اليسار / من اليسار إلى اليمين - - - مرحبًا {0} - - - لقد تم تسجيل خروجك لأنه تم تحديث أذونات أحد الأدوار الخاصة بك. - - - لقد تم تسجيل خروجك لأنه تم حذف المستخدم الذي يحمل الرمز المميز الخاص بك. - - - لقد قمت بتسجيل الخروج. - - \ No newline at end of file diff --git "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NavMenu.ar.resx" "b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NavMenu.ar.resx" deleted file mode 100644 index 50ba92e..0000000 --- "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NavMenu.ar.resx" +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الحساب - - - الإدارة - - - مسارات المراجعة - - - العلامات التجارية - - - إدارة الكتالوج - - - الدردشة - - - التواصل - - - لوحة الإدارة - - - إدارة المستندات - - - مخزن المستندات - - - أنواع المستندات - - - أسئلة وأجوبة - - - سمات - - - الصفحة الرئيسية - - - بريد - - - شخصي - - - المنتجات - - - دليل البدء السريع - - - الموارد - - - الأدوار - - - Swagger - - - المستخدمون - - \ No newline at end of file diff --git "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NotFoundLayout.ar.resx" "b/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NotFoundLayout.ar.resx" deleted file mode 100644 index fa752e5..0000000 --- "a/blazor-wasm-boilerplate-main/src/Client/Resources/Shared/\342\200\217\342\200\217NotFoundLayout.ar.resx" +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - الذهاب للرئيسية! - - - الصفحة التي تبحث عنها غير موجودة. - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/ApiHelper.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/ApiHelper.cs deleted file mode 100644 index 1d4285e..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/ApiHelper.cs +++ /dev/null @@ -1,86 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Components.Common; -using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Shared; - -public static class ApiHelper -{ - public static async Task ExecuteCallGuardedAsync( - Func> call, - ISnackbar snackbar, - CustomValidation? customValidation = null, - string? successMessage = null) - { - customValidation?.ClearErrors(); - try - { - var result = await call(); - - if (!string.IsNullOrWhiteSpace(successMessage)) - { - snackbar.Add(successMessage, Severity.Info); - } - - return result; - } - catch (ApiException ex) - { - if (ex.Result.Errors is not null) - { - customValidation?.DisplayErrors(ex.Result.Errors); - } - else - { - snackbar.Add("Something went wrong!", Severity.Error); - } - } - catch (ApiException ex) - { - snackbar.Add(ex.Result.Exception, Severity.Error); - } - catch (Exception ex) - { - snackbar.Add(ex.Message, Severity.Error); - } - - return default; - } - - public static async Task ExecuteCallGuardedAsync( - Func call, - ISnackbar snackbar, - CustomValidation? customValidation = null, - string? successMessage = null) - { - customValidation?.ClearErrors(); - try - { - await call(); - - if (!string.IsNullOrWhiteSpace(successMessage)) - { - snackbar.Add(successMessage, Severity.Success); - } - - return true; - } - catch (ApiException ex) - { - if (ex.Result.Errors is not null) - { - customValidation?.DisplayErrors(ex.Result.Errors); - } - else - { - snackbar.Add("Something went wrong!", Severity.Error); - } - } - catch (ApiException ex) - { - snackbar.Add(ex.Result.Exception, Severity.Error); - } - - return false; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor b/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor deleted file mode 100644 index 9eaabaa..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor +++ /dev/null @@ -1,33 +0,0 @@ -@inherits LayoutComponentBase - - - - - - - - - - - - - - @Body - - - - - - - - - - @Body - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor.cs deleted file mode 100644 index 6778e2b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/BaseLayout.razor.cs +++ /dev/null @@ -1,49 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using FSH.BlazorWebAssembly.Client.Infrastructure.Theme; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Shared; - -public partial class BaseLayout -{ - private ClientPreference? _themePreference; - private MudTheme _currentTheme = new LightTheme(); - private bool _themeDrawerOpen; - private bool _rightToLeft; - - protected override async Task OnInitializedAsync() - { - _themePreference = await ClientPreferences.GetPreference() as ClientPreference; - if (_themePreference == null) _themePreference = new ClientPreference(); - SetCurrentTheme(_themePreference); - - Snackbar.Add("Like this boilerplate? ", Severity.Normal, config => - { - config.BackgroundBlurred = true; - config.Icon = Icons.Custom.Brands.GitHub; - config.Action = "Star us on Github!"; - config.ActionColor = Color.Primary; - config.Onclick = snackbar => - { - Navigation.NavigateTo("https://github.com/fullstackhero/blazor-wasm-boilerplate"); - return Task.CompletedTask; - }; - }); - } - - private async Task ThemePreferenceChanged(ClientPreference themePreference) - { - SetCurrentTheme(themePreference); - await ClientPreferences.SetPreference(themePreference); - } - - private void SetCurrentTheme(ClientPreference themePreference) - { - _currentTheme = themePreference.IsDarkMode ? new DarkTheme() : new LightTheme(); - _currentTheme.Palette.Primary = themePreference.PrimaryColor; - _currentTheme.Palette.Secondary = themePreference.SecondaryColor; - _currentTheme.LayoutProperties.DefaultBorderRadius = $"{themePreference.BorderRadius}px"; - _currentTheme.LayoutProperties.DefaultBorderRadius = $"{themePreference.BorderRadius}px"; - _rightToLeft = themePreference.IsRTL; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/DialogServiceExtensions.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/DialogServiceExtensions.cs deleted file mode 100644 index 597ed31..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/DialogServiceExtensions.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Shared; - -public static class DialogServiceExtensions -{ - public static Task ShowModalAsync(this IDialogService dialogService, DialogParameters parameters) - where TDialog : ComponentBase => - dialogService.ShowModal(parameters).Result; - - public static IDialogReference ShowModal(this IDialogService dialogService, DialogParameters parameters) - where TDialog : ComponentBase - { - var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true }; - - return dialogService.Show(string.Empty, parameters, options); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor b/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor deleted file mode 100644 index 7eec5df..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor +++ /dev/null @@ -1,107 +0,0 @@ -@inject IStringLocalizer L - - - - - - - @L["fullstackhero"] - - - - @L["Sponsor"] - - - - @L["Community"] - @L["Discord"] - @L["Facebook"] - - LinkedIn - Buy Me a Coffee! - - Open Collective - - @L["Resources"] - @L["Documentation"] - - - - - - - - - - - - - - -
- - -
- @L["Community"] - @L["Discord"] - @L["Facebook"] - - LinkedIn - @L["Resources"] - - @L["MudBlazor Documentation"] - - @L["Quick-Start Guide"] -
- -
- - - - - -
- - -
- - @L["Account"] -
-
- -
- - @L["Dashboard"] -
-
-
- - Logout - -
-
-
-
-
- - - - - - - - @ChildContent - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor.cs deleted file mode 100644 index 51aba54..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/MainLayout.razor.cs +++ /dev/null @@ -1,63 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences; -using Microsoft.AspNetCore.Components; -using MudBlazor; - -namespace FSH.BlazorWebAssembly.Client.Shared; - -public partial class MainLayout -{ - [Parameter] - public RenderFragment ChildContent { get; set; } = default!; - [Parameter] - public EventCallback OnDarkModeToggle { get; set; } - [Parameter] - public EventCallback OnRightToLeftToggle { get; set; } - - private bool _drawerOpen; - private bool _rightToLeft; - - protected override async Task OnInitializedAsync() - { - if (await ClientPreferences.GetPreference() is ClientPreference preference) - { - _rightToLeft = preference.IsRTL; - _drawerOpen = preference.IsDrawerOpen; - } - } - - private async Task RightToLeftToggle() - { - bool isRtl = await ClientPreferences.ToggleLayoutDirectionAsync(); - _rightToLeft = isRtl; - - await OnRightToLeftToggle.InvokeAsync(isRtl); - } - - public async Task ToggleDarkMode() - { - await OnDarkModeToggle.InvokeAsync(); - } - - private async Task DrawerToggle() - { - _drawerOpen = await ClientPreferences.ToggleDrawerAsync(); - } - - private void Logout() - { - var parameters = new DialogParameters - { - { nameof(Dialogs.Logout.ContentText), $"{L["Logout Confirmation"]}"}, - { nameof(Dialogs.Logout.ButtonText), $"{L["Logout"]}"}, - { nameof(Dialogs.Logout.Color), Color.Error} - }; - - var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Small, FullWidth = true }; - DialogService.Show(L["Logout"], parameters, options); - } - - private void Profile() - { - Navigation.NavigateTo("/account"); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor b/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor deleted file mode 100644 index 9ccb1ba..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor +++ /dev/null @@ -1,55 +0,0 @@ -@inject IStringLocalizer L - - - - @L["Start"] - @L["Home"] - @L["Getting Started"] - @if (_canViewHangfire) - { - @L["Hangfire"] - } - @L["Personal"] - @if (_canViewDashboard) - { - @L["Dashboard"] - } - @L["Account"] - @L["Logs"] - @if (_canViewProducts || _canViewBrands) - { - @L["Management"] - - @if (_canViewProducts) - { - - @L["Products"] - - } - @if (_canViewBrands) - { - - @L["Brands"] - - } - - } - @if (CanViewAdministrationGroup) - { - @L["Administration"] - @if (_canViewUsers) - { - @L["Users"] - } - @if (_canViewRoles) - { - @L["Roles"] - } - @if(_canViewTenants) - { - @L["Tenants"] - } - } - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor.cs deleted file mode 100644 index 7532712..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/NavMenu.razor.cs +++ /dev/null @@ -1,39 +0,0 @@ -using FSH.BlazorWebAssembly.Client.Infrastructure.Auth; -using FSH.BlazorWebAssembly.Client.Infrastructure.Common; -using FSH.WebApi.Shared.Authorization; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; - -namespace FSH.BlazorWebAssembly.Client.Shared; - -public partial class NavMenu -{ - [CascadingParameter] - protected Task AuthState { get; set; } = default!; - [Inject] - protected IAuthorizationService AuthService { get; set; } = default!; - - private string? _hangfireUrl; - private bool _canViewHangfire; - private bool _canViewDashboard; - private bool _canViewRoles; - private bool _canViewUsers; - private bool _canViewProducts; - private bool _canViewBrands; - private bool _canViewTenants; - private bool CanViewAdministrationGroup => _canViewUsers || _canViewRoles || _canViewTenants; - - protected override async Task OnParametersSetAsync() - { - _hangfireUrl = Config[ConfigNames.ApiBaseUrl] + "jobs"; - var user = (await AuthState).User; - _canViewHangfire = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Hangfire); - _canViewDashboard = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Dashboard); - _canViewRoles = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Roles); - _canViewUsers = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Users); - _canViewProducts = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Products); - _canViewBrands = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Brands); - _canViewTenants = await AuthService.HasPermissionAsync(user, FSHAction.View, FSHResource.Tenants); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/NotFound.razor b/blazor-wasm-boilerplate-main/src/Client/Shared/NotFound.razor deleted file mode 100644 index 98c36fd..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/NotFound.razor +++ /dev/null @@ -1,56 +0,0 @@ -@using Infrastructure.Theme -@inherits LayoutComponentBase - - - - -
- - - - - - - - - - - - - - - - - Not Found - -
- Go Home -
-
-
-
- -@code { - private MudTheme _currentTheme = new LightTheme(); - - protected override async Task OnInitializedAsync() - { - _currentTheme = new LightTheme(); - _currentTheme = await ClientPreferences.GetCurrentThemeAsync(); - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/Shared/SharedResource.cs b/blazor-wasm-boilerplate-main/src/Client/Shared/SharedResource.cs deleted file mode 100644 index 7e35167..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/Shared/SharedResource.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.BlazorWebAssembly.Client.Shared; - -public class SharedResource -{ -} diff --git a/blazor-wasm-boilerplate-main/src/Client/_Imports.razor b/blazor-wasm-boilerplate-main/src/Client/_Imports.razor deleted file mode 100644 index a5697e7..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/_Imports.razor +++ /dev/null @@ -1,42 +0,0 @@ -@using System.Security.Claims -@using Microsoft.AspNetCore.Authorization -@using Microsoft.AspNetCore.Components -@using Microsoft.AspNetCore.Components.Authorization -@using Microsoft.AspNetCore.Components.Forms -@using Microsoft.AspNetCore.Components.Routing -@using Microsoft.AspNetCore.Components.Web -@using Microsoft.AspNetCore.Components.Web.Virtualization -@using Microsoft.AspNetCore.Components.WebAssembly.Authentication -@using Microsoft.AspNetCore.Components.WebAssembly.Http -@using Microsoft.AspNetCore.WebUtilities -@using Microsoft.Extensions.Configuration -@using Microsoft.Extensions.DependencyInjection -@using Microsoft.Extensions.Localization -@using Microsoft.JSInterop -@using FSH.BlazorWebAssembly.Client -@using FSH.BlazorWebAssembly.Client.Shared -@using FSH.BlazorWebAssembly.Client.Pages.Authentication -@using FSH.BlazorWebAssembly.Client.Pages.Multitenancy -@using FSH.BlazorWebAssembly.Client.Components.Common -@using FSH.BlazorWebAssembly.Client.Components.EntityTable -@using FSH.BlazorWebAssembly.Client.Components.Localization -@using FSH.BlazorWebAssembly.Client.Components.Notifications -@using FSH.BlazorWebAssembly.Client.Components.ThemeManager -@using FSH.BlazorWebAssembly.Client.Infrastructure.ApiClient -@using FSH.BlazorWebAssembly.Client.Infrastructure.Auth -@using FSH.BlazorWebAssembly.Client.Infrastructure.Common -@using FSH.BlazorWebAssembly.Client.Infrastructure.Notifications -@using FSH.BlazorWebAssembly.Client.Infrastructure.Preferences -@using FSH.WebApi.Shared.Authorization -@using Blazored.LocalStorage -@using Mapster -@using MediatR.Courier -@using MudBlazor - -@attribute [Authorize] - -@inject NavigationManager Navigation -@inject ISnackbar Snackbar -@inject IDialogService DialogService -@inject IConfiguration Config -@inject IClientPreferenceManager ClientPreferences \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.Development.json b/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.Development.json deleted file mode 100644 index 9e26dfe..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.Development.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.json b/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.json deleted file mode 100644 index 704cf56..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/appsettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ApiBaseUrl": "https://localhost:5001/", - "AuthProvider": "Jwt", - "AzureAd": { - "Authority": "https://login.microsoftonline.com/organizations", - "ClientId": "", - "ValidateAuthority": true, - "ApiScope": "api:///access_as_user" - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/css/fsh.css b/blazor-wasm-boilerplate-main/src/Client/wwwroot/css/fsh.css deleted file mode 100644 index a44b634..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/css/fsh.css +++ /dev/null @@ -1,72 +0,0 @@ -.fsh-center-text { - text-align: center !important; -} - -.mud-button-filled { - box-shadow: 0 3px 1px -2px rgb(0 0 0 / 30%), 0 2px 2px 0 rgb(0 0 0 / 0), 0 1px 5px 0 rgb(0 0 0 / 10%) !important; -} - -.mud-dialog { - box-shadow: 0 3px 1px -2px rgb(0 0 0 / 10%), 0 2px 2px 0 rgb(0 0 0 / 0), 0 10px 10px 0 rgb(0 0 0 / 5%) !important; -} - -.mud-nav-link { - white-space: normal !important; - padding: 12px 16px 12px 38px; -} - - .mud-nav-link.active:not(.mud-nav-link-disabled) { - border-right: 3px solid var(--mud-palette-primary); - background-color: rgba(var(--mud-palette-primary-rgb), 0.1); - } - -.mud-table { - padding: 20px !important; - margin-bottom: 20px !important; -} - -.mud-card { - margin-bottom: 20px !important; -} - -#blazor-error-ui { - color: var(--mud-palette-drawer-text); - background: var(--mud-palette-drawer-background); -} - -.mud-overlay-dark { - backdrop-filter: blur(2px); -} - -.mud-card-header .mud-card-header-avatar { - margin-inline-end: 10px !important; -} - -.mud-nav-link { - padding: 12px 16px 12px 15px !important; -} - -.mud-dialog-content { - max-height: 75vh !important; - overflow: auto !important; - overflow-x: hidden !important; -} - -.mud-grid-spacing-xs-3 { - margin: 0px !important; - margin-left: -12px !important; -} - -.mud-table-toolbar -{ - flex-wrap:wrap; - margin-bottom:20px!important; -} - -::-webkit-scrollbar { - width: 2px!important; - height: 6px!important; -} -.fsh-nav-child { - padding-left: 10px !important; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/favicon.ico b/blazor-wasm-boilerplate-main/src/Client/wwwroot/favicon.ico deleted file mode 100644 index fd58c54d08dcde4e4c40e4c8187a3d8bb79829d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18409 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 diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/full-stack-hero-logo.png b/blazor-wasm-boilerplate-main/src/Client/wwwroot/full-stack-hero-logo.png deleted file mode 100644 index 05bdf45be151f25724da91e566fc9e7c9ab3f2c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160036 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ℑ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

)!RQS&Mik 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 - - - - - - Blazor WebAssembly Boilerplate - - - - - - - - - - - - -

- - -
-
-
-
-
- -
-
-
- -
- - - - - - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/manifest.json b/blazor-wasm-boilerplate-main/src/Client/wwwroot/manifest.json deleted file mode 100644 index c95abce..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/manifest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Blazor WebAssembly Boilerplate", - "short_name": "Blazor WebAssembly Boilerplate", - "start_url": "./", - "display": "standalone", - "background_color": "#ffffff", - "theme_color": "#3eaf7c", - "prefer_related_applications": false, - "icons": [ - { - "src": "full-stack-hero-logo.png", - "type": "image/png", - "sizes": "512x512" - }, - { - "src": "full-stack-hero-logo.png", - "type": "image/png", - "sizes": "192x192" - } - ] -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.js b/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.js deleted file mode 100644 index 0c4fa6b..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.js +++ /dev/null @@ -1,4 +0,0 @@ -// In development, always fetch from the network and do not enable offline support. -// This is because caching would make development more difficult (changes would not -// be reflected on the first load after each change). -self.addEventListener('fetch', () => { }); \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.published.js b/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.published.js deleted file mode 100644 index a88a6e9..0000000 --- a/blazor-wasm-boilerplate-main/src/Client/wwwroot/service-worker.published.js +++ /dev/null @@ -1,48 +0,0 @@ -// Caution! Be sure you understand the caveats before publishing an application with -// offline support. See https://aka.ms/blazor-offline-considerations - -self.importScripts('./service-worker-assets.js'); -self.addEventListener('install', event => event.waitUntil(onInstall(event))); -self.addEventListener('activate', event => event.waitUntil(onActivate(event))); -self.addEventListener('fetch', event => event.respondWith(onFetch(event))); - -const cacheNamePrefix = 'offline-cache-'; -const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`; -const offlineAssetsInclude = [/\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/]; -const offlineAssetsExclude = [/^service-worker\.js$/]; - -async function onInstall(event) { - console.info('Service worker: Install'); - - // Fetch and cache all matching items from the assets manifest - const assetsRequests = self.assetsManifest.assets - .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url))) - .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url))) - .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' })); - await caches.open(cacheName).then(cache => cache.addAll(assetsRequests)); -} - -async function onActivate(event) { - console.info('Service worker: Activate'); - - // Delete unused caches - const cacheKeys = await caches.keys(); - await Promise.all(cacheKeys - .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName) - .map(key => caches.delete(key))); -} - -async function onFetch(event) { - let cachedResponse = null; - if (event.request.method === 'GET') { - // For all navigation requests, try to serve index.html from cache - // If you need some URLs to be server-rendered, edit the following check to exclude those URLs - const shouldServeIndexHtml = event.request.mode === 'navigate'; - - const request = shouldServeIndexHtml ? 'index.html' : event.request; - const cache = await caches.open(cacheName); - cachedResponse = await cache.match(request); - } - - return cachedResponse || fetch(event.request); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/Host.csproj b/blazor-wasm-boilerplate-main/src/Host/Host.csproj deleted file mode 100644 index 50cd34d..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/Host.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - net6.0 - FSH.BlazorWebAssembly.Host - FSH.BlazorWebAssembly.Host - - - - - - - - - - - - - - Always - - - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml b/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml deleted file mode 100644 index a0863a8..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml +++ /dev/null @@ -1,44 +0,0 @@ -@page -@model FSH.BlazorWebAssembly.Server.Pages.ErrorModel - - - - - - - - Error - - - - - -
-
-

Error.

-

An error occurred while processing your request.

- - @if (Model.ShowRequestId) - { -

- Request ID: @Model.RequestId -

- } - -

Development Mode

-

- Swapping to the Development environment displays detailed information about the error - that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the - ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

-
-
- - - diff --git a/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml.cs b/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml.cs deleted file mode 100644 index 863883a..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/Pages/Error.cshtml.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System.Diagnostics; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace FSH.BlazorWebAssembly.Server.Pages; - -[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] -[IgnoreAntiforgeryToken] -public class ErrorModel : PageModel -{ - public string? RequestId { get; set; } - - public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - - public void OnGet() - { - RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/Program.cs b/blazor-wasm-boilerplate-main/src/Host/Program.cs deleted file mode 100644 index 098865c..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/Program.cs +++ /dev/null @@ -1,26 +0,0 @@ -var builder = WebApplication.CreateBuilder(args); -builder.Services.AddControllersWithViews(); -builder.Services.AddRazorPages(); - -var app = builder.Build(); - -if (app.Environment.IsDevelopment()) -{ - app.UseWebAssemblyDebugging(); -} -else -{ - app.UseExceptionHandler("/Error"); - app.UseHsts(); -} - -app.UseHttpsRedirection(); -app.UseBlazorFrameworkFiles(); -app.UseStaticFiles(); -app.UseRouting(); - -app.MapRazorPages(); -app.MapControllers(); -app.MapFallbackToFile("index.html"); - -app.Run(); \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/Properties/launchSettings.json b/blazor-wasm-boilerplate-main/src/Host/Properties/launchSettings.json deleted file mode 100644 index a24d289..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:21716", - "sslPort": 44331 - } - }, - "profiles": { - "FSH.BlazorWebAssembly.Server": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:5002;http://localhost:5003", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/appsettings.Development.json b/blazor-wasm-boilerplate-main/src/Host/appsettings.Development.json deleted file mode 100644 index 1b2d3ba..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/appsettings.Development.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Host/appsettings.json b/blazor-wasm-boilerplate-main/src/Host/appsettings.json deleted file mode 100644 index ec04bc1..0000000 --- a/blazor-wasm-boilerplate-main/src/Host/appsettings.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*" -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Authorization/ClaimsPrincipalExtensions.cs b/blazor-wasm-boilerplate-main/src/Shared/Authorization/ClaimsPrincipalExtensions.cs deleted file mode 100644 index a0559f6..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Authorization/ClaimsPrincipalExtensions.cs +++ /dev/null @@ -1,39 +0,0 @@ -using FSH.WebApi.Shared.Authorization; - -namespace System.Security.Claims; - -public static class ClaimsPrincipalExtensions -{ - public static string? GetEmail(this ClaimsPrincipal principal) - => principal.FindFirstValue(ClaimTypes.Email); - - public static string? GetTenant(this ClaimsPrincipal principal) - => principal.FindFirstValue(FSHClaims.Tenant); - - public static string? GetFullName(this ClaimsPrincipal principal) - => principal?.FindFirst(FSHClaims.Fullname)?.Value; - - public static string? GetFirstName(this ClaimsPrincipal principal) - => principal?.FindFirst(ClaimTypes.Name)?.Value; - - public static string? GetSurname(this ClaimsPrincipal principal) - => principal?.FindFirst(ClaimTypes.Surname)?.Value; - - public static string? GetPhoneNumber(this ClaimsPrincipal principal) - => principal.FindFirstValue(ClaimTypes.MobilePhone); - - public static string? GetUserId(this ClaimsPrincipal principal) - => principal.FindFirstValue(ClaimTypes.NameIdentifier); - - public static string? GetImageUrl(this ClaimsPrincipal principal) - => principal.FindFirstValue(FSHClaims.ImageUrl); - - public static DateTimeOffset GetExpiration(this ClaimsPrincipal principal) => - DateTimeOffset.FromUnixTimeSeconds(Convert.ToInt64( - principal.FindFirstValue(FSHClaims.Expiration))); - - private static string? FindFirstValue(this ClaimsPrincipal principal, string claimType) => - principal is null - ? throw new ArgumentNullException(nameof(principal)) - : principal.FindFirst(claimType)?.Value; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHClaims.cs b/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHClaims.cs deleted file mode 100644 index a94b26b..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHClaims.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace FSH.WebApi.Shared.Authorization; - -public static class FSHClaims -{ - public const string Tenant = "tenant"; - public const string Fullname = "fullName"; - public const string Permission = "permission"; - public const string ImageUrl = "image_url"; - public const string IpAddress = "ipAddress"; - public const string Expiration = "exp"; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHPermissions.cs b/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHPermissions.cs deleted file mode 100644 index 229654d..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHPermissions.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System.Collections.ObjectModel; - -namespace FSH.WebApi.Shared.Authorization; - -public static class FSHAction -{ - public const string View = nameof(View); - public const string Search = nameof(Search); - public const string Create = nameof(Create); - public const string Update = nameof(Update); - public const string Delete = nameof(Delete); - public const string Export = nameof(Export); - public const string Generate = nameof(Generate); - public const string Clean = nameof(Clean); - public const string UpgradeSubscription = nameof(UpgradeSubscription); -} - -public static class FSHResource -{ - public const string Tenants = nameof(Tenants); - public const string Dashboard = nameof(Dashboard); - public const string Hangfire = nameof(Hangfire); - public const string Users = nameof(Users); - public const string UserRoles = nameof(UserRoles); - public const string Roles = nameof(Roles); - public const string RoleClaims = nameof(RoleClaims); - public const string Products = nameof(Products); - public const string Brands = nameof(Brands); -} - -public static class FSHPermissions -{ - private static readonly FSHPermission[] _all = new FSHPermission[] - { - new("View Dashboard", FSHAction.View, FSHResource.Dashboard), - new("View Hangfire", FSHAction.View, FSHResource.Hangfire), - new("View Users", FSHAction.View, FSHResource.Users), - new("Search Users", FSHAction.Search, FSHResource.Users), - new("Create Users", FSHAction.Create, FSHResource.Users), - new("Update Users", FSHAction.Update, FSHResource.Users), - new("Delete Users", FSHAction.Delete, FSHResource.Users), - new("Export Users", FSHAction.Export, FSHResource.Users), - new("View UserRoles", FSHAction.View, FSHResource.UserRoles), - new("Update UserRoles", FSHAction.Update, FSHResource.UserRoles), - new("View Roles", FSHAction.View, FSHResource.Roles), - new("Create Roles", FSHAction.Create, FSHResource.Roles), - new("Update Roles", FSHAction.Update, FSHResource.Roles), - new("Delete Roles", FSHAction.Delete, FSHResource.Roles), - new("View RoleClaims", FSHAction.View, FSHResource.RoleClaims), - new("Update RoleClaims", FSHAction.Update, FSHResource.RoleClaims), - new("View Products", FSHAction.View, FSHResource.Products, IsBasic: true), - new("Search Products", FSHAction.Search, FSHResource.Products, IsBasic: true), - new("Create Products", FSHAction.Create, FSHResource.Products), - new("Update Products", FSHAction.Update, FSHResource.Products), - new("Delete Products", FSHAction.Delete, FSHResource.Products), - new("Export Products", FSHAction.Export, FSHResource.Products), - new("View Brands", FSHAction.View, FSHResource.Brands, IsBasic: true), - new("Search Brands", FSHAction.Search, FSHResource.Brands, IsBasic: true), - new("Create Brands", FSHAction.Create, FSHResource.Brands), - new("Update Brands", FSHAction.Update, FSHResource.Brands), - new("Delete Brands", FSHAction.Delete, FSHResource.Brands), - new("Generate Brands", FSHAction.Generate, FSHResource.Brands), - new("Clean Brands", FSHAction.Clean, FSHResource.Brands), - new("View Tenants", FSHAction.View, FSHResource.Tenants, IsRoot: true), - new("Create Tenants", FSHAction.Create, FSHResource.Tenants, IsRoot: true), - new("Update Tenants", FSHAction.Update, FSHResource.Tenants, IsRoot: true), - new("Upgrade Tenant Subscription", FSHAction.UpgradeSubscription, FSHResource.Tenants, IsRoot: true) - }; - - public static IReadOnlyList All { get; } = new ReadOnlyCollection(_all); - public static IReadOnlyList Root { get; } = new ReadOnlyCollection(_all.Where(p => p.IsRoot).ToArray()); - public static IReadOnlyList Admin { get; } = new ReadOnlyCollection(_all.Where(p => !p.IsRoot).ToArray()); - public static IReadOnlyList Basic { get; } = new ReadOnlyCollection(_all.Where(p => p.IsBasic).ToArray()); -} - -public record FSHPermission(string Description, string Action, string Resource, bool IsBasic = false, bool IsRoot = false) -{ - public string Name => NameFor(Action, Resource); - public static string NameFor(string action, string resource) => $"Permissions.{resource}.{action}"; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHRoles.cs b/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHRoles.cs deleted file mode 100644 index 974b07a..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Authorization/FSHRoles.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System.Collections.ObjectModel; - -namespace FSH.WebApi.Shared.Authorization; - -public static class FSHRoles -{ - public static string Admin = nameof(Admin); - public static string Basic = nameof(Basic); - - public static IReadOnlyList DefaultRoles { get; } = new ReadOnlyCollection(new[] - { - Admin, - Basic - }); - - public static bool IsDefault(string roleName) => DefaultRoles.Any(r => r == roleName); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Events/IEvent.cs b/blazor-wasm-boilerplate-main/src/Shared/Events/IEvent.cs deleted file mode 100644 index 8dfdf10..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Events/IEvent.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.WebApi.Shared.Events; - -public interface IEvent -{ -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/MultiTenancy/MultitenancyConstants.cs b/blazor-wasm-boilerplate-main/src/Shared/MultiTenancy/MultitenancyConstants.cs deleted file mode 100644 index 8ffd325..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/MultiTenancy/MultitenancyConstants.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace FSH.WebApi.Shared.Multitenancy; - -public class MultitenancyConstants -{ - public static class Root - { - public const string Id = "root"; - public const string Name = "Root"; - public const string EmailAddress = "admin@root.com"; - } - - public const string DefaultPassword = "123Pa$$word!"; - - public const string TenantIdName = "tenant"; -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Notifications/BasicNotification.cs b/blazor-wasm-boilerplate-main/src/Shared/Notifications/BasicNotification.cs deleted file mode 100644 index c90ec4a..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Notifications/BasicNotification.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace FSH.WebApi.Shared.Notifications; - -public class BasicNotification : INotificationMessage -{ - public enum LabelType - { - Information, - Success, - Warning, - Error - } - - public string? Message { get; set; } - public LabelType Label { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Notifications/INotificationMessage.cs b/blazor-wasm-boilerplate-main/src/Shared/Notifications/INotificationMessage.cs deleted file mode 100644 index 8374916..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Notifications/INotificationMessage.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.WebApi.Shared.Notifications; - -public interface INotificationMessage -{ -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Notifications/JobNotification.cs b/blazor-wasm-boilerplate-main/src/Shared/Notifications/JobNotification.cs deleted file mode 100644 index cbe8658..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Notifications/JobNotification.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace FSH.WebApi.Shared.Notifications; - -public class JobNotification : INotificationMessage -{ - public string? Message { get; set; } - public string? JobId { get; set; } - public decimal Progress { get; set; } -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Notifications/NotificationConstants.cs b/blazor-wasm-boilerplate-main/src/Shared/Notifications/NotificationConstants.cs deleted file mode 100644 index f4fc15d..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Notifications/NotificationConstants.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace FSH.WebApi.Shared.Notifications; - -public static class NotificationConstants -{ - public const string NotificationFromServer = nameof(NotificationFromServer); -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Notifications/StatsChangedNotification.cs b/blazor-wasm-boilerplate-main/src/Shared/Notifications/StatsChangedNotification.cs deleted file mode 100644 index e9ebe9c..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Notifications/StatsChangedNotification.cs +++ /dev/null @@ -1,5 +0,0 @@ -namespace FSH.WebApi.Shared.Notifications; - -public class StatsChangedNotification : INotificationMessage -{ -} \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/src/Shared/Shared.csproj b/blazor-wasm-boilerplate-main/src/Shared/Shared.csproj deleted file mode 100644 index 72eb13f..0000000 --- a/blazor-wasm-boilerplate-main/src/Shared/Shared.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - net6.0 - FSH.WebApi.Shared - FSH.WebApi.Shared - - \ No newline at end of file diff --git a/blazor-wasm-boilerplate-main/stylecop.json b/blazor-wasm-boilerplate-main/stylecop.json deleted file mode 100644 index 95ceebe..0000000 --- a/blazor-wasm-boilerplate-main/stylecop.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "orderingRules": { - "systemUsingDirectivesFirst": true, - "usingDirectivesPlacement": "outsideNamespace" - }, - "layoutRules": { - "newlineAtEndOfFile": "omit" - } - } -} \ No newline at end of file