Browse Source

temporary logging

pull/2600/head
Jason Dove 9 months ago
parent
commit
7714420bed
No known key found for this signature in database
  1. 28
      ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs
  2. 8
      ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs
  3. 22
      ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs

28
ErsatzTV.Core.Tests/Scheduling/BlockScheduling/EffectiveBlockTests.cs

@ -1,13 +1,31 @@ @@ -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<EffectiveBlock> _logger;
static EffectiveBlockTests()
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.Destructure.UsingAttributes()
.CreateLogger();
ILoggerFactory loggerFactory = new LoggerFactory().AddSerilog(Log.Logger);
_logger = loggerFactory.CreateLogger<EffectiveBlock>();
}
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 @@ -64,7 +82,7 @@ public static class EffectiveBlockTests
TimeZoneInfo tz = TimeZoneInfo.Local;
DateTimeOffset start = GetLocalDate(2024, 1, 15, tz).AddHours(9);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5, _logger);
result.Count.ShouldBe(0);
}
@ -90,7 +108,7 @@ public static class EffectiveBlockTests @@ -90,7 +108,7 @@ public static class EffectiveBlockTests
TimeZoneInfo tz = TimeZoneInfo.Local;
DateTimeOffset start = GetLocalDate(2024, 1, 15, tz).AddHours(9);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, start, tz, 5, _logger);
result.Count.ShouldBe(3);
@ -128,7 +146,7 @@ public static class EffectiveBlockTests @@ -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<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5, _logger);
result.Count.ShouldBe(5);
@ -167,7 +185,7 @@ public static class EffectiveBlockTests @@ -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<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5);
List<EffectiveBlock> result = EffectiveBlock.GetEffectiveBlocks(templates, dto, tz, 5, _logger);
result.Count.ShouldBe(5);

8
ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs

@ -54,8 +54,12 @@ public class BlockPlayoutBuilder( @@ -54,8 +54,12 @@ public class BlockPlayoutBuilder(
int daysToBuild = await GetDaysToBuild(cancellationToken);
// get blocks to schedule
List<EffectiveBlock> blocksToSchedule =
EffectiveBlock.GetEffectiveBlocks(referenceData.PlayoutTemplates, start, TimeZoneInfo.Local, daysToBuild);
List<EffectiveBlock> blocksToSchedule = EffectiveBlock.GetEffectiveBlocks(
referenceData.PlayoutTemplates,
start,
TimeZoneInfo.Local,
daysToBuild,
logger);
if (blocksToSchedule.Count == 0)
{

22
ErsatzTV.Core/Scheduling/BlockScheduling/EffectiveBlock.cs

@ -1,4 +1,5 @@ @@ -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 @@ -8,7 +9,8 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St
ICollection<PlayoutTemplate> 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 @@ -19,15 +21,15 @@ internal record EffectiveBlock(Block Block, BlockKey BlockKey, DateTimeOffset St
Option<PlayoutTemplate> 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 @@ -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 @@ -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),

Loading…
Cancel
Save