Release Notes | BlazorPlate - A Multi-Tenant SaaS Starting Point Template

Release Notes

Embark on an exhilarating journey through BlazorPlate-SaaS release notes, where each update is a testament to our unwavering commitment to excellence, dedication, and relentless pursuit of perfection. Like nurturing a baby, witness how our platform has grown and evolved into a powerhouse of innovation. Explore the latest enhancements, optimizations, breakthroughs, and advancements transforming software into a service (SaaS), and witness the future of BlazorPlate as it comes to life. Join us now and elevate your SaaS development experience to new heights!

Bug Fixes
  • Addressed an issue that led to failures in tenant creation through the Tenant Administration Portal (TAP), ensuring smooth management of tenants.
Code Refactoring
  • Optimized tenant management and cache service for improved performance and scalability.
  • Renamed TenantUrl to BaseTenantClientUrl across the projects for consistency and clarity in naming conventions.
  • Decomposed AppState into AudioService and OverlayService, enhancing audio-related functionalities and refining the management of progress indicator overlay.
  • Refactored HTTP status code handling in interceptors, enhancing error handling mechanisms.
  • Optimized TwoFactorAuthHttpInterceptor for improved authentication processes.
  • Marked NamedHttpClient class as abstract, facilitating better abstraction and extensibility.
  • Applied code cleanup for better readability and maintainability.
User Experience Enhancements
  • Rearranged "Remember this browser" switch position for better user experience and accessibility.
Miscellaneous
  • Updated nuget packages for all projects to ensure compatibility and leverage potential new features or security patches.
New Features
  • Introduced the API-Level 2FA Enforcement feature, mandating users to authenticate via 2FA when accessing designated APIs. This improvement redirects users to the 2FA page before proceeding, thereby adding an extra security layer to safeguard sensitive API endpoints and enhancing the overall security and authentication procedures of the application.
Code Refactoring
  • Modified LINQ extensions to declutter the codebase and improve performance.
  • Conducted minor code refactoring across the solution to enhance code maintainability and readability.
Bug Fixes
  • Fixed an issue in the background reporting services where the generated report was defaulting to the system culture instead of the user-selected language, ensuring accurate language representation in reports.
User Experience Enhancements
  • Implemented the "Remember this browser" functionality, giving users the option to remember their browser during Two-Factor Authentication, thus improving user convenience and experience.
Performance Improvements
  • Optimized the RefreshTokenCommandHandler by introducing a SemaphoreSlim to manage access to critical sections, resolving a concurrency issue and leading to smoother execution and enhanced performance.
Code Refactoring
  • Significantly refactored the 2FA module to enhance code readability and improve the overall user experience, ensuring smoother authentication processes.
  • Conducted additional minor code refactoring across the solution to enhance code maintainability and readability.
New Features
  • Implemented support for Separate Database Per Tenant in the Tenant Administration Portal (TAP), offering improved tenant management with individual databases for each tenant.
Bug Fixes
  • Fixed an issue where trimming caused publishing errors when deploying the Blazor WebAssembly (WASM) app, ensuring smoother deployment processes.
Bug Fixes
  • Fixed an issue where the Resend Email Confirmation page redirected users to a 404 page, ensuring a seamless user experience during email confirmation processes.
  • Fixed an issue where the Sign-up page redirected users to a 404 page, resolving a navigation error and improving the registration flow for new users.
Code Refactoring
  • Performed major code refactoring in the PermissionScanner service, enhancing code maintainability and readability for improved development workflows.
  • Performed minor code refactoring in the BinaryPlate.BlazorPlate project, enhancing code quality and readability.
Miscellaneous
  • Updated NuGet packages for all projects, ensuring compatibility and leveraging the latest features and improvements.
Code Refactoring
  • Refactored and improved code in ReportingHub and FileStorageService, enhancing performance and reliability.
  • Enhanced existing features by integrating the latest features available in .NET 8, ensuring the project is up-to-date with the latest technologies and improvements.
  • Performed minor code refactoring in the BinaryPlate.BlazorPlate and BinaryPlate.Application projects, improving code readability and structure.
Miscellaneous
  • Added documentation for the Authorization module in BinaryPlate.BlazorPlate, enhancing clarity and providing guidance for users.
  • Refined tenant-aware directory path and optimized blob container creation in BinaryPlate.Infrastructure, improving efficiency and scalability.
  • Revised README.md files to provide documentation and project information.
  • Updated nuget packages for all projects to ensure compatibility and leverage new features.
New Features
  • Upgraded the solution to .NET 8, leveraging the latest features, performance improvements, and security enhancements offered by the framework for enhanced reliability, performance, and security.
Code Refactoring
  • Replaced Mediator property with Sender property in the ApiController, enhancing code readability and efficiency.
  • Performed minor code refactoring across various modules to improve code quality and maintainability.
Miscellaneous
  • Implemented an email sender configuration section in the appsettings.json file, providing customization options and flexibility for email notifications.
  • Deleted unused images, reducing clutter and optimizing resource utilization in the application.
  • Updated nuget packages for all projects to ensure compatibility and leverage new features.
Bug Fixes
  • Resolved minor issues in the reporting module and 2FA module of BinaryPlate.BlazorPlate.
  • Fixed an issue where pending database migrations were not applied at application startup, ensuring database consistency.
  • Fixed issues with download functionality in the DangerZone page of BinaryPlate.BlazorPlate.
  • Resolved JWT validation issue by aligning issuer and audience settings in BinaryPlate.Infrastructure.
  • Fixed a validation issue in TokenSettings.razor of BinaryPlate.BlazorPlate.
Code Refactoring
  • Performed code cleanup and refactoring to enhance maintainability and performance.
  • Simplified response DTO's names for better user understanding.
