35 lines
1.0 KiB
C#
35 lines
1.0 KiB
C#
using MessengerApi.Contracts.Models.Scoped;
|
|
using MessengerApi.Models.Scoped;
|
|
|
|
namespace MessengerApi.Handlers.Endpoint
|
|
{
|
|
public class PeekEndpointHandler
|
|
{
|
|
private readonly ILogger logger;
|
|
|
|
private readonly Timing timing;
|
|
private readonly Identity identity;
|
|
private readonly IUnitOfWork unitOfWork;
|
|
|
|
public PeekEndpointHandler(
|
|
ILogger logger,
|
|
Timing timing,
|
|
Identity identity,
|
|
IUnitOfWork unitOfWork)
|
|
{
|
|
this.logger = logger;
|
|
this.timing = timing;
|
|
this.identity = identity;
|
|
this.unitOfWork = unitOfWork;
|
|
}
|
|
|
|
public Task<int> Peek()
|
|
{
|
|
var pendingMessages = this.unitOfWork.Messages.GetPendingMessages(this.identity.User);
|
|
|
|
this.logger.Debug($"[{this.timing.Timestamp:s}] User {this.identity.User.Name} is receiving {pendingMessages.Count()}.");
|
|
|
|
return Task.FromResult(pendingMessages.Count());
|
|
}
|
|
}
|
|
} |