refactor(directory): ♻ return VM for sample endpoint

This commit is contained in:
Collin M. Barrett 2020-08-23 10:56:08 -05:00
parent e764513749
commit 1a5aedd63c
2 changed files with 19 additions and 7 deletions

View file

@ -2,7 +2,6 @@
using System.Threading;
using System.Threading.Tasks;
using FilterLists.Directory.Application;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
using MediatR;
using Microsoft.AspNetCore.Mvc;
@ -20,7 +19,7 @@ public FilterListsController(IMediator mediator)
}
[HttpGet]
public async Task<IEnumerable<FilterList>> Get(CancellationToken cancellationToken)
public async Task<IEnumerable<GetLists.FilterListViewModel>> Get(CancellationToken cancellationToken)
{
return await _mediator.Send(new GetLists.Query(), cancellationToken);
}

View file

@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
using FilterLists.Directory.Infrastructure.Persistence.Queries.Entities;
using MediatR;
using Microsoft.EntityFrameworkCore;
@ -10,11 +10,11 @@ namespace FilterLists.Directory.Application
{
public static class GetLists
{
public class Query : IRequest<IEnumerable<FilterList>>
public class Query : IRequest<IEnumerable<FilterListViewModel>>
{
}
public class Handler : IRequestHandler<Query, IEnumerable<FilterList>>
public class Handler : IRequestHandler<Query, IEnumerable<FilterListViewModel>>
{
private readonly IQueryContext _context;
@ -23,10 +23,23 @@ public Handler(IQueryContext context)
_context = context;
}
public async Task<IEnumerable<FilterList>> Handle(Query request, CancellationToken cancellationToken)
public async Task<IEnumerable<FilterListViewModel>> Handle(Query request,
CancellationToken cancellationToken)
{
return await _context.FilterLists.ToListAsync(cancellationToken);
return await _context.FilterLists
.Select(fl => new FilterListViewModel(fl.Name))
.ToListAsync(cancellationToken);
}
}
public class FilterListViewModel
{
public FilterListViewModel(string name)
{
Name = name;
}
public string Name { get; }
}
}
}