Miscellaneous
  • Added SQL related exception handling properties, enhancing error management for SQL operations.
  • Introduced AvatarViewer component for improved user profile management.
  • Performed comments cleanup for code readability and documentation improvement.
  • Updated nuget packages for all projects to ensure compatibility and leverage new features.
Bug Fixes
  • Fixed an issue where the Italy language setting displayed backend messages in English instead of Italian, improving localization.
  • Addressed errors related to Concurrency Token Configuration for non-entity types in BinaryPlate.Infrastructure, ensuring data consistency and stability.
Code Refactoring
  • Performed code cleanup to enhance maintainability and readability.
  • Performed comments cleanup and code cleanup, enhancing code quality and maintainability.
  • Conducted minor code refactoring in NavigationManagerExtensions.TryGetQueryString of BinaryPlate.BlazorPlate, optimizing code structure.
Miscellaneous
  • Updated nuget packages for all projects, ensuring compatibility with the latest dependencies and leveraging new features or fixes.
Bug Fixes
  • Fixed an issue where the UpdateIdentitySettingsCommand in the application project properties was not aligned with its counterpart in the BlazorPlate project, ensuring consistency.
Code Refactoring
  • Performed minor code refactoring in various parts of the codebase to improve maintainability and readability.
Bug Fixes
  • Fixed a minor issue in the PermissionService of BinaryPlate.Application, ensuring correct functionality.
Code Refactoring
  • Performed minor code refactoring in the TokenGeneratorService of BinaryPlate.Infrastructure to enhance code quality and maintainability.
  • Performed minor code refactoring in the MultiTenancyMiddleware of BinaryPlate.Infrastructure to improve code quality and maintainability.
  • eliminated IApplicationDbContext from UpdateRoleCommand in BinaryPlate.Application as it was not utilized.
  • Performed minor code refactoring in BinaryPlate.BlazorPlate for better code organization and efficiency.
Miscellaneous
  • Updated nuget packages for all projects to leverage new features and security patches.
New Features
  • Implemented optimistic concurrency handling to detect and resolve data conflicts during updates.
Bug Fixes
  • Fixed an issue where the tenant onboarding portal returns an error when using SeparateDatabasePerTenant, ensuring smoother operation and eliminating potential disruptions for users.
  • Fixed an issue where the reporting services were not working with single tenant mode, ensuring compatibility.
User Experience Enhancements
  • Added FAQ list for Concurrency Conflict Handler feature to provide users with comprehensive guidance.
  • Added breadcrumb to Concurrency Conflict Handler feature page for enhanced navigation experience.
Code Refactoring
  • Performed minor code refactoring across various components, enhancing codebase readability, maintainability, and performance.
  • Performed minor code refactoring for improved maintainability and readability.
  • Performed comments cleanup for improved code readability.
Miscellaneous
  • Updated nuget packages for all projects to ensure compatibility and leverage new features.
New Features
  • Implemented OAuth 2.0 support for signing in with leading external login providers such as Microsoft, Google, LinkedIn, Twitter, and others. This addition broadens the application's user reach, providing diverse authentication avenues that elevate the authentication process, user experience, and accessibility.
Bug Fixes
  • Fixed an issue where GetRolePermissionsForEditQueryHandler threw an exception. This bug fix ensures that role permissions editing functions correctly, improving the reliability and stability of the application.
Code Refactoring
  • Removed empty code block sections from razor pages. This refactoring improves code cleanliness and readability, enhancing maintainability and reducing potential confusion for developers working on the project.
Bug Fixes
  • Resolved a multi-tenancy issue involving separate databases per tenant to ensure proper functionality.
  • Fixed Service Worker Install command issue in BinaryPlate.BlazorPlate.
Performance Improvements
  • Implemented caching mechanism to enhance performance by utilizing a Cache Service. This optimization aims to reduce response times and server load by caching frequently accessed data, resulting in a smoother user experience and improved overall system efficiency.
  • Enhanced the performance of the PermissionUseCase.GetAllPermissions() method by addressing a slowness issue, resulting in improved application responsiveness.
Security Enhancements
  • Addressed a critical security vulnerability where an attacker could manipulate the user's token to access data from another tenant, ensuring data integrity and confidentiality.
  • Updated ChallengeMiddleware to propagate correct status codes. This security enhancement ensures that the application responds with accurate HTTP status codes, improving error handling and security posture.
User Experience Enhancements
  • Added new resource keys and values in BinaryPlate.BlazorPlate to facilitate localization and improve user experience.
Code Refactoring
  • Enhanced efficiency by eliminating use cases and migrating their business logic to command and query handlers.
  • Deleted the IsDemo property from the ApplicationUser entity to eliminate redundant data and enhance database efficiency.
  • Renamed ImmediateReportingService to OnDemandReportingService for better clarity and consistency.
  • Refactored the GetAllPermissions method for improved efficiency and clarity, enhancing maintainability.
  • Performed major code refactoring to the AppSeederService to improve maintainability.
  • Refactored Reporting Services and File Storage Services to simplify the codebase and improve maintainability.
  • Performed additional minor code refactoring in BinaryPlate.Application to enhance code quality and maintainability.
  • Removed unused resources from BinaryPlate.AppResources.
Miscellaneous
  • Added an extra filter to the GetApplicants method in BinaryPlate.Application to improve data retrieval accuracy.
  • Updated the inline comments in the appsettings.json file of BinaryPlate.WebAPI for better clarity and understanding of configuration settings.
  • Renamed HostController to GatewayController.
  • Added XML comments for the undocumented services.
  • Updated nuget packages for all projects to ensure compatibility and leverage the latest features and improvements.
