namespace Repository; public interface IMessageRecordRepository : IBaseRepository { Task<(IEnumerable List, long Total)> GetPagedListAsync(int pageIndex, int pageSize); Task MarkAllAsReadAsync(); } public class MessageRecordRepository(IFreeSql freeSql) : BaseRepository(freeSql), IMessageRecordRepository { public async Task<(IEnumerable List, long Total)> GetPagedListAsync(int pageIndex, int pageSize) { var list = await FreeSql.Select() .OrderByDescending(x => x.CreateTime) .Count(out var total) .Page(pageIndex, pageSize) .ToListAsync(); return (list, total); } public async Task MarkAllAsReadAsync() { var affected = await FreeSql.Update() .Set(a => a.IsRead, true) .Set(a => a.UpdateTime, DateTime.Now) .Where(a => !a.IsRead) .ExecuteAffrowsAsync(); return affected >= 0; } }