diff --git a/src/Money.UI.Blazor/Pages/OverviewMonth.cs b/src/Money.UI.Blazor/Pages/OverviewMonth.cs index 6b39aed8..d2455f34 100644 --- a/src/Money.UI.Blazor/Pages/OverviewMonth.cs +++ b/src/Money.UI.Blazor/Pages/OverviewMonth.cs @@ -13,30 +13,30 @@ namespace Money.Pages { - [Route("/outcomes/{Year}/{Month}")] - [Route("/overview/{Year}/{Month}")] - [Route("/overview/{Year}/{Month}/{CategoryGuid}")] - [Route("/{Year}/{Month}/overview")] - [Route("/{Year}/{Month}/overview/{CategoryGuid}")] + [Route("/outcomes/{Year:int}/{Month:int}")] + [Route("/overview/{Year:int}/{Month:int}")] + [Route("/overview/{Year:int}/{Month:int}/{CategoryGuid:guid}")] + [Route("/{Year:int}/{Month:int}/overview")] + [Route("/{Year:int}/{Month:int}/overview/{CategoryGuid:guid}")] public class OverviewMonth : Overview { [Parameter] - protected string Year { get; set; } + protected int Year { get; set; } [Parameter] - protected string Month { get; set; } + protected int Month { get; set; } [Parameter] - protected string CategoryGuid { get; set; } + protected Guid? CategoryGuid { get; set; } public OverviewMonth() => SubTitle = "List of each single outcome in selected month"; protected override MonthModel CreateSelectedItemFromParameters() - => new MonthModel(Int32.Parse(Year), Int32.Parse(Month)); + => new MonthModel(Year, Month); protected override IKey CreateSelectedCategoryFromParameters() - => Guid.TryParse(CategoryGuid, out var categoryGuid) ? GuidKey.Create(categoryGuid, KeyFactory.Empty(typeof(Category)).Type) : KeyFactory.Empty(typeof(Category)); + => CategoryGuid != null ? GuidKey.Create(CategoryGuid.Value, KeyFactory.Empty(typeof(Category)).Type) : KeyFactory.Empty(typeof(Category)); protected override IQuery> CreateItemsQuery(int pageIndex) => new ListMonthOutcomeFromCategory(CategoryKey, SelectedPeriod, SortDescriptor, pageIndex); diff --git a/src/Money.UI.Blazor/Pages/OverviewYear.cs b/src/Money.UI.Blazor/Pages/OverviewYear.cs index f3fa5764..71d0672c 100644 --- a/src/Money.UI.Blazor/Pages/OverviewYear.cs +++ b/src/Money.UI.Blazor/Pages/OverviewYear.cs @@ -13,24 +13,24 @@ namespace Money.Pages { - [Route("/{Year}/overview")] - [Route("/{Year}/overview/{CategoryGuid}")] + [Route("/{Year:int}/overview")] + [Route("/{Year:int}/overview/{CategoryGuid:guid}")] public class OverviewYear : Overview { [Parameter] - protected string Year { get; set; } + protected int Year { get; set; } [Parameter] - protected string CategoryGuid { get; set; } + protected Guid? CategoryGuid { get; set; } public OverviewYear() => SubTitle = "List of each single outcome in selected year"; protected override YearModel CreateSelectedItemFromParameters() - => new YearModel(Int32.Parse(Year)); + => new YearModel(Year); protected override IKey CreateSelectedCategoryFromParameters() - => Guid.TryParse(CategoryGuid, out var categoryGuid) ? GuidKey.Create(categoryGuid, KeyFactory.Empty(typeof(Category)).Type) : KeyFactory.Empty(typeof(Category)); + => CategoryGuid != null ? GuidKey.Create(CategoryGuid.Value, KeyFactory.Empty(typeof(Category)).Type) : KeyFactory.Empty(typeof(Category)); protected override IQuery> CreateItemsQuery(int pageIndex) => new ListYearOutcomeFromCategory(CategoryKey, SelectedPeriod, SortDescriptor, pageIndex); diff --git a/src/Money.UI.Blazor/Pages/SummaryMonth.cs b/src/Money.UI.Blazor/Pages/SummaryMonth.cs index c481586d..8151957d 100644 --- a/src/Money.UI.Blazor/Pages/SummaryMonth.cs +++ b/src/Money.UI.Blazor/Pages/SummaryMonth.cs @@ -14,14 +14,14 @@ namespace Money.Pages { [Route("/")] - [Route("/{Year}/{Month}")] + [Route("/{Year:int}/{Month:int}")] public class SummaryMonth : Summary { [Parameter] - protected string Year { get; set; } + protected int? Year { get; set; } [Parameter] - protected string Month { get; set; } + protected int? Month { get; set; } public SummaryMonth() => SubTitle = "Per-month summary of outcomes in categories"; @@ -36,8 +36,8 @@ protected override MonthModel CreateSelectedItemFromParameters() { Log.Debug($"CreateSelectedItemFromParameters(Year='{Year}', Month='{Month}')"); - if (!String.IsNullOrEmpty(Year) && !String.IsNullOrEmpty(Month)) - return new MonthModel(Int32.Parse(Year), Int32.Parse(Month)); + if (Year != null && Month != null) + return new MonthModel(Year.Value, Month.Value); else return null; } diff --git a/src/Money.UI.Blazor/Pages/SummaryYear.cs b/src/Money.UI.Blazor/Pages/SummaryYear.cs index c67004f1..29b1c58e 100644 --- a/src/Money.UI.Blazor/Pages/SummaryYear.cs +++ b/src/Money.UI.Blazor/Pages/SummaryYear.cs @@ -13,11 +13,11 @@ namespace Money.Pages { - [Route("/{Year}")] + [Route("/{Year:int}")] public class SummaryYear : Summary { [Parameter] - protected string Year { get; set; } + protected int? Year { get; set; } public SummaryYear() => SubTitle = "Per-year summary of outcomes in categories"; @@ -29,8 +29,8 @@ protected override YearModel CreateSelectedItemFromParameters() { Log.Debug($"CreateSelectedItemFromParameters(Year='{Year}')"); - if (!String.IsNullOrEmpty(Year)) - return new YearModel(Int32.Parse(Year)); + if (Year != null) + return new YearModel(Year.Value); else return null; }