From 7714420bedc36fbcf68a1b308d1ab5654297f39d Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Wed, 5 Nov 2025 05:55:01 -0600 Subject: [PATCH] temporary logging --- .../BlockScheduling/EffectiveBlockTests.cs | 28 +++++++++++++++---- .../BlockScheduling/BlockPlayoutBuilder.cs | 8 ++++-- .../BlockScheduling/EffectiveBlock.cs | 22 ++++++++++----- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs b/ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs index 2fd373264..cdec8abd6 100644 --- a/ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs +++ b/ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs @@ -1,13 +1,31 @@ +using Destructurama; using ErsatzTV.Core.Domain.Scheduling; using ErsatzTV.Core.Scheduling.BlockScheduling; +using Microsoft.Extensions.Logging; using NUnit.Framework; +using Serilog; using Shouldly; using TimeZoneConverter; namespace ErsatzTV.Core.Tests.Scheduling.BlockScheduling; -public static class EffectiveBlockTests +public class EffectiveBlockTests { + private static readonly ILogger _logger; + + static EffectiveBlockTests() + { + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() + .WriteTo.Console() + .Destructure.UsingAttributes() + .CreateLogger(); + + ILoggerFactory loggerFactory = new LoggerFactory().AddSerilog(Log.Logger); + + _logger = loggerFactory.CreateLogger(); + } + private static DateTimeOffset GetLocalDate(int year, int month, int day, TimeZoneInfo tz) => new(year, month, day, 0, 0, 0, tz.GetUtcOffset(new DateTime(year, month, day))); @@ -64,7 +82,7 @@ public static class EffectiveBlockTests TimeZoneInfo tz = TimeZoneInfo.Local; DateTimeOffset start = GetLocalDate(2024, 1, 15, tz).AddHours(9); - List result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5); + List result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5, _logger); result.Count.ShouldBe(0); } @@ -90,7 +108,7 @@ public static class EffectiveBlockTests TimeZoneInfo tz = TimeZoneInfo.Local; DateTimeOffset start = GetLocalDate(2024, 1, 15, tz).AddHours(9); - List result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5); + List result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5, _logger); result.Count.ShouldBe(3); @@ -128,7 +146,7 @@ public static class EffectiveBlockTests var start = new DateTime(2024, 3, 9, 0, 0, 0, DateTimeKind.Unspecified); var dto = new DateTimeOffset(start, tz.GetUtcOffset(start)); - List result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5); + List result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5, _logger); result.Count.ShouldBe(5); @@ -167,7 +185,7 @@ public static class EffectiveBlockTests var start = new DateTime(2024, 11, 2, 0, 0, 0, DateTimeKind.Unspecified); var dto = new DateTimeOffset(start, tz.GetUtcOffset(start)); - List result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5); + List result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5, _logger); result.Count.ShouldBe(5); diff --git a/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs b/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs index e0af3d321..3e01d0e04 100644 --- a/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs +++ b/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs @@ -54,8 +54,12 @@ public class BlockPlayoutBuilder( int daysToBuild = await GetDaysToBuild(cancellationToken); // get blocks to schedule - List blocksToSchedule = - EffectiveBlock.GetEffectiveBlocks(referenceData.PlayoutTemplates, start, TimeZoneInfo.Local, daysToBuild); + List blocksToSchedule = EffectiveBlock.GetEffectiveBlocks( + referenceData.PlayoutTemplates, + start, + TimeZoneInfo.Local, + daysToBuild, + logger); if (blocksToSchedule.Count == 0) { diff --git a/ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs b/ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs index 4e6d6ea48..f7dbd38e4 100644 --- a/ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs +++ b/ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs @@ -1,4 +1,5 @@ using ErsatzTV.Core.Domain.Scheduling; +using Microsoft.Extensions.Logging; namespace ErsatzTV.Core.Scheduling.BlockScheduling; @@ -8,7 +9,8 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St ICollection templates, DateTimeOffset start, TimeZoneInfo timeZone, - int daysToBuild) + int daysToBuild, + ILogger logger) { DateTimeOffset finish = start.AddDays(daysToBuild); @@ -19,15 +21,15 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St Option maybeTemplate = PlayoutTemplateSelector.GetPlayoutTemplateFor(templates, current); foreach (PlayoutTemplate playoutTemplate in maybeTemplate) { - // logger.LogDebug( - // "Will schedule day {Date} using template {Template}", - // current, - // playoutTemplate.Template.Name); + logger.LogDebug( + "Will schedule day {Date} using template {Template}", + current, + playoutTemplate.Template.Id); DateTimeOffset today = current; var newBlocks = playoutTemplate.Template.Items - .Map(i => ToEffectiveBlock(playoutTemplate, i, today, timeZone)) + .Map(i => ToEffectiveBlock(playoutTemplate, i, today, timeZone, logger)) .Map(NormalizeGuideMode) .ToList(); @@ -48,7 +50,8 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St PlayoutTemplate playoutTemplate, TemplateItem templateItem, DateTimeOffset current, - TimeZoneInfo timeZone) + TimeZoneInfo timeZone, + ILogger logger) { var blockStartTime = new DateTime( current.Year, @@ -61,6 +64,11 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St var blockStart = new DateTimeOffset(blockStartTime, timeZone.GetUtcOffset(blockStartTime)); + logger.LogDebug( + "Starting block {Block} at {BlockStart}", + templateItem.Block.Name, + blockStart); + return new EffectiveBlock( templateItem.Block, new BlockKey(templateItem.Block, templateItem.Template, playoutTemplate),