hn-dotnet/Application/GetLink/GetLinkQueryHandler.cs
Julien Leicher 3cd5133f66 add-aspnet-identity (#26)
add exception filter when user not connected
default to needing authentication and apply anonymous to some actions
add user in get requests
add user relation in link, comment and vote
signup and in are ok now!
2020-12-11 17:59:35 +01:00

36 lines
1.1 KiB
C#

using System.Threading;
using System.Linq;
using System.Threading.Tasks;
using MediatR;
using HN.Domain;
namespace HN.Application
{
public sealed class GetLinkQueryHandler : IRequestHandler<GetLinkQuery, LinkDto>
{
private readonly IHNContext _context;
public GetLinkQueryHandler(IHNContext context)
{
_context = context;
}
public Task<LinkDto> Handle(GetLinkQuery request, CancellationToken cancellationToken)
{
var result = from link in _context.Links
join user in _context.Users on link.CreatedBy equals user.Id
where link.Id == request.Id
select new LinkDto
{
Id = link.Id,
Url = link.Url,
CreatedByName = user.UserName,
CreatedAt = link.CreatedAt,
UpVotes = link.Votes.Count(v => v.Type == VoteType.Up),
DownVotes = link.Votes.Count(v => v.Type == VoteType.Down)
};
return Task.FromResult(result.SingleOrDefault());
}
}
}