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 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()); } } }