Releases: axuno/Volleyball-League
Releases · axuno/Volleyball-League
v8.0.0
Migration from v7.x to v8.0
1. WebAppStartup:
- Replace
CustomMainNavigationNodeBuilder
from Demo project withMainNavigationNodeBuilder
fromLeague
project - Add new service
TenantContentProvider
- Remove the reference
using League.WebApp.ViewComponents
;
services.AddScoped<IMainNavigationNodeBuilder, MainNavigationNodeBuilder>();
services.AddSingleton<ITenantContentProvider, TenantContentProvider>();
2. Migrate razor views to HTML partials together with metadata
- Source folder:
Views\TenantContent\<tenant>
- Target folder:
wwwroot\pages\
- Home_Index.cshtml => _home.html
- Info_RuleOfGame.cshtml => _rule-of-game.html
- Info_News.cshtml => _news.html
3. Add JSON metadata files
- Every HTML file has a metadata JSON file as a companion
- Home_Index.cshtml => _home.json
- Info_RuleOfGame.cshtml => _rule-of-game.json
- Info_News.cshtml => _news.json
- The JSON files have the following content, that will be deserialized to
League.Models.TenantContent.ContentItem
s
{
"Position": 0,
"PageTitel": "<PageTitel>",
"Description": "<Content for the HTML meta tag 'Description'>",
"MenuTitel": "<The titel as show in the menu>",
"Topic": "<The topic name used in the URL>",
"IsActive": true,
"LastModified": "2025-01-02T12:00:00Z",
"PubDate": "2025-01-02T12:00:00Z"
}
4. Other Changes
- The
TenantContent
controller is replaced by theTenantContent
controller of theLeague
project, - Same for
Views\TenantContent\Home.cshtml
. _Layout.cshtml
: Only the "general contact" is mentioned now, the tenant contact will be displayed as fixed tenant menu item.<a asp-route="@RouteNames.GeneralContact" class="d-inline-block me-4">@Localizer["Contact"]</a>
What's Changed in Detail
1. Move tenant content from razor views to pure html in wwwroot folder
- Move controller TenantContent from project Demo to League
- Tenant content html have the same name as the url segment for the topic
e.g.:- pages\otherorg_index.html (info about the tenant)
- pages\otherorg_news.html (posted news)
- pages\otherorg_rule-of-game.html (tenant rule of game)
- pages\Files\otherorg_ball.png (uploaded tenant content files)
- Include
pages
folder for League.Demo in the repository
2. Created a tenant content folder /wwwroot/pages
- HTML content is file _.html
- Metadata is in file _.json
- Created new home.html, home.json, news.html, news.json, rule-of-game.html, and rule-of-game.json files with metadata and placeholder content.
- Added a new home.cshtml view to render tenant content.
- Simplified footer in _Layout.cshtml by removing tenant-specific logic for the "Contact" link.
- Updated
WebAppStartup
to use scopedMainNavigationNodeBuilder
and singletonTenantContentProvider
3. Integration
- Updated WebAppStartup.cs to use
MainNavigationNodeBuilder
instead ofCustomMainNavigationNodeBuilder
- Deleted
CustomMainNavigationNodeBuilder
class and related usings. - Added class
ITenantContentProvider
to handle tenant content - Added a new
ContentItem
class in ContentItem.cs to represent a content item for a tenant. - Introduced a new interface
ITenantContentProvider
- Implemented
ITenantContentProvider
interface inTenantContentProvider
- Added new methods in
MainNavigationNodeBuilder
to create tenant-specific navigation nodes. - Updated
TenantContent
controller to useITenantContentProvider
and added a new Home action.
4. Migrate to async
- Updated
IMainNavigationNodeBuilder
interface to make GetNavigationNodes method asynchronous. - Updated
MainNavigation
component andMainNavigationComponentModelExtensions
to use asynchronous methods. - Updated Default.cshtml and NavigationNodeChildDropdownPartial.cshtml to use asynchronous methods for CSS class generation.
5. Miscallaneous
- Updated .gitignore to include pages directory
- Fix a bug in
Axuno.Tools.FileSystem.DelayedFileSystemWatcher
when processing directory changes - Move view TenantContent.Home.cshtml from Demo to League project
Full Changelog: v7.2.4...v8.0.0
v7.2.4
What's Changed
1. Enhancements:
- Updated the
LeagueStartup
andUnitTestHelpers
class to improve initialization and configuration of services for unit tests. - Ensured the database connection is properly opened and closed during initialization.
- Enhanced logging configuration to capture message templates and properties using NLog.
- Added localization support to the service provider for better handling of localized strings in tests.
- Improved the
GetStandardServiceProvider
method to include additional services required for testing.
2. Package Updates:
- Updated
Microsoft.Extensions.Logging
from5.0.0
to6.0.0
. - Updated
NLog.Extensions.Logging
from5.0.0
to6.0.0
. - Updated
Microsoft.AspNetCore.TestHost
from5.0.0
to6.0.0
. - Added reference to
Microsoft.Data.SqlClient
5.2.2
, replacing obsolete classes inSystem.Data.SqlClient
.
3. Code Cleanup:
- Removed unused namespaces and organized using directives for better readability.
- Added XML documentation comments to public methods and properties for better code documentation.
Bump version to v7.2.4
Full Changelog: v7.2.3...v7.2.4
v7.2.3
What's Changed
- Re-integrate ICal.Net for ICalendar generation
- Update nuget pkg referencing vulnerable System.Text.Json v8.0.4
- Update 16 other nuget pkg to latest version
Full Changelog: v7.2.2...v7.2.3
v7.2.2
What's Changed
- Fix partly broken import of German excluded match dates in #196
- Replace Ical.Net package and update Calendar class in #197
- Completed todos from task list for classes Match and RankingRepository in #198
- Update logging following conventions in #199
- Provide
DateTimeKind
when creating anyDateTime
objects in #200 - Improve accessibility of html elements in #201
- Optimize collection access in #202
- Improve code quality across multiple files in #203
- Add ModelState validation checks for all controller actions in #204
- Enhance security for links, cookies, and regex operations in #205
- Bump version to v7.2.2 in #206
Full Changelog: v7.2.1...v7.2.2
v7.2.1
- Refactor the
TimeZoneConverter
class to eliminate dependencies on theNodaTime
library, now usingTimeZoneInfo
from NET8.0 framework. - Simplify the constructor to require only an IANA timezone ID and an optional
CultureInfo
object. - Update
ToZonedTime
andToUtc
methods for timezone conversions usingTimeZoneInfo
. - Replace
ZonedTime
return value withIZonedTimeInfo
interface. - Remove
NodaTime
package reference fromAxuno.Tools.csproj
. - Add
GetSystemTimeZoneList
,GetIanaTimeZoneList
, andCanMapToIanaTimeZone
methods. - Update
IZonedTimeInfo
interface with additional properties and fully qualified names. - Update test methods to
TimeZoneConverterTests
for handling unknown timezone IDs and default culture usage. - Update
TimeZoneConverterTests
to reflect the refactoredTimeZoneConverter
class. - Bump version to v7.2.1
v7.2.0
What's Changed
- Update T-SQL script to seed with initial data in #185
- Update Chromium web browser in #186
- Puppeteer update in #187
- Add parameter --no-sandbox to PuppeteerSharp.LaunchOptions in #188
- Change ILogger.LogCritical to ILogger.LogError in #189
- Add PDF generation using the new HtmlToPdfConverter in #191
- Refactor PDF generation with ReportSheetCache in #190
- Update NuGet package dependencies across projects in #193
- Enhance time zone handling and add unit tests in #194
Full Changelog: v7.1.2...v7.2.0
v7.1.2
v7.1.1
v7.1.0
What's Changed
- Refactor TournamentCreator in #171 and #172
- Rewrite class TournamentCreator in #173 and #174
- chore: Remove obsolete npm pixrem in #175
- Bump Azure.Identity from 1.11.0 to 1.11.4 by @dependabot in #176
- Update nuget packages in #177
- feat: Show closing date for team application in #178
- feat: Improve accessibility of html elements in #179
Full Changelog: v7.0.1...v7.1.0
v7.0.1
What's Changed
- Update LLBLGenPro Editor from v5.9 to v5.11.1 in #166
- Update Create-Db-Objects.sql in #167
- Update backups of demo databases in #168
- CI: Add dependabot.yaml to configure GitHub workflow updates in #169
- Update node packages, replace depreciated bootstrap class 'navbar-dark' in #170
Full Changelog: v7.0.0...v7.0.1