New Features
  • Implemented the FreezeUtcTimeService within Infrastructure.Services to enable time manipulation, ensuring a consistent time frame throughout the request lifecycle.
Bug Fixes
  • Fixed a security issue with Two-Factor Authentication (2FA) to ensure the protection of user accounts.
User Experience Enhancements
  • Added new resource keys and values to facilitate localization and improve user experience.
Code Refactoring
  • Performed minor code refactoring to improve the efficiency and readability of the codebase.
  • Replaced IList collections with IReadOnlyList in BinaryPlate.Application for improved performance and immutability.
  • Performed code analysis and minor refactoring to enhance code quality and maintainability.
  • Cleaned up codebase in BinaryPlate.Infrastructure and Presentation projects for improved readability and organization.
  • Refactored BackgroundReportingService and FileStorageService to optimize functionality and performance.
Miscellaneous
  • Updated features page in BinaryPlate.BlazorPlate to provide users with accurate information.
  • Added inline comments to enhance clarity in appsettings.Development.
  • Updated README.md file for project documentation.
New Features
  • Introduced BpExceptionHandlerMiddleware to enhance the application's exception handling capabilities. This middleware replaces the AutoWrapper external library, offering improved maintainability and performance while granting finer control over exception handling.
Bug Fixes
  • Resolved minor issues in the reporting module, ensuring its functionality.
  • Fixed minor issues in the 2FA module of BinaryPlate.BlazorPlate.
Code Refactoring
  • Adjusted some namespaces within the codebase to improve consistency and organization, enhancing maintainability and readability of the application's source code.
Miscellaneous
  • Added success and exception response schemas for Swagger API documentation, enhancing the API's usability and documentation completeness.
New Features
  • Implemented functionality allowing tenant owners to edit their tenant information, providing greater flexibility and control over tenant management.
Bug Fixes
  • Fixed a major issue where the tenant header was not set properly in the request header, ensuring correct tenant context for operations in the application.
  • Resolved the spinner center issue in the BlazorPlate project, enhancing the visual presentation and user experience.
  • Resolved a minor issue in the EmailChangeConfirmation component where the value of DisplayConfirmAccountLink was not properly set, ensuring correct functionality and user experience.
  • Resolved a right-to-left (RTL) issue in the Layout pages, ensuring proper rendering and alignment for languages that read from right to left.
  • Fixed an issue with the TenantResolver.SetConnectionString() method where the tenantName was not correctly set, ensuring accurate database connection setup for multi-tenant environments.
  • Resolved an issue where the Breadcrumb service was not rendered properly on the Index page, ensuring consistent navigation functionality within the application.
  • Fixed an issue where the GetPermissionsOnDemand() method in the application layer failed to load sub-permissions on demand, ensuring proper functionality and accurate permission retrieval.
  • Resolved an issue with the ReturnUrl property in the BlazorPlate component, ensuring its correct behavior and functionality within the application.
  • Addressed an issue with the RefreshToken service in BlazorPlate, ensuring its proper functioning and reliability for token refresh operations.
  • Fixed a bug in the Validate() method of the TenantResolver service within the infrastructure layer, ensuring accurate validation processes.
User Experience Enhancements
  • Added Romanian language support, expanding language options for users and enhancing accessibility for Romanian-speaking users.
  • Enhanced the AppSeederService.SeedDemoApplicants() method to generate more realistic data for demo applicants, improving the demonstration experience.
  • Implemented CancelationToken support in the loader indicator, improving responsiveness and user feedback during data loading processes.
Code Refactoring
  • Performed code refactoring in the multitenancy module to improve maintainability and readability.
  • Replaced the ServerSideValidator component with the ApiExceptionProvider, enhancing error handling and consistency in error responses.
  • Removed obsolete properties from several components in the BlazorPlate project, streamlining the codebase and reducing clutter.
  • Performed major code refactoring in the PermissionsUseCase and minor refactoring in the BlazorPlate project, improving code structure and performance.
  • Updated AuthStateProvider and added async support to the ValidationBehavior service class in the BinaryPlate.Application, enhancing functionality and responsiveness.
  • Applied new naming conventions to the EditContextServerSideValidator and ApiExceptionProvider, ensuring consistency and readability in the codebase.
  • Performed minor code refactoring and enhancements to improve code quality, readability, and maintainability.
Deprecations
  • Deprecated the nuget package "Toolbelt.Blazor.HttpClientInterceptor" within BinaryPlate.BlazorPlate. This action aims to streamline dependencies and minimize unnecessary overhead.
Miscellaneous
  • Updated README.md files to ensure accuracy and relevance of project documentation.
  • Performed minor enhancements across the application to improve overall functionality and user experience.
Bug Fixes
  • Fixed minor issues in the HttpService, ensuring smooth and reliable HTTP requests.
Performance Improvements
  • Enhanced performance and scalability in the BinaryPlate.BlazorPlate project by utilizing HttpClientFactory instead of directly using HttpClient, leveraging its advanced features and optimizations.
Code Refactoring
  • Performed major code refactoring in the HttpService and HttpInterceptor, improving code structure and maintainability.
  • Performed minor code refactoring in the RolesLookupDialog and Envelope components, enhancing code readability and organization.
  • Updated some obsolete properties in MudBlazor components, ensuring compatibility with the latest version and optimizing usage.
Miscellaneous
  • Added technical inline and XML documentation to the Domain, Application, Infrastructure, and WebAPI projects, facilitating better understanding of the codebase and improving maintainability.
  • Revisited the documentation in the Installation.razor component, improving clarity and usability of the installation instructions.
  • Fixed some minor documentation issues and updated the README.md file.
New Features
  • Implemented Single Database Per Tenant as a new data isolation strategy, enhancing the application's scalability and security by providing dedicated databases for each tenant.
