feat(directory): use MediatR query for sample endpoint

This commit is contained in:
Collin M. Barrett 2020-08-23 10:16:49 -05:00
parent ed3a370ed5
commit 69d9b1b4f9
3 changed files with 39 additions and 7 deletions

View file

@ -1,10 +1,10 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using FilterLists.Directory.Application;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Facade;
using MediatR;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
namespace FilterLists.Directory.Api.Controllers
{
@ -12,17 +12,17 @@ namespace FilterLists.Directory.Api.Controllers
[Route("lists")]
public class FilterListsController : ControllerBase
{
private readonly IQueryDirectory _queryContext;
private readonly IMediator _mediator;
public FilterListsController(IQueryDirectory queryContext)
public FilterListsController(IMediator mediator)
{
_queryContext = queryContext;
_mediator = mediator;
}
[HttpGet]
public async Task<IEnumerable<FilterList>> Get(CancellationToken cancellationToken)
{
return await _queryContext.FilterLists.ToListAsync(cancellationToken);
return await _mediator.Send(new GetLists.Query(), cancellationToken);
}
}
}

View file

@ -7,7 +7,7 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;CA2007</NoWarn>
<NoWarn>1701;1702;CA2007;CA1034</NoWarn>
</PropertyGroup>
<ItemGroup>

View file

@ -0,0 +1,32 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Facade;
using MediatR;
using Microsoft.EntityFrameworkCore;
namespace FilterLists.Directory.Application
{
public static class GetLists
{
public class Query : IRequest<IEnumerable<FilterList>>
{
}
public class Handler : IRequestHandler<Query, IEnumerable<FilterList>>
{
private readonly IQueryDirectory _context;
public Handler(IQueryDirectory context)
{
_context = context;
}
public async Task<IEnumerable<FilterList>> Handle(Query request, CancellationToken cancellationToken)
{
return await _context.FilterLists.ToListAsync(cancellationToken);
}
}
}
}