From 776c1bafea6bfb1b43d1c0d0dfeb089dbb6a9648 Mon Sep 17 00:00:00 2001 From: Jon P Smith Date: Sat, 24 Dec 2022 14:33:05 +0000 Subject: [PATCH] Updated to localizers preview034 --- .../Services/LinkToTenantDataService.cs | 4 +- .../AuthPermissions.AspNetCore.csproj | 2 +- .../Services/ShardingConnections.cs | 4 +- .../AuthPermissions.BaseCode.csproj | 2 +- .../DataLayer/Classes/AuthUser.cs | 12 +- .../DataLayer/Classes/Tenant.cs | 12 +- .../DataLayer/EfCode/SaveChangesExtensions.cs | 6 +- .../Authentication/AzureAdNewUserManager.cs | 6 +- .../IndividualUserAddUserManager.cs | 2 +- .../AddUsersServices/InviteNewUserService.cs | 6 +- .../AddUsersServices/SignInAndCreateTenant.cs | 4 +- .../AzureAdServices/AzureAdAccessService.cs | 4 +- .../AccessDatabaseInformation.cs | 2 +- .../DemoGetDatabaseForNewTenant.cs | 4 +- .../Services/AuthRolesAdminService.cs | 2 +- .../Services/AuthTenantAdminService.cs | 20 +-- .../Services/AuthUsersAdminService.cs | 8 +- AuthPermissions/AuthPermissions.csproj | 2 +- .../Concrete/BulkLoadRolesService.cs | 2 +- .../Concrete/BulkLoadTenantsService.cs | 4 +- ...ackup.RazorPages.IndividualAccounts.csproj | 36 +++++ .../Pages/Index.cshtml.cs | 11 +- ...missions.BaseCode.ResourceLocalize.en.resx | 123 ++++++++++++++++++ ...aseCode.Resources.ResourceLocalize.en.resx | 123 ++++++++++++++++++ .../BaseCode.ResourceLocalize.en.resx | 123 ++++++++++++++++++ .../Resources/ResourceLocalize.en.resx | 123 ++++++++++++++++++ Test/Test.csproj | 2 +- 27 files changed, 593 insertions(+), 56 deletions(-) create mode 100644 Example1.RazorPages.IndividualAccounts/Example1 - Backup.RazorPages.IndividualAccounts.csproj create mode 100644 Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.ResourceLocalize.en.resx create mode 100644 Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.Resources.ResourceLocalize.en.resx create mode 100644 Example1.RazorPages.IndividualAccounts/Resources/BaseCode.ResourceLocalize.en.resx create mode 100644 Example1.RazorPages.IndividualAccounts/Resources/ResourceLocalize.en.resx diff --git a/AuthPermissions.AspNetCore/AccessTenantData/Services/LinkToTenantDataService.cs b/AuthPermissions.AspNetCore/AccessTenantData/Services/LinkToTenantDataService.cs index 0bf3cf66..48a9e43c 100644 --- a/AuthPermissions.AspNetCore/AccessTenantData/Services/LinkToTenantDataService.cs +++ b/AuthPermissions.AspNetCore/AccessTenantData/Services/LinkToTenantDataService.cs @@ -25,7 +25,7 @@ public class LinkToTenantDataService : ILinkToTenantDataService private readonly IAccessTenantDataCookie _cookieAccessor; private readonly IEncryptDecryptService _encryptorService; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// Ctor @@ -39,7 +39,7 @@ public LinkToTenantDataService( AuthPermissionsDbContext context, AuthPermissionsOptions options, IAccessTenantDataCookie cookieAccessor, - IEncryptDecryptService encryptorService, IDefaultLocalizer localizeDefault) + IEncryptDecryptService encryptorService, IDefaultLocalizer localizeDefault) { _context = context; _options = options; diff --git a/AuthPermissions.AspNetCore/AuthPermissions.AspNetCore.csproj b/AuthPermissions.AspNetCore/AuthPermissions.AspNetCore.csproj index be84ff9b..a8b8f5f9 100644 --- a/AuthPermissions.AspNetCore/AuthPermissions.AspNetCore.csproj +++ b/AuthPermissions.AspNetCore/AuthPermissions.AspNetCore.csproj @@ -19,7 +19,7 @@ - + diff --git a/AuthPermissions.AspNetCore/Services/ShardingConnections.cs b/AuthPermissions.AspNetCore/Services/ShardingConnections.cs index 3809729d..ff53a0cc 100644 --- a/AuthPermissions.AspNetCore/Services/ShardingConnections.cs +++ b/AuthPermissions.AspNetCore/Services/ShardingConnections.cs @@ -29,7 +29,7 @@ public class ShardingConnections : IShardingConnections private readonly ShardingSettingsOption _shardingSettings; private readonly AuthPermissionsDbContext _context; private readonly AuthPermissionsOptions _options; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -192,7 +192,7 @@ public IStatusGeneric TestFormingConnectionString(DatabaseInformation databaseIn /// private IStatusGeneric SetDatabaseInConnectionString(DatabaseInformation databaseInformation, string connectionString) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); switch (databaseInformation.DatabaseType) { diff --git a/AuthPermissions.BaseCode/AuthPermissions.BaseCode.csproj b/AuthPermissions.BaseCode/AuthPermissions.BaseCode.csproj index 2ccaacee..8f8bc939 100644 --- a/AuthPermissions.BaseCode/AuthPermissions.BaseCode.csproj +++ b/AuthPermissions.BaseCode/AuthPermissions.BaseCode.csproj @@ -31,7 +31,7 @@ - + \ No newline at end of file diff --git a/AuthPermissions.BaseCode/DataLayer/Classes/AuthUser.cs b/AuthPermissions.BaseCode/DataLayer/Classes/AuthUser.cs index 609b71f2..73174960 100644 --- a/AuthPermissions.BaseCode/DataLayer/Classes/AuthUser.cs +++ b/AuthPermissions.BaseCode/DataLayer/Classes/AuthUser.cs @@ -41,10 +41,10 @@ private AuthUser(string userId, string email, string userName, ListThis provides the localize service /// optional: defines multi-tenant tenant for this user public static IStatusGeneric CreateAuthUser(string userId, string email, - string userName, List roles, IDefaultLocalizer localizeDefault, + string userName, List roles, IDefaultLocalizer localizeDefault, Tenant userTenant = null) { - var status = new StatusGenericLocalizer(localizeDefault); + var status = new StatusGenericLocalizer(localizeDefault); status.CombineStatuses(CheckRolesAreValidForUser(roles, userTenant != null, localizeDefault)); if (status.HasErrors) @@ -139,12 +139,12 @@ public override string ToString() /// /// List of roles to replace the current user's roles /// - public IStatusGeneric ReplaceAllRoles(List roles, IDefaultLocalizer localizeDefault) + public IStatusGeneric ReplaceAllRoles(List roles, IDefaultLocalizer localizeDefault) { if (_userRoles == null) throw new AuthPermissionsException($"You must load the {nameof(UserRoles)} before calling this method"); - var status = new StatusGenericLocalizer(localizeDefault); + var status = new StatusGenericLocalizer(localizeDefault); status.CombineStatuses(CheckRolesAreValidForUser(roles, TenantId != null, localizeDefault)); if (status.HasErrors) @@ -200,9 +200,9 @@ public void UpdateIsDisabled(bool isDisabled) /// /// private static IStatusGeneric CheckRolesAreValidForUser(List foundRoles, bool tenantUser, - IDefaultLocalizer localizeDefault) + IDefaultLocalizer localizeDefault) { - var status = new StatusGenericLocalizer(localizeDefault); + var status = new StatusGenericLocalizer(localizeDefault); foreach (var foundRole in foundRoles) { diff --git a/AuthPermissions.BaseCode/DataLayer/Classes/Tenant.cs b/AuthPermissions.BaseCode/DataLayer/Classes/Tenant.cs index 2d919588..ddd7f3cc 100644 --- a/AuthPermissions.BaseCode/DataLayer/Classes/Tenant.cs +++ b/AuthPermissions.BaseCode/DataLayer/Classes/Tenant.cs @@ -48,7 +48,7 @@ private Tenant(string tenantFullName, bool isHierarchical, Tenant parent = null) /// Optional: add Roles that have a of /// or public static IStatusGeneric CreateSingleTenant(string fullTenantName, - IDefaultLocalizer localizeDefault, List tenantRoles = null) + IDefaultLocalizer localizeDefault, List tenantRoles = null) { var newInstance = new Tenant(fullTenantName, false); var status = CheckRolesAreAllTenantRolesAndSetTenantRoles(tenantRoles, newInstance, localizeDefault); @@ -65,7 +65,7 @@ public static IStatusGeneric CreateSingleTenant(string fullTenantName, /// Optional: add Roles that have a of /// or public static IStatusGeneric CreateHierarchicalTenant(string fullTenantName, Tenant parent, - IDefaultLocalizer localizeDefault, List tenantRoles = null) + IDefaultLocalizer localizeDefault, List tenantRoles = null) { var newInstance = new Tenant(fullTenantName, true, parent); var status = CheckRolesAreAllTenantRolesAndSetTenantRoles(tenantRoles, newInstance, localizeDefault); @@ -219,13 +219,13 @@ public void UpdateTenantName(string newNameAtThisLevel) /// localization service /// /// - public IStatusGeneric UpdateTenantRoles(List tenantRoles, IDefaultLocalizer localizeDefault) + public IStatusGeneric UpdateTenantRoles(List tenantRoles, IDefaultLocalizer localizeDefault) { if (_tenantRoles == null) throw new AuthPermissionsException( $"You must include the tenant's {nameof(TenantRoles)} in your query before you can add/remove an tenant role."); - var status = new StatusGenericLocalizer(localizeDefault); + var status = new StatusGenericLocalizer(localizeDefault); return status.CombineStatuses(CheckRolesAreAllTenantRolesAndSetTenantRoles(tenantRoles, this, localizeDefault)); } @@ -285,9 +285,9 @@ public static string ExtractEndLeftTenantName(string fullTenantName) /// /// status, with the instance if no errors. private static IStatusGeneric CheckRolesAreAllTenantRolesAndSetTenantRoles( - List tenantRoles, Tenant thisTenant, IDefaultLocalizer localizeDefault) + List tenantRoles, Tenant thisTenant, IDefaultLocalizer localizeDefault) { - var status = new StatusGenericLocalizer(localizeDefault); + var status = new StatusGenericLocalizer(localizeDefault); status.SetResult(thisTenant); var badRoles = tenantRoles? diff --git a/AuthPermissions.BaseCode/DataLayer/EfCode/SaveChangesExtensions.cs b/AuthPermissions.BaseCode/DataLayer/EfCode/SaveChangesExtensions.cs index 376b7bc1..da618240 100644 --- a/AuthPermissions.BaseCode/DataLayer/EfCode/SaveChangesExtensions.cs +++ b/AuthPermissions.BaseCode/DataLayer/EfCode/SaveChangesExtensions.cs @@ -24,7 +24,7 @@ public static class SaveChangesExtensions /// /// Status public static IStatusGeneric SaveChangesWithChecks(this DbContext context, - IDefaultLocalizer localizeDefault) + IDefaultLocalizer localizeDefault) { try { @@ -50,7 +50,7 @@ public static IStatusGeneric SaveChangesWithChecks(this DbContext context, /// /// Status public static async Task SaveChangesWithChecksAsync(this DbContext context, - IDefaultLocalizer localizeDefault) + IDefaultLocalizer localizeDefault) { try { @@ -72,7 +72,7 @@ public static async Task SaveChangesWithChecksAsync(this DbConte private enum ExceptionTypes {Duplicate, ConcurrencyError} private static IStatusGeneric ConvertExceptionToStatus(this IReadOnlyList entities, - ExceptionTypes exceptionType, IDefaultLocalizer localizeDefault) + ExceptionTypes exceptionType, IDefaultLocalizer localizeDefault) { var status = new StatusGenericLocalizer(localizeDefault); diff --git a/AuthPermissions.SupportCode/AddUsersServices/Authentication/AzureAdNewUserManager.cs b/AuthPermissions.SupportCode/AddUsersServices/Authentication/AzureAdNewUserManager.cs index 8c0e3b7e..063aee7d 100644 --- a/AuthPermissions.SupportCode/AddUsersServices/Authentication/AzureAdNewUserManager.cs +++ b/AuthPermissions.SupportCode/AddUsersServices/Authentication/AzureAdNewUserManager.cs @@ -23,7 +23,7 @@ public class AzureAdNewUserManager : IAddNewUserManager private readonly IAuthTenantAdminService _tenantAdminService; private readonly IAzureAdAccessService _azureAccessService; private readonly AzureAdOptions _azureOptions; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -106,7 +106,7 @@ public Task> LoginAsync() if (UserLoginData == null) throw new AuthPermissionsException($"Must call {nameof(SetUserInfoAsync)} before calling this method."); - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (UserLoginData.Password == null) { status.SetMessageString("SuccessFoundUser".ClassLocalizeKey(this, true), @@ -125,7 +125,7 @@ public Task> LoginAsync() private async Task> FindOrCreateAzureAdUser(string email) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); var approaches = _azureOptions.AzureAdApproaches?.Split(',') .Select(x => x.Trim().ToLower()).ToArray() diff --git a/AuthPermissions.SupportCode/AddUsersServices/Authentication/IndividualUserAddUserManager.cs b/AuthPermissions.SupportCode/AddUsersServices/Authentication/IndividualUserAddUserManager.cs index 6e4fab22..d27e0246 100644 --- a/AuthPermissions.SupportCode/AddUsersServices/Authentication/IndividualUserAddUserManager.cs +++ b/AuthPermissions.SupportCode/AddUsersServices/Authentication/IndividualUserAddUserManager.cs @@ -126,7 +126,7 @@ public async Task> LoginAsync() var user = await _userManager.FindByEmailAsync(UserLoginData.Email); await _signInManager.SignInAsync(user, isPersistent: UserLoginData.IsPersistent); - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); status.SetMessageString("SuccessRegisterLogin".ClassLocalizeKey(this, true), "You have been registered and logged in to this application."); return status.SetResult(UserLoginData); diff --git a/AuthPermissions.SupportCode/AddUsersServices/InviteNewUserService.cs b/AuthPermissions.SupportCode/AddUsersServices/InviteNewUserService.cs index 93d5738f..91adc8e7 100644 --- a/AuthPermissions.SupportCode/AddUsersServices/InviteNewUserService.cs +++ b/AuthPermissions.SupportCode/AddUsersServices/InviteNewUserService.cs @@ -27,7 +27,7 @@ public class InviteNewUserService : IInviteNewUserService private readonly IAuthUsersAdminService _usersAdmin; private readonly AuthPermissionsOptions _options; private readonly IAddNewUserManager _addNewUserManager; - private IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -92,7 +92,7 @@ public List> ListOfExpirationTimes() /// status with message and encrypted string containing the data to send the user in a link public async Task> CreateInviteUserToJoinAsync(AddNewUserDto invitedUser, string userId) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (userId == null) throw new ArgumentNullException(nameof(userId)); @@ -239,7 +239,7 @@ public async Task> CreateInviteUserToJoinAsync(AddNewUser public async Task> AddUserViaInvite(string inviteParam, string email, string userName, string password = null, bool isPersistent = false) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); var normalizedEmail = email.Trim().ToLower(); AddNewUserDto newUserData; diff --git a/AuthPermissions.SupportCode/AddUsersServices/SignInAndCreateTenant.cs b/AuthPermissions.SupportCode/AddUsersServices/SignInAndCreateTenant.cs index 5adf44b4..8c36cc06 100644 --- a/AuthPermissions.SupportCode/AddUsersServices/SignInAndCreateTenant.cs +++ b/AuthPermissions.SupportCode/AddUsersServices/SignInAndCreateTenant.cs @@ -22,7 +22,7 @@ public class SignInAndCreateTenant : ISignInAndCreateTenant private readonly AuthPermissionsOptions _options; private readonly IAuthTenantAdminService _tenantAdmin; private readonly IAddNewUserManager _addNewUserManager; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; private readonly IGetDatabaseForNewTenant _getShardingDb; /// @@ -82,7 +82,7 @@ public async Task> SignUpNewTenantWithVersionAsync if (newUser == null) throw new ArgumentNullException(nameof(newUser)); if (tenantData == null) throw new ArgumentNullException(nameof(tenantData)); if (versionData == null) throw new ArgumentNullException(nameof(versionData)); - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (tenantData.TenantName == null) return status.AddErrorString("NullTenantName".ClassLocalizeKey(this, true), diff --git a/AuthPermissions.SupportCode/AzureAdServices/AzureAdAccessService.cs b/AuthPermissions.SupportCode/AzureAdServices/AzureAdAccessService.cs index 45d822cd..a1b23868 100644 --- a/AuthPermissions.SupportCode/AzureAdServices/AzureAdAccessService.cs +++ b/AuthPermissions.SupportCode/AzureAdServices/AzureAdAccessService.cs @@ -23,7 +23,7 @@ public class AzureAdAccessService : IAzureAdAccessService private readonly ClientSecretCredential _clientSecretCredential; private readonly string[] _scopes = new[] { "https://graph.microsoft.com/.default" }; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -106,7 +106,7 @@ public async Task FindAzureUserAsync(string email) /// status: if error then return message, otherwise Result holds ID of the newly created Azure AD user public async Task> CreateNewUserAsync(string email, string userName, string temporaryPassword) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (string.IsNullOrWhiteSpace(temporaryPassword)) throw new ArgumentNullException(nameof(temporaryPassword)); diff --git a/AuthPermissions.SupportCode/ShardingServices/AccessDatabaseInformation.cs b/AuthPermissions.SupportCode/ShardingServices/AccessDatabaseInformation.cs index 8cc40de9..ad473a86 100644 --- a/AuthPermissions.SupportCode/ShardingServices/AccessDatabaseInformation.cs +++ b/AuthPermissions.SupportCode/ShardingServices/AccessDatabaseInformation.cs @@ -29,7 +29,7 @@ public class AccessDatabaseInformation : IAccessDatabaseInformation private readonly IShardingConnections _connectionsService; private readonly AuthPermissionsDbContext _authDbContext; private readonly AuthPermissionsOptions _options; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// Ctor diff --git a/AuthPermissions.SupportCode/ShardingServices/DemoGetDatabaseForNewTenant.cs b/AuthPermissions.SupportCode/ShardingServices/DemoGetDatabaseForNewTenant.cs index 728745e3..13e522c1 100644 --- a/AuthPermissions.SupportCode/ShardingServices/DemoGetDatabaseForNewTenant.cs +++ b/AuthPermissions.SupportCode/ShardingServices/DemoGetDatabaseForNewTenant.cs @@ -14,7 +14,7 @@ namespace AuthPermissions.SupportCode.ShardingServices; public class DemoGetDatabaseForNewTenant : IGetDatabaseForNewTenant { private readonly IShardingConnections _shardingService; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -39,7 +39,7 @@ public DemoGetDatabaseForNewTenant(IShardingConnections shardingService, /// Status with the DatabaseInfoName, or error if it can't find a database to work with public async Task> FindBestDatabaseInfoNameAsync(bool hasOwnDb, string region, string version = null) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); //This gets the databases with the info on whether the database is available var dbsWithUsers = await _shardingService.GetDatabaseInfoNamesWithTenantNamesAsync(); diff --git a/AuthPermissions/AdminCode/Services/AuthRolesAdminService.cs b/AuthPermissions/AdminCode/Services/AuthRolesAdminService.cs index 4b020b85..deeee063 100644 --- a/AuthPermissions/AdminCode/Services/AuthRolesAdminService.cs +++ b/AuthPermissions/AdminCode/Services/AuthRolesAdminService.cs @@ -19,7 +19,7 @@ namespace AuthPermissions.AdminCode.Services public class AuthRolesAdminService : IAuthRolesAdminService { private readonly AuthPermissionsDbContext _context; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; private readonly Type _permissionType; private readonly bool _isMultiTenant; diff --git a/AuthPermissions/AdminCode/Services/AuthTenantAdminService.cs b/AuthPermissions/AdminCode/Services/AuthTenantAdminService.cs index c40bf1bf..20fceebb 100644 --- a/AuthPermissions/AdminCode/Services/AuthTenantAdminService.cs +++ b/AuthPermissions/AdminCode/Services/AuthTenantAdminService.cs @@ -23,7 +23,7 @@ public class AuthTenantAdminService : IAuthTenantAdminService { private readonly AuthPermissionsDbContext _context; private readonly AuthPermissionsOptions _options; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; private readonly IAuthPServiceFactory _tenantChangeServiceFactory; private readonly ILogger _logger; @@ -91,7 +91,7 @@ public async Task> GetRoleNamesForTenantsAsync() /// Status. If successful, then contains the Tenant public async Task> GetTenantViaIdAsync(int tenantId) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); var result = await _context.Tenants .Include(x => x.Parent) @@ -136,7 +136,7 @@ public async Task> GetHierarchicalTenantChildrenViaIdAsync(int tena public async Task> AddSingleTenantAsync(string tenantName, List tenantRoleNames = null, bool? hasOwnDb = null, string databaseInfoName = null) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); status.SetMessageFormatted("Success".ClassMethodLocalizeKey(this, true), $"Successfully added the new tenant {tenantName}."); @@ -211,7 +211,7 @@ public async Task> AddSingleTenantAsync(string tenantName public async Task> AddHierarchicalTenantAsync(string tenantName, int parentTenantId, List tenantRoleNames = null, bool? hasOwnDb = false, string databaseInfoName = null) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (!_tenantType.IsHierarchical()) throw new AuthPermissionsException( @@ -341,7 +341,7 @@ public async Task UpdateTenantRolesAsync(int tenantId, List(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); status.SetMessageFormatted("Success".ClassMethodLocalizeKey(this, true), $"Successfully updated the tenant's Roles."); @@ -374,7 +374,7 @@ public async Task UpdateTenantRolesAsync(int tenantId, List public async Task UpdateTenantNameAsync(int tenantId, string newTenantName) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); status.SetMessageFormatted("Success".ClassMethodLocalizeKey(this, true), $"Successfully updated the tenant's name to {newTenantName}."); @@ -450,7 +450,7 @@ public async Task UpdateTenantNameAsync(int tenantId, string new /// status public async Task MoveHierarchicalTenantToAnotherParentAsync(int tenantToMoveId, int newParentTenantId) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); if (!_tenantType.IsHierarchical()) throw new AuthPermissionsException( @@ -533,7 +533,7 @@ public async Task MoveHierarchicalTenantToAnotherParentAsync(int /// Status returning the service, in case you want copy the delete data instead of deleting public async Task> DeleteTenantAsync(int tenantId) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); var tenantChangeService = _tenantChangeServiceFactory.GetService(); status.SetResult(tenantChangeService); @@ -642,7 +642,7 @@ public async Task> DeleteTenantAsync(int te public async Task MoveToDifferentDatabaseAsync(int tenantToMoveId, bool hasOwnDb, string databaseInfoName) { - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); status.SetMessageFormatted("Success".ClassMethodLocalizeKey(this, true), $"Successfully moved the tenant to the database defined by the database information with the name '{databaseInfoName}'."); @@ -745,7 +745,7 @@ private async Task CheckHasOwnDbIsValidAsync(bool hasOwnDb, stri private async Task>> GetRolesWithChecksAsync( List tenantRoleNames) { - var status = new StatusGenericLocalizer, ResourceLocalize>(_localizeDefault); + var status = new StatusGenericLocalizer>(_localizeDefault); var foundRoles = tenantRoleNames?.Any() == true ? await _context.RoleToPermissions diff --git a/AuthPermissions/AdminCode/Services/AuthUsersAdminService.cs b/AuthPermissions/AdminCode/Services/AuthUsersAdminService.cs index 579a23ab..84e12ddf 100644 --- a/AuthPermissions/AdminCode/Services/AuthUsersAdminService.cs +++ b/AuthPermissions/AdminCode/Services/AuthUsersAdminService.cs @@ -21,7 +21,7 @@ public class AuthUsersAdminService : IAuthUsersAdminService private readonly AuthPermissionsDbContext _context; private readonly IAuthPServiceFactory _syncAuthenticationUsersFactory; private readonly AuthPermissionsOptions _options; - private readonly IDefaultLocalizer _localizeDefault; + private readonly IDefaultLocalizer _localizeDefault; /// /// ctor @@ -82,7 +82,7 @@ public IQueryable QueryAuthUsers(string dataKey = null, string databas public async Task> FindAuthUserByUserIdAsync(string userId) { if (userId == null) throw new ArgumentNullException(nameof(userId)); - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); var authUser = await _context.AuthUsers .Include(x => x.UserRoles) @@ -104,7 +104,7 @@ public async Task> FindAuthUserByUserIdAsync(string use public async Task> FindAuthUserByEmailAsync(string email) { if (email == null) throw new ArgumentNullException(nameof(email)); - var status = new StatusGenericLocalizer(_localizeDefault); + var status = new StatusGenericLocalizer(_localizeDefault); email = email.Trim().ToLower(); @@ -468,7 +468,7 @@ public async Task ApplySyncChangesAsync(IEnumerable private async Task>> FindCheckRolesAreValidForUserAsync(List roleNames, Tenant usersTenant, string userName) { - var status = new StatusGenericLocalizer, ResourceLocalize>(_localizeDefault); + var status = new StatusGenericLocalizer>(_localizeDefault); if (roleNames == null || roleNames.SequenceEqual( new List { CommonConstants.EmptyItemName })) //If the only role is the empty item, then return no roles diff --git a/AuthPermissions/AuthPermissions.csproj b/AuthPermissions/AuthPermissions.csproj index 98623a7c..d5ebd6c8 100644 --- a/AuthPermissions/AuthPermissions.csproj +++ b/AuthPermissions/AuthPermissions.csproj @@ -41,7 +41,7 @@ - + diff --git a/AuthPermissions/BulkLoadServices/Concrete/BulkLoadRolesService.cs b/AuthPermissions/BulkLoadServices/Concrete/BulkLoadRolesService.cs index dda00efa..43081e5a 100644 --- a/AuthPermissions/BulkLoadServices/Concrete/BulkLoadRolesService.cs +++ b/AuthPermissions/BulkLoadServices/Concrete/BulkLoadRolesService.cs @@ -68,7 +68,7 @@ public async Task AddRolesToDatabaseAsync(List } if (status.IsValid) - status.CombineStatuses(await _context.SaveChangesWithChecksAsync(new StubDefaultLocalizer())); + status.CombineStatuses(await _context.SaveChangesWithChecksAsync(new StubDefaultLocalizer())); status.Message = $"Added {roleSetupData.Count} new RoleToPermissions to the auth database"; //If there is an error this message is removed return status; diff --git a/AuthPermissions/BulkLoadServices/Concrete/BulkLoadTenantsService.cs b/AuthPermissions/BulkLoadServices/Concrete/BulkLoadTenantsService.cs index 6ac9bcaf..e0849157 100644 --- a/AuthPermissions/BulkLoadServices/Concrete/BulkLoadTenantsService.cs +++ b/AuthPermissions/BulkLoadServices/Concrete/BulkLoadTenantsService.cs @@ -74,7 +74,7 @@ public async Task AddTenantsToDatabaseAsync(List(), rolesStatus.Result); + new StubDefaultLocalizer(), rolesStatus.Result); if (status.CombineStatuses(tenantStatus).IsValid) { @@ -123,7 +123,7 @@ public async Task AddTenantsToDatabaseAsync(List x.TenantId == tenantInfo.Parent.CreatedTenantId); var newTenantStatus = Tenant.CreateHierarchicalTenant(fullname, parent, - new StubDefaultLocalizer(), rolesStatus.Result); + new StubDefaultLocalizer(), rolesStatus.Result); _context.Add(newTenantStatus.Result); if (status.IsValid) diff --git a/Example1.RazorPages.IndividualAccounts/Example1 - Backup.RazorPages.IndividualAccounts.csproj b/Example1.RazorPages.IndividualAccounts/Example1 - Backup.RazorPages.IndividualAccounts.csproj new file mode 100644 index 00000000..4c4250ce --- /dev/null +++ b/Example1.RazorPages.IndividualAccounts/Example1 - Backup.RazorPages.IndividualAccounts.csproj @@ -0,0 +1,36 @@ + + + + net6.0 + aspnet-Example1.RazorPages.IndividualAccounts-9BFCF434-1CBC-460C-98B7-CBCEDC0204D8 + false + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + ResXFileCodeGenerator + + + + diff --git a/Example1.RazorPages.IndividualAccounts/Pages/Index.cshtml.cs b/Example1.RazorPages.IndividualAccounts/Pages/Index.cshtml.cs index baa20111..178da7ab 100644 --- a/Example1.RazorPages.IndividualAccounts/Pages/Index.cshtml.cs +++ b/Example1.RazorPages.IndividualAccounts/Pages/Index.cshtml.cs @@ -1,19 +1,26 @@ using System.Collections.Generic; using System.Linq; +using System.Reflection; +using AuthPermissions.BaseCode; using Example1.RazorPages.IndividualAccounts.Model; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Localization; namespace Example1.RazorPages.IndividualAccounts.Pages { public class IndexModel : PageModel { private readonly UserManager _userManager; + private readonly IStringLocalizer _localizer; - public IndexModel(UserManager userManager) + public IndexModel(UserManager userManager, IStringLocalizerFactory factory) { _userManager = userManager; + var type = typeof(ResourceLocalize); + var assemblyName = new AssemblyName(type.GetTypeInfo().Assembly.FullName); + _localizer = factory.Create("ResourceLocalize", assemblyName.Name); } [ModelBinder] @@ -25,6 +32,8 @@ public IndexModel(UserManager userManager) public void OnGet() { Users = _userManager.Users.ToList(); + var loc = _localizer["Test"]; + var result = loc.ResourceNotFound ? "Not found: " + loc.SearchedLocation : loc.Value; } } } diff --git a/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.ResourceLocalize.en.resx b/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.ResourceLocalize.en.resx new file mode 100644 index 00000000..8cbe45d0 --- /dev/null +++ b/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.ResourceLocalize.en.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + BaseCode.ResourceLocalize.en + + \ No newline at end of file diff --git a/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.Resources.ResourceLocalize.en.resx b/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.Resources.ResourceLocalize.en.resx new file mode 100644 index 00000000..f8c80ee2 --- /dev/null +++ b/Example1.RazorPages.IndividualAccounts/Resources/AuthPermissions.BaseCode.Resources.ResourceLocalize.en.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Using !!! AuthPermissions.BaseCode.Resources.ResourceLocalize.en + + \ No newline at end of file diff --git a/Example1.RazorPages.IndividualAccounts/Resources/BaseCode.ResourceLocalize.en.resx b/Example1.RazorPages.IndividualAccounts/Resources/BaseCode.ResourceLocalize.en.resx new file mode 100644 index 00000000..2109e2c7 --- /dev/null +++ b/Example1.RazorPages.IndividualAccounts/Resources/BaseCode.ResourceLocalize.en.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + AuthPermissions.BaseCode.ResourceLocalize.en + + \ No newline at end of file diff --git a/Example1.RazorPages.IndividualAccounts/Resources/ResourceLocalize.en.resx b/Example1.RazorPages.IndividualAccounts/Resources/ResourceLocalize.en.resx new file mode 100644 index 00000000..835701ba --- /dev/null +++ b/Example1.RazorPages.IndividualAccounts/Resources/ResourceLocalize.en.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ResourceLocalize.en + + \ No newline at end of file diff --git a/Test/Test.csproj b/Test/Test.csproj index bc4cbd30..de274347 100644 --- a/Test/Test.csproj +++ b/Test/Test.csproj @@ -54,7 +54,7 @@ - +