Beispiel #1
0
    public async Task <Either <BaseError, Unit> > Handle(
        AddShowToCollection request,
        CancellationToken cancellationToken)
    {
        await using TvContext dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken);

        Validation <BaseError, Parameters> validation = await Validate(dbContext, request);

        return(await LanguageExtensions.Apply(validation, parameters => ApplyAddShowRequest(dbContext, parameters)));
    }
Beispiel #2
0
        private async Task <Unit> ApplyAddTelevisionShowRequest(AddShowToCollection request)
        {
            var result = new Unit();

            if (await _mediaCollectionRepository.AddMediaItem(request.CollectionId, request.ShowId))
            {
                // rebuild all playouts that use this collection
                foreach (int playoutId in await _mediaCollectionRepository
                         .PlayoutIdsUsingCollection(request.CollectionId))
                {
                    await _channel.WriteAsync(new BuildPlayout(playoutId, true));
                }
            }

            return(result);
        }
Beispiel #3
0
 private async Task <Validation <BaseError, Unit> > Validate(AddShowToCollection request) =>
 (await CollectionMustExist(request), await ValidateShow(request))
Beispiel #4
0
 public Task <Either <BaseError, Unit> > Handle(
     AddShowToCollection request,
     CancellationToken cancellationToken) =>
 Validate(request)
 .MapT(_ => ApplyAddTelevisionShowRequest(request))
 .Bind(v => v.ToEitherAsync());
Beispiel #5
0
 private static async Task <Validation <BaseError, Parameters> > Validate(
     TvContext dbContext,
     AddShowToCollection request) =>
 (await CollectionMustExist(dbContext, request), await ValidateShow(dbContext, request))