コード例 #1
0
ファイル: EmbyService.cs プロジェクト: jasongdove/ErsatzTV
    private async Task SynchronizeLibraries(
        SynchronizeEmbyLibraries request,
        CancellationToken cancellationToken)
    {
        using IServiceScope scope = _serviceScopeFactory.CreateScope();
        IMediator mediator = scope.ServiceProvider.GetRequiredService <IMediator>();

        Either <BaseError, Unit> result = await mediator.Send(request, cancellationToken);

        result.BiIter(
            _ => _logger.LogInformation(
                "Successfully synchronized Emby libraries for source {MediaSourceId}",
                request.EmbyMediaSourceId),
            error => _logger.LogWarning(
                "Unable to synchronize Emby libraries for source {MediaSourceId}: {Error}",
                request.EmbyMediaSourceId,
                error.Value));
    }
コード例 #2
0
 private Task <Validation <BaseError, ConnectionParameters> > Validate(SynchronizeEmbyLibraries request) =>
 MediaSourceMustExist(request)
 .BindT(MediaSourceMustHaveActiveConnection)
 .BindT(MediaSourceMustHaveApiKey);
コード例 #3
0
 private Task <Validation <BaseError, EmbyMediaSource> > MediaSourceMustExist(
     SynchronizeEmbyLibraries request) =>
 _mediaSourceRepository.GetEmby(request.EmbyMediaSourceId)
 .Map(o => o.ToValidation <BaseError>("Emby media source does not exist."));
コード例 #4
0
 public Task <Either <BaseError, Unit> > Handle(
     SynchronizeEmbyLibraries request,
     CancellationToken cancellationToken) =>
 Validate(request)
 .MapT(SynchronizeLibraries)
 .Bind(v => v.ToEitherAsync());