using MessengerApi.Db.Contracts.Repositories; using MessengerApi.Db.Entities; using Microsoft.EntityFrameworkCore; namespace MessengerApi.Db.Repositories { public class MessageRepository : Repository, IMessageRepository { public MessageRepository(DbSet db) : base(db) { } public IEnumerable GetPendingMessages(User user) { var timestamp = DateTime.UtcNow; return this.db .Where(x => x.ToId == user.Id && x.IsDelivered == false) .Where(x => x.PayloadLifespanInSeconds == null || x.CreatedUtc.AddSeconds(x.PayloadLifespanInSeconds.Value) >= timestamp) .OrderBy(x => x.CreatedUtc); } } }