-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGuildMemberRepository.cs
More file actions
47 lines (38 loc) · 1.38 KB
/
GuildMemberRepository.cs
File metadata and controls
47 lines (38 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using BaseBotService.Data.Interfaces;
using BaseBotService.Data.Models;
using LiteDB;
namespace BaseBotService.Data.Repositories;
public class GuildMemberRepository : IGuildMemberRepository
{
private readonly ILiteCollection<GuildMemberHC> _guildMembers;
public GuildMemberRepository(ILiteCollection<GuildMemberHC> guildMembers) => _guildMembers = guildMembers;
public GuildMemberHC GetUser(ulong guildId, ulong userId)
=> _guildMembers
.FindOne(a => a.GuildId == guildId && a.MemberId == userId);
public void AddUser(GuildMemberHC user) => _guildMembers.Insert(user);
public bool UpdateUser(GuildMemberHC user)
=> _guildMembers.Update(user);
public bool DeleteUser(ulong guildId, ulong userId)
{
var user = GetUser(guildId, userId);
if (user != null)
{
return _guildMembers.Delete(user.Id);
}
return false;
}
public int DeleteGuild(ulong guildId)
{
var users = _guildMembers.Find(a => a.GuildId == guildId);
if (users != null)
{
return _guildMembers.DeleteMany(a => a.GuildId == guildId);
}
return 0;
}
public IEnumerable<GuildMemberHC> GetTopUsers(ulong guildId, int limit)
=> _guildMembers
.Find(a => a.GuildId == guildId)
.OrderByDescending(u => u.ActivityPoints)
.Take(limit);
}