From a28c5990b1f7945370c5604d98bfc7f7ea833063 Mon Sep 17 00:00:00 2001 From: Simon Schulze Date: Fri, 31 Jul 2020 02:11:25 +0200 Subject: [PATCH 1/3] Bugfix - Add Schedule led to application crashing --- DataManager/ModelMapperProfile.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/DataManager/ModelMapperProfile.cs b/DataManager/ModelMapperProfile.cs index c8d282a..aefbb28 100644 --- a/DataManager/ModelMapperProfile.cs +++ b/DataManager/ModelMapperProfile.cs @@ -315,11 +315,15 @@ public ModelMapperProfile(IModelCache modelCache) .ForMember(dest => dest.IncPenaltyPoints, opt => opt.Ignore()) .ForMember(dest => dest.MultiScoringFactors, opt => opt.MapFrom((src, dest, factors) => { - return src.MultiScoringResults.Select(x => x.Value.ToString()).Aggregate((x, y) => x + "," + y); + if (src.MultiScoringResults.Count > 0) + return src.MultiScoringResults.Select(x => x.Value.ToString()).Aggregate((x, y) => x + "," + y); + return null; })) .ForMember(dest => dest.MultiScoringResults, opt => opt.MapFrom((src, dest, scorings) => { - return src.MultiScoringResults.Select(x => x.Key).ToArray(); + if (src.MultiScoringResults.Count > 0) + return src.MultiScoringResults.Select(x => x.Key).ToArray(); + return new ScoringInfo[0]; })); CreateMap() .ConstructUsing(source => ModelCache.PutOrGetModel(new ScoringModel(source.ScoringId))) From cb3fd6e381ca16266b29b4dedcdb3c2c325b07d7 Mon Sep 17 00:00:00 2001 From: Simon Schulze Date: Fri, 31 Jul 2020 02:35:38 +0200 Subject: [PATCH 2/3] Fixed Calendar showing the wrong race --- iRLeagueManager/ViewModels/CalendarViewModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iRLeagueManager/ViewModels/CalendarViewModel.cs b/iRLeagueManager/ViewModels/CalendarViewModel.cs index 4af54bb..f0445fc 100644 --- a/iRLeagueManager/ViewModels/CalendarViewModel.cs +++ b/iRLeagueManager/ViewModels/CalendarViewModel.cs @@ -15,7 +15,7 @@ namespace iRLeagueManager.ViewModels { public class CalendarViewModel : SchedulerViewModel { - public IEnumerable Sessions => Schedules.Count() > 0 ? Schedules.Select(x => x.Sessions.AsEnumerable()).Aggregate((x, y) => x.Concat(y)) : new SessionViewModel[0]; + public IEnumerable Sessions => Schedules.Count() > 0 ? Schedules.SelectMany(x => x.Sessions).OrderBy(x => x.Date).ToList() : new List(); public IEnumerable Races => Sessions.Where(x => x.SessionType == Enums.SessionType.Race); public SessionViewModel NextRace => Races.FirstOrDefault(x => x.FullDate.Date.Add(x.RaceEnd).CompareTo(DateTime.Now) > 0); From e96e968c77da232289e444d9e238e0394bfa1f6b Mon Sep 17 00:00:00 2001 From: Simon Schulze Date: Fri, 31 Jul 2020 02:57:10 +0200 Subject: [PATCH 3/3] Bugfix - UI missing update when Vote changed on ReviewComment --- .../ViewModels/ReviewCommentViewModel.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/iRLeagueManager/ViewModels/ReviewCommentViewModel.cs b/iRLeagueManager/ViewModels/ReviewCommentViewModel.cs index 49b070d..b59ff9c 100644 --- a/iRLeagueManager/ViewModels/ReviewCommentViewModel.cs +++ b/iRLeagueManager/ViewModels/ReviewCommentViewModel.cs @@ -14,6 +14,7 @@ using System.Threading.Tasks; using System.Windows; using System.Windows.Input; +using System.Runtime.CompilerServices; namespace iRLeagueManager.ViewModels { @@ -87,6 +88,18 @@ public async override void SaveChanges() public ReviewCommentViewModel(ReviewCommentModel comment) : base(comment) { } + protected override void OnPropertyChanged([CallerMemberName] string propertyName = "") + { + switch(propertyName) + { + case nameof(Model.CommentReviewVotes): + base.OnPropertyChanged(nameof(Votes)); + break; + } + + base.OnPropertyChanged(propertyName); + } + public new ReviewCommentModel GetSource() { return base.GetSource() as ReviewCommentModel;