Bug Fixes
  • Fixed a minor issue in the ResetPasswordConfirmation.razor component within BinaryPlate.BlazorPlate, ensuring smooth functionality and user experience.
  • Fixed a minor issue in the AppTokenOptions class within BinaryPlate.Application, ensuring correct configuration and operation of authentication-related functionality.
Code Refactoring
  • Performed major code refactoring in the host application, enhancing maintainability and readability.
  • Performed minor code refactoring in the BlazorPlate project to improve code quality.
  • Performed major code refactoring in the ApplicationRoleManager & ApplicationUserManager within the BinaryPlates.Application project, enhancing the structure and efficiency of user and role management.
  • Renamed TenantResolverService to TenantResolver, improving codebase clarity and consistency.
Miscellaneous
  • Added missing localized resources, ensuring comprehensive language support and improving accessibility for users.
  • Removed unused profiles in launchSettings.json within BinaryPlate.BlazorPlate, improving project organization and reducing clutter.
  • Updated nuget packages for all projects, ensuring compatibility with the latest dependencies and leveraging new features or security patches.
New Features
  • Introduced a new feature allowing users to upload files on the fly via a separate request before form submission, enhancing data submission flexibility and user experience.
Bug Fixes
  • Resolved an issue where the IdentityOptionsMiddleware failed when switching the app to single-tenant mode, ensuring seamless operation and configuration.
  • Fixed minor layout issues, enhancing overall interface consistency and aesthetics.
  • Fixed additional minor issues across the application, enhancing overall stability and reliability.
User Experience Enhancements
  • Added default avatar user icon in BinaryPlate.BlazorPlate, providing a visual representation for users and improving interface aesthetics.
Code Refactoring
  • Performed major code refactoring in FileStorageService within BinaryPlate.Infrastructure and minor code refactoring in BinaryPlate.Application and BinaryPlate.BlazorPlate, enhancing code maintainability, readability, and performance.
  • Performed minor enhancements across the application, improving various aspects of functionality and user experience.
Security Enhancements
  • Added IdentityOptions configuration section in BinaryPlate.WebAPI/appsettings.json, enhancing security configuration and customization options.
Miscellaneous
  • Moved BpMultipleFileUpload component to the FileUpload folder in BinaryPlates.BlazorPlate, improving project organization and navigation.
  • Added missing route paths to the breadcrumb menu in BinaryPlate.BlazorPlate, improving navigation and user guidance.
  • Unified BackendResources and FrontendResources projects into a single project, streamlining project structure and management.
  • Updated nuget packages for all projects to ensure compatibility with the latest dependencies and leverage new features or security patches.
User Experience Enhancements
  • Improved consistency and navigation by adding missing resources to the breadcrumb menu in BinaryPlate.BlazorPlate.
Bug Fixes
  • Fixed minor issues with the projects' launchSettings.json, ensuring proper configuration and smooth execution of the application.
  • Fixed an issue where the IdentityOptionsMiddleware failed when switching the app to single tenant mode, ensuring smooth operation of the application under various configurations.
  • Fixed a minor layout issue in BinaryPlate.BlazorPlate, ensuring consistent and visually appealing interface elements.
Code Refactoring
  • Performed minor code refactoring in BinaryPlate.Application and BinaryPlate.BlazorPlate, enhancing code quality and maintainability.
  • Renamed FileUploadDialog to BpFileUploadDialog in BinaryPlate.BlazorPlate, improving component naming consistency and clarity.
  • Renamed BpUploadFile to BpFileUpload in BinaryPlate.BlazorPlate, ensuring naming consistency and clarity within the project.
  • Removed AppBrand.Razor from BinaryPlate.BlazorPlate, streamlining the project structure and reducing unnecessary files.
Miscellaneous
  • Updated nuget packages for all projects to ensure compatibility with the latest dependencies and leverage new features or security patches.
Bug Fixes
  • Fixed minor bug issues to ensure the application operates smoothly and without interruptions.
Code Refactoring
  • Removed unused files and methods to declutter the codebase.
  • Renamed some services by adding "Service" postfix for consistency and clarity.
  • Performed minor code refactoring in the FileStorageService to improve code readability and maintainability.
Bug Fixes
  • Fixed an issue where the IdentityOptionsMiddleware failed when switching the app to single-tenant mode. This ensures smooth operation of the application in both single-tenant and multi-tenant environments, enhancing reliability.
  • Fixed minor issues with the projects' launchSettings.json, ensuring proper configuration for development and deployment environments.
  • Fixed minor bug issues across the application, enhancing overall stability and performance.
  • Fixed an issue where the IdentitySeeder was unable to seed the database with the host user. This fix ensures that the database seeding process functions correctly, enabling the proper initialization of the application with essential user data.
  • Fixed an issue with ManageUseCase where changing the email was not working properly, ensuring smooth functionality and user data accuracy.
  • Resolved an issue with ManageUseCase where changing the email was not functioning correctly, ensuring proper functionality and user management within the application.
  • Fixed an issue where the host admin was not created properly when creating a new account in the host portal for the first time, ensuring seamless account creation and management.
  • Fixed an issue where the IdentitySeeder was unable to seed the database with the host user, ensuring proper database seeding and application initialization.
  • Fixed some minor routing issues BinaryPlate.BlazorPlate, ensuring consistent navigation and user experience.
  • Fixed some performance issues, aiming to improve overall system efficiency and responsiveness.
User Experience Enhancements
  • Enhanced the layout in BinaryPlate.BlazorPlate to improve visual presentation and user experience, addressing minor inconsistencies.
  • Translated some resources to improve accessibility and usability for users speaking different languages. This enhancement enhances inclusivity and broadens the application's user base.
Code Refactoring
  • Restructured some folders within the codebase to improve organization and maintainability. This refactoring effort enhances code readability and developer efficiency, contributing to long-term project sustainability.
  • Performed minor code refactoring in BinaryPlate.Application, BinaryPlate.BlazorPlate, and BinaryPlate.HostApp, improving code maintainability and readability.
  • Removed unused methods, files, and extra variables across the application, optimizing resource utilization and improving performance.
  • Renamed some services by adding "Service" postfix, improving consistency and clarity in service naming conventions.
  • Removed unused references, adjusted namespaces, and extracted global usings, contributing to codebase cleanliness and maintainability.
Miscellaneous
  • Added a new flag to the NavigationService.NavigateToTenantPortalAsync method in BinaryPlate.BlazorPlate, allowing users to be transferred to the registration page when accessing a tenant portal from within the host portal, enhancing flexibility and user experience.
  • Added SeedApp() method to the DataSeeder service to seed the default user in SingleTenantMode environment, ensuring smoother setup and configuration for new instances.
  • Introduced a new flag to the NavigationService.NavigateToTenantPortalAsync to determine whether users should be redirected to the registration page when accessing a tenant portal from within the host portal, enhancing flexibility and user guidance.
  • Updated NuGet packages for all projects to ensure compatibility and leverage the latest features and improvements.
New Features
  • Upgraded the solution to .NET 7, leveraging the latest features, performance improvements, and security enhancements offered by the framework for enhanced reliability, performance, and security.
  • Introduced the Tenant Administration Portal, a significant breakthrough in tenant management. This development serves to considerably enhance administration capabilities. It equips host admins with an array of potent tools required for productive tenant management.
Security Enhancements
  • Added TenantVisibility property to the ApplicationPermission entity, enabling fine-grained permission management tailored to tenant-specific operations, further enhancing security and customization capabilities.
  • Added HostVisibility property to the ApplicationPermission entity, enabling fine-grained permission management tailored to host-level operations, further enhancing security and customization capabilities.
Code Refactoring
  • Performed minor code refactoring in the BinaryPlate.Application project to improve code quality, maintainability, and readability, ensuring a robust and sustainable codebase.
  • Removed unnecessary tags from project assemblies, streamlining the application's build process and reducing unnecessary clutter, contributing to improved performance and efficiency.
Performance Improvements
  • Removed the dbContext parameter from the UpdateApplicantCommand.MapToEntity method to gain better performance, enhancing the overall responsiveness and efficiency of the application.
Code Refactoring
  • Optimized the AppSettings module with major code refactoring, improving code quality and maintainability.
  • Performed additional minor code refactoring and enhancements throughout the solution to enhance overall code quality.
Miscellaneous
  • Removed BinaryPlate.Common reference, streamlining the project structure and reducing dependencies.
Bug Fixes
  • Fixed an issue where the RoleManager & UserManager cannot be called from the DbContextSeeder service due to an invalid implementation in the MultiTenantRoleValidator and MultiTenantUserValidator, ensuring proper functionality of role and user management.
  • Resolved performance issue in the AddOrRemoveDirectUserPermissionsAsync method, improving application responsiveness.
Code Refactoring
  • Performed minor code refactoring and enhancements throughout the solution to enhance overall code quality.
Miscellaneous
  • Updated nuget packages for all projects to ensure compatibility and leverage potential new features or security patches.
Bug Fixes
  • Corrected minor typos, improving the accuracy of the application's content.
Code Refactoring
  • Reverted back the original name of the GetPermissions endpoint in BinaryPlate.BlazorPlate, addressing a naming inconsistency and ensuring compatibility with the application's functionality.
  • Performed minor code refactoring in the EF Configurations files, improving maintainability and readability of the codebase in BinaryPlate.Infrastructure.
  • Eliminated unused dependencies and properties for enhanced code cleanliness and readability.
  • Performed code clean up in the BinaryPlate.BlazorPlate project, removed unused types, and adjusted namespaces, enhancing codebase readability and maintainability.
  • Performed minor code refactoring in the BinaryPlate.Application project, improving code structure and organization.
Miscellaneous
  • Updated version number in Swagger, reflecting the current version of the application.
  • Added GetUsersInRoleCountAsync method in the UserManager in BinaryPlate.Application, providing a convenient way to retrieve the count of users in a specific role.
  • Removed useless comments in the TokenGeneratorService, enhancing code cleanliness in BinaryPlate.Infrastructure.
  • Added IsSuperAdmin property to the ApplicationUser entity, enhancing user management capabilities and allowing differentiation of super admin users.
  • Updated README.md with relevant information.
  • Updated all nuget packages for all projects to ensure compatibility and leverage new features and security patches.
User Experience Enhancements
  • Enhanced user experience by providing more control over menu visibility based on user permissions, leading to a more tailored and intuitive navigation experience.
Code Refactoring
  • Performed code refactoring in the ClientSideAuthorization proof of concept (POC) and in the Applicants Module, improving code maintainability and readability.
  • Performed code cleanup, ensuring codebase hygiene and organization.
Miscellaneous
  • Added a new extension method to check whether the user has the required permission, enhancing user access control and permission management.
  • Added an example in the NavMenu.razor file illustrating how to dynamically hide and show menu items based on user permissions, improving the user interface customization.
  • Updated all nuget packages for all projects, ensuring compatibility with the latest versions of dependencies.
New Features
  • Introduced custom permissions functionality, enabling system administrators to customize user interface elements based on user permissions, enhancing user access control and interface flexibility.
Bug Fixes
  • Resolved an issue in HttpInterceptorService.cs where methods were not unsubscribed properly, preventing memory leaks and improving performance.
  • Fixed minor bugs in the Applicants POC module, ensuring smoother functionality and user experience.
  • Fixed an issue in the DataExportHub.OnConnectedAsync method where the null check for identity was not functioning correctly, enhancing reliability and stability.
  • Resolved a recurring issue within BinaryPlates.WebAPI, where the GetUserName method inadequately handled unauthorized exceptions, ensuring more seamless error management and enhancing the overall user experience.
  • Fixed a significant issue in the AccountUseCase.RefreshToken method where the access token was not renewed when required, improving security and authentication andensuring uninterrupted user sessions.
  • Rectified a critical issue where an expired access token was not invalidated when necessary, enhancing application security.
  • Fixed an issue in HttpInterceptorService.cs where methods were not unsubscribed properly, ensuring proper execution and preventing memory leaks.
  • Fixed an issue where the filtering in the Users Module was not functioning correctly in BinaryPlates.BlazorPlate, ensuring accurate data presentation.
  • Resolved CORS (Cross-Origin Resource Sharing) policy issues in both single and multi-tenant modes, ensuring proper communication between client and server.
  • Fixed Null Reference exception occurring when an unauthenticated user searches for items in BinaryPlates.BlazorPlate, ensuring uninterrupted application functionality and preventing errors.
  • Resolved an issue in BinaryPlates.WebAPI where the filtering criteria in the Reports Module was not functioning correctly, ensuring accurate data filtering.
  • Fixed an issue with the filtering criteria in the ReportUseCase module, ensuring accurate data filtering and search functionality.
Performance Improvements
  • Converted BeforSend and AfterSend methods to Async version in HttpInterceptorService.cs, potentially improving responsiveness and efficiency.
  • Optimized BlazorPlate app initial load time by enabling trimming support, enhancing overall performance.
User Experience Enhancements
  • Added Striped attribute to all table components, improving readability and visual consistency.
  • Set LightMode as the default theme, providing users with a cleaner and more visually appealing interface by default.
  • Set LightMode as the default theme in BinaryPlates.BlazorPlate, improving the default visual experience for users.
  • Added notification messages to indicate the status of SignalR hubs connection, enhancing user feedback and interaction.
  • Updated the dark mode behavior in MainLayout.razor, improving the visual experience for users.
  • Added Italian localization support, expanding the application's accessibility to Italian-speaking users and improving global usability.
  • Improved dark mode behavior and cleaned up code in the MailLayout component, ensuring a consistent and visually appealing user experience.
  • Added a toggle button to start and stop the SignalR Hub connection in the Applicants Module, providing users with more control over real-time communication.
Code Refactoring
  • Renamed MaxDepth variable to MaxParentCount in PermissionUseCase.GetLoadedOneShotPermissions for better clarity and understanding.
  • Performed minor code refactoring across various components and classes to maintain code cleanliness and organization.
  • Renamed variables and methods for clarity and consistency.
  • Removed unnecessary code and partial keyword from classes, improving code readability and maintainability.
  • Removed unused methods, reducing code clutter and improving codebase cleanliness.
  • Performed minor code refactoring in the BinaryPlate.BlazorPlate project, enhancing code maintainability and readability.
  • Removed unused methods and cleaned up the codebase, ensuring optimal performance and reducing technical debt.
Miscellaneous
  • Updated README.md and created a new one, ensuring up-to-date project documentation.
  • Updated nuget packages for all projects, ensuring compatibility with the latest versions and leveraging new features.
Bug Fixes
  • Fixed an issue where the filtering in the Users page was not working properly, ensuring accurate data representation and user interaction.
  • Fixed the CORS Policy issue in single tenant mode, resolving cross-origin resource sharing problems and ensuring proper communication between client and server.
  • Fixed a minor issue where the GetRolePermissions endpoint was not identical to its signature, ensuring consistency and accuracy in API responses.
Performance Improvements
  • Optimized BlazorApp initial load time by enabling trimming support, resulting in faster application startup and improved user experience.
  • Added .AsNoTracking() method for read-only scenarios, enhancing database performance and reducing resource consumption.
Miscellaneous
  • Included XML Comments in Swagger for improved API documentation and clarity.
Bug Fixes
  • Fixed a minor issue where the GetRolePermissions method was called twice during page initialization, ensuring proper data retrieval and reducing unnecessary overhead.
  • Fixed the exception "WebSocket is closed before the connection is established," resolving WebSocket connection issues for improved reliability.
  • Fixed an issue where the EditUser form incorrectly validated password properties that did not exist as fields in the form, ensuring accurate form validation.
  • Resolved an issue where the form did not allow adding a new user with an empty password, enhancing usability and flexibility in user management.
  • Fixed minor issues with the HubConnection, ensuring stable and reliable WebSocket connections.
Code Refactoring
  • Performed minor code refactoring in various modules, improving code maintainability and readability.
Miscellaneous
  • Introduced a new extension method, GetSubDomain(), to the NavigationManager service, facilitating easier access to subdomain information within the application.
  • Updated nuget packages for all projects, ensuring compatibility and leveraging the latest features and improvements.
Bug Fixes
  • Fixed a minor issue in the CreateSampleApplicants() method, ensuring proper functionality within the TenantUseCase.cs component.
  • Fixed critical issue in the TenantResolver.cs, ensuring proper tenant resolution.
  • Fixed an issue in the InitializeTree in EditRole.razor.cs where lazy loading was not working properly, improving application stability.
  • Fixed an issue where breadcrumb disappeared when initiating SignalR connection, enhancing user experience.
  • Fixed design issue in the Applicants.html, improving interface aesthetics.
  • Fixed some minor bugs in the Applicant References module, ensuring smoother functionality.
  • Fixed an issue where the GenerateApplicantsPdfFromHtml was not rendering the nested References array, ensuring accurate report generation.
  • Fixed a minor issue where the filtering in the Users page was not functioning correctly, enhancing user experience.
  • Fixed minor bugs in the Applicants POC, ensuring smoother functionality.
  • Fixed an issue where the GetUserName method did not handle unauthorized exceptions properly, enhancing security.
  • Fixed an issue where the form did not allow adding a new user with an empty password, improving user interaction.
  • Fixed minor issues with the HubConnection, ensuring proper functionality.
  • Fixed an issue in the DataExportHub.OnConnectedAsync method, improving hub connection stability.
User Experience Enhancements
  • Added ActivePanelIndex to the Applicants.razor.cs, improving user interaction.
  • Polished some areas in the Reporting Module, enhancing overall user experience.
Code Refactoring
  • Renamed the GetCategoryProjection method to GetPermissionsRecursively in the PermissionUseCase.cs component, improving code clarity and consistency.
  • Performed minor code refactoring in the Index.razor.cs component of the Blazor application, enhancing maintainability and readability.
  • Removed unnecessary 'partial' keyword from some classes, ensuring a cleaner and more concise codebase.
  • Removed unused methods and unnecessary partial keywords, ensuring a cleaner and more efficient codebase.
  • Renamed the GetCategoryProjection method to GetPermissionsRecursively in the PermissionUseCase.cs, enhancing code clarity and consistency.
  • Performed additional minor code refactoring and enhancements throughout the solution to enhance overall code quality.
Miscellaneous
  • Added Min and Max values for the generated SSN in the CreateSampleApplicants() method, improving data integrity.
  • Updated nuget packages for all projects, ensuring compatibility and leveraging new features and security patches.
Bug Fixes
  • Fixed minor issue where the AllowedUserNameCharacters were set to an invalid character set, ensuring proper user validation.
  • Fixed major bugs in the data export module, ensuring smoother functionality.
  • Fixed an issue where the X-Tenant header was not passed to the SignalR Hub and Hangfire Jobs, ensuring proper tenant identification.
  • Fixed some typos and performed minor coding bug fixes, ensuring code quality.
Performance Improvements
  • Excluded unnecessary checks from tenant verification, optimizing system performance.
User Experience Enhancements
  • Added Snackbar alerts to notify users about the status of the report being generated, improving user interaction.
Code Refactoring
  • Performed code clean-up and refactoring in various modules to improve maintainability and readability.
Miscellaneous
  • Updated nuget packages for all projects to leverage new features and bug fixes.
  • Installed missing package "Microsoft.AspNetCore.SignalR" to support SignalR functionality.
New Features
  • Introducing the AutoRedirect functionality to the 401 error page, empowering administrators to customize automatic redirection for unauthorized users directly to the login page.
  • Introducing PWA (Progressive Web App) support, empowering users to install the application on their devices for an app-like experience, even in offline mode.
  • Introducing Reporting Services utilizing Hangfire and SignalR, providing efficient reporting with background processing and real-time updates.
  • Implemented a new feature in the Data Export Service to notify only the report issuer, improving communication efficiency.
Bug Fixes
  • Fixed an issue in BpUploadFile.razor.cs where uploaded files exceeding the maximum size were erroneously displayed in the image viewer, ensuring correct file handling.
  • Fixed some typos across the application for better code readability and consistency.
  • Fixed an issue in the BlazorPlate/Settings Module where the settingsId was not properly set in a hidden field, ensuring accurate data processing.
  • Added missing string interpolation in the HTTP delete methods, ensuring correct data processing and communication.
  • Fixed minor bugs in Applicants Master-Details POC, ensuring correct functionality.
  • Fixed minor bugs in the ApplicantReferencesForEdit.razor.cs POC, improving the editing experience.
  • Fixed an issue where the breadcrumb component was not displaying items properly, ensuring consistent navigation experience.
  • Fixed minor bugs in the ApplicantUseCase.cs/GetApplicants, ensuring accurate retrieval of applicant data.
  • Fixed an issue where the Breadcrumb disappeared when resizing the window, maintaining UI stability.
Security Enhancements
  • Replaced role-based authorization with permission-based authorization in the BlazorPlate project, improving security by utilizing a more granular access control approach.
  • Enhanced token management within the front-end project involves the implementation of the AccessTokenProvider, ensuring improved security by regulating access tokens.
Performance Improvements
  • Added ConfigureAwait(false) to the HttpService.cs to prevent potential deadlocks during asynchronous operations, enhancing application stability.
User Experience Enhancements
  • Set Dark Mode as default, providing users with an alternative interface option for improved visibility and reduced eye strain.
  • Added LoginRedirectIfUserNotAuthenticated and LoginRedirectIfUserNotAuthorized props to the 401 error page, improving user experience by handling unauthorized access more gracefully.
  • Polishing the Applicant-References Master-Details form, enhancing the user interface and workflow.
  • Added some localization resources, improving accessibility for users in different regions.
  • Converted WPA PNG icons to SVG for better scalability and visual quality.
Code Refactoring
  • Performed code refactoring across various areas of the BlazorPlate project, including DashboardHub, Data Export services, some razor pages, and reporting module, to enhance maintainability, readability, and performance.
Miscellaneous
  • Reinitialized permission list in the permission dialogue lookup when needed, ensuring accurate permission management.
  • Added One-Many relationship between Applicant and References, facilitating better data management and organization.
  • Enhanced data integrity of the Applicant's References POC entity collection by introducing server-side validators, thereby augmenting data validation and user direction.
  • Added HTML to PDF Converter functionality in the HtmlReportBuilder.cs, allowing users to generate PDF reports from HTML content.
  • Implemented Export to PDF function in the Applicant POC module, enabling users to export applicant data to PDF format for easy sharing and printing.
  • Added new elements to BlazorPlate/Index.razor to enhance the overall application layout.
Bug Fixes
  • Fixed nullable warning and minor flag issues in AddUser.razor and EditUsers.razor, ensuring correct application behavior and data handling.
  • Fixed an issue where the MudDialog was not closing when the user's access token expired, enhancing user experience and application reliability.
User Experience Enhancements
  • Added AppBrand component to display the application name and logo, providing users with visual identification and branding.
  • Fixed minor RTL styling issue and added the cancel button label to the resource file, improving the overall user interface and accessibility.
Code Refactoring
  • Removed unused tags in BlazorPlate/Index.html for improved code cleanliness and optimization.
  • Removed unused namespace from EditUser.razor.cs and performed minor updates for improved code maintenance.
Miscellaneous
  • Added Null check in AfterSendAsync/HttpInterceptorService.cs to enhance security and prevent potential null reference exceptions.
  • Added AutoWrapperExcludePath for dashboardhub in WebApi/Program.cs to optimize routing and exclude unnecessary paths.
  • Updated nuget packages for all projects to ensure compatibility and leverage new features or security patches.
Bug Fixes
  • Fixed an issue with GetUserAPI where there was a conflict in some namespaces, ensuring proper functionality.
  • Fixed a minor issue with DashboardHub relative URL in BlazorPlate/Index, ensuring correct URL resolution.
  • Fixed a minor bug where the reference of ServerSideValidator was missing in the dashboard page, ensuring proper display of dashboard server exceptions.
  • Fixed an issue where the unauthenticated user was sometimes not transferred to the 401 page, ensuring consistent user experience.
  • Fixed an issue where the MudBreadcrumbs disappeared when requesting the same page for a second time, ensuring breadcrumb visibility.
  • Fixed an issue where the access token is sometimes not refreshing, ensuring proper authentication.
  • Resolved issues with ApplicationUserManager's SendResetPasswordAsync method in single tenant mode, ensuring proper functionality.
  • Fixed namespace conflicts and typos, enhancing code consistency and readability.
  • Fixed layout issues and minor bugs, improving overall application stability and user experience.
  • Fixed an issue with ValidationBehavior returning exceptions, ensuring smooth validation processes.
  • Addressed an issue where role.TenantId was incorrectly set to null, ensuring proper data handling.
  • Fixed minor typos in Installation page, improving documentation clarity.
  • Fixed minor issue with RequiresTwoFactor property in LoginResponse object, ensuring proper authentication flow.
User Experience Enhancements
  • Moved some header buttons in the BlazorPlate project to the HeaderButtons component, enhancing code organization and modularity.
  • Added Class="mt-4" to the error pages in the BlazorPlate/Pages/Shared/401|404 for improved page layout.
  • Auto fill username and password in the login page for demo purposes, providing convenience during demonstrations.
  • Added BP official YouTube channel link, providing users with access to additional resources and tutorials.
  • Introduced MobileButtons component to enhance mobile view usability, improving accessibility for mobile users.
  • Removed unnecessary links from MainLayout, improving navigation simplicity.
  • Recovered missing links and updated contents of Localization resources, enhancing user engagement and accessibility.
Code Refactoring
  • Combined Program.cs and Startup.cs in the WebAPI project into one file and removed Startup.cs, simplifying project structure.
  • Converted to file scope namespace for all projects files, improving namespace management.
  • Removed unused code from HttpService in the BlazorPlate project, enhancing code cleanliness.
  • Removed unused code in Utilities.js in the BlazorPlate project, improving codebase optimization.
  • Renamed DynamicAuthorize to BPAuthorize for improved clarity and consistency.
  • Moved ApplicationUserClaimConfiguration to a separate file for better organization.
  • Refactored EditUser module, BpUploadFile component, and other areas for improved code structure and readability.
  • Refactored MultiTenantUserValidator and MultiTenantRoleValidator for better maintainability.
  • Performed minor code refactoring in various modules, enhancing code maintainability and performance.
Miscellaneous
  • Added GlobalUsings.cs to each project for centralized management of global usings, enhancing code organization.
  • Implemented TreeProjectionUsingRecursiveExpression as an alternative option in GetLoadedOneShotPermissions, expanding functionality.
  • Updated nuget packages for all projects to ensure compatibility and leverage new features or security patches.
New Features
  • Upgraded the solution to .NET 6, leveraging the latest features, performance improvements, and security enhancements offered by the framework for enhanced reliability, performance, and security.
  • Added Remove Avatar functionality, providing users with the ability to easily remove their avatar, enhancing profile management capabilities.
Bug Fixes
  • Fixed broken images, ensuring visual elements display correctly.
  • Resolved issues with token expiration date format, ensuring compatibility with Arabic culture.
  • Addressed various minor bugs and UI issues, improving overall application stability and user experience.
  • Fixed issues related to refresh token functionality, ensuring proper functioning and security.
  • Fixed a critical issue where transaction rollback was not working correctly, ensuring data integrity.
  • Fixed ReturnUrl bug and minor issues with Two-Factor Authentication (2FA), enhancing overall application security.
Performance Improvements
  • Enabled BlazorCacheBootResources and optimized code, enhancing application performance.
  • Added await InvokeAsync(StateHasChange) in MainLayout.razor.cs, improving responsiveness.
User Experience Enhancements
  • Implemented Hijri Date Format and other UI refinements, enhancing accessibility and localization.
Code Refactoring
  • Refactored TokenGeneratorService and TryRefreshToken code for better maintainability and readability.
  • Performed minor code refactoring throughout the solution to enhance overall code quality.
Miscellaneous
  • Updated NuGet packages to the latest versions, ensuring compatibility and leveraging new features and security patches.