public async Task <Either <BaseError, Unit> > Handle(CreateFillerPreset request, CancellationToken cancellationToken) { try { await using TvContext dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken); var fillerPreset = new FillerPreset { Name = request.Name, FillerKind = request.FillerKind, FillerMode = request.FillerMode, Duration = request.Duration, Count = request.Count, PadToNearestMinute = request.PadToNearestMinute, CollectionType = request.CollectionType, CollectionId = request.CollectionId, MediaItemId = request.MediaItemId, MultiCollectionId = request.MultiCollectionId, SmartCollectionId = request.SmartCollectionId }; await dbContext.FillerPresets.AddAsync(fillerPreset, cancellationToken); await dbContext.SaveChangesAsync(cancellationToken); return(Unit.Default); } catch (Exception ex) { _client.Notify(ex); return(BaseError.New(ex.Message)); } }
public void Should_Not_Touch_Enumerator() { var collection = new Collection { Id = 1, Name = "Filler Items", MediaItems = new List <MediaItem>() }; for (var i = 0; i < 5; i++) { collection.MediaItems.Add(TestMovie(i + 1, TimeSpan.FromHours(i + 1), new DateTime(2020, 2, i + 1))); } var fillerPreset = new FillerPreset { FillerKind = FillerKind.PreRoll, FillerMode = FillerMode.Count, Count = 3, Collection = collection, CollectionId = collection.Id }; var enumerator = new ChronologicalMediaCollectionEnumerator( collection.MediaItems, new CollectionEnumeratorState { Index = 0, Seed = 1 }); DateTimeOffset result = PlayoutModeSchedulerBase <ProgramScheduleItem> .CalculateEndTimeWithFiller( new Dictionary <CollectionKey, IMediaCollectionEnumerator> { { CollectionKey.ForFillerPreset(fillerPreset), enumerator } }, new ProgramScheduleItemOne { PreRollFiller = fillerPreset }, new DateTimeOffset(2020, 2, 1, 12, 0, 0, TimeSpan.FromHours(-5)), new TimeSpan(0, 12, 30), new List <MediaChapter>()); result.Should().Be(new DateTimeOffset(2020, 2, 1, 18, 12, 30, TimeSpan.FromHours(-5))); enumerator.State.Index.Should().Be(0); enumerator.State.Seed.Should().Be(1); }
internal static FillerPresetViewModel ProjectToViewModel(FillerPreset fillerPreset) =>