23 lines
749 B
C#
23 lines
749 B
C#
using MessengerApi.Db.Contracts.Repositories;
|
|
using MessengerApi.Db.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace MessengerApi.Db.Repositories
|
|
{
|
|
public class MessageRepository : Repository<Message>, IMessageRepository
|
|
{
|
|
public MessageRepository(DbSet<Message> db) : base(db)
|
|
{
|
|
}
|
|
|
|
public IEnumerable<Message> 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);
|
|
}
|
|
}
|
|
} |