public async Task <Either <BaseError, Unit> > Handle( DeleteLocalLibrary request, CancellationToken cancellationToken) { await using TvContext dbContext = await _dbContextFactory.CreateDbContextAsync(cancellationToken); Validation <BaseError, LocalLibrary> validation = await LocalLibraryMustExist(dbContext, request); return(await LanguageExtensions.Apply(validation, localLibrary => DoDeletion(dbContext, localLibrary))); }
private static Task <Validation <BaseError, LocalLibrary> > LocalLibraryMustExist( TvContext dbContext, DeleteLocalLibrary request) => dbContext.LocalLibraries .SelectOneAsync(ll => ll.Id, ll => ll.Id == request.LocalLibraryId) .Map(o => o.ToValidation <BaseError>($"Local library {request.LocalLibraryId} does not exist."));