mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
Removed music playlist and warning repositories
This commit is contained in:
@@ -13,6 +13,7 @@ using NadekoBot.Core.Common.TypeReaders.Models;
|
|||||||
using NadekoBot.Core.Services;
|
using NadekoBot.Core.Services;
|
||||||
using NadekoBot.Core.Services.Database.Models;
|
using NadekoBot.Core.Services.Database.Models;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
using NadekoBot.Modules.Administration.Common;
|
||||||
using NadekoBot.Modules.Permissions.Services;
|
using NadekoBot.Modules.Permissions.Services;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
@@ -63,12 +64,13 @@ namespace NadekoBot.Modules.Administration.Services
|
|||||||
ps = uow.GuildConfigs.ForId(guildId, set => set.Include(x => x.WarnPunishments))
|
ps = uow.GuildConfigs.ForId(guildId, set => set.Include(x => x.WarnPunishments))
|
||||||
.WarnPunishments;
|
.WarnPunishments;
|
||||||
|
|
||||||
warnings += uow.Warnings
|
warnings += uow._context
|
||||||
|
.Warnings
|
||||||
.ForId(guildId, userId)
|
.ForId(guildId, userId)
|
||||||
.Where(w => !w.Forgiven && w.UserId == userId)
|
.Where(w => !w.Forgiven && w.UserId == userId)
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
uow.Warnings.Add(warn);
|
uow._context.Warnings.Add(warn);
|
||||||
|
|
||||||
uow.SaveChanges();
|
uow.SaveChanges();
|
||||||
}
|
}
|
||||||
@@ -244,7 +246,7 @@ WHERE GuildId={guildId}
|
|||||||
{
|
{
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
return uow.Warnings.GetForGuild(gid).GroupBy(x => x.UserId).ToArray();
|
return uow._context.Warnings.GetForGuild(gid).GroupBy(x => x.UserId).ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,7 +254,7 @@ WHERE GuildId={guildId}
|
|||||||
{
|
{
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
return uow.Warnings.ForId(gid, userId);
|
return uow._context.Warnings.ForId(gid, userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -263,11 +265,11 @@ WHERE GuildId={guildId}
|
|||||||
{
|
{
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
{
|
{
|
||||||
await uow.Warnings.ForgiveAll(guildId, userId, moderator);
|
await uow._context.Warnings.ForgiveAll(guildId, userId, moderator);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
toReturn = uow.Warnings.Forgive(guildId, userId, moderator, index - 1);
|
toReturn = uow._context.Warnings.Forgive(guildId, userId, moderator, index - 1);
|
||||||
}
|
}
|
||||||
uow.SaveChanges();
|
uow.SaveChanges();
|
||||||
}
|
}
|
||||||
|
@@ -10,6 +10,7 @@ using NadekoBot.Core.Services;
|
|||||||
using NadekoBot.Core.Services.Database.Models;
|
using NadekoBot.Core.Services.Database.Models;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
using NadekoBot.Modules;
|
using NadekoBot.Modules;
|
||||||
|
using NadekoBot.Modules.Music;
|
||||||
using NadekoBot.Modules.Music.Services;
|
using NadekoBot.Modules.Music.Services;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
||||||
@@ -55,7 +56,7 @@ namespace NadekoBot.Core.Modules.Music
|
|||||||
|
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
playlists = uow.MusicPlaylists.GetPlaylistsOnPage(num);
|
playlists = uow._context.MusicPlaylists.GetPlaylistsOnPage(num);
|
||||||
}
|
}
|
||||||
|
|
||||||
var embed = new EmbedBuilder()
|
var embed = new EmbedBuilder()
|
||||||
@@ -75,13 +76,13 @@ namespace NadekoBot.Core.Modules.Music
|
|||||||
{
|
{
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
var pl = uow.MusicPlaylists.GetById(id);
|
var pl = uow._context.MusicPlaylists.FirstOrDefault(x => x.Id == id);
|
||||||
|
|
||||||
if (pl != null)
|
if (pl != null)
|
||||||
{
|
{
|
||||||
if (_creds.IsOwner(ctx.User) || pl.AuthorId == ctx.User.Id)
|
if (_creds.IsOwner(ctx.User) || pl.AuthorId == ctx.User.Id)
|
||||||
{
|
{
|
||||||
uow.MusicPlaylists.Remove(pl);
|
uow._context.MusicPlaylists.Remove(pl);
|
||||||
await uow.SaveChangesAsync();
|
await uow.SaveChangesAsync();
|
||||||
success = true;
|
success = true;
|
||||||
}
|
}
|
||||||
@@ -109,7 +110,7 @@ namespace NadekoBot.Core.Modules.Music
|
|||||||
MusicPlaylist mpl;
|
MusicPlaylist mpl;
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
mpl = uow.MusicPlaylists.GetWithSongs(id);
|
mpl = uow._context.MusicPlaylists.GetWithSongs(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
await ctx.SendPaginatedConfirmAsync(page, (cur) =>
|
await ctx.SendPaginatedConfirmAsync(page, (cur) =>
|
||||||
@@ -155,7 +156,7 @@ namespace NadekoBot.Core.Modules.Music
|
|||||||
AuthorId = ctx.User.Id,
|
AuthorId = ctx.User.Id,
|
||||||
Songs = songs.ToList(),
|
Songs = songs.ToList(),
|
||||||
};
|
};
|
||||||
uow.MusicPlaylists.Add(playlist);
|
uow._context.MusicPlaylists.Add(playlist);
|
||||||
await uow.SaveChangesAsync();
|
await uow.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +208,7 @@ namespace NadekoBot.Core.Modules.Music
|
|||||||
MusicPlaylist mpl;
|
MusicPlaylist mpl;
|
||||||
using (var uow = _db.GetDbContext())
|
using (var uow = _db.GetDbContext())
|
||||||
{
|
{
|
||||||
mpl = uow.MusicPlaylists.GetWithSongs(id);
|
mpl = uow._context.MusicPlaylists.GetWithSongs(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mpl == null)
|
if (mpl == null)
|
||||||
|
@@ -11,10 +11,8 @@ namespace NadekoBot.Core.Services.Database
|
|||||||
IQuoteRepository Quotes { get; }
|
IQuoteRepository Quotes { get; }
|
||||||
IGuildConfigRepository GuildConfigs { get; }
|
IGuildConfigRepository GuildConfigs { get; }
|
||||||
ICustomReactionRepository CustomReactions { get; }
|
ICustomReactionRepository CustomReactions { get; }
|
||||||
IMusicPlaylistRepository MusicPlaylists { get; }
|
|
||||||
IWaifuRepository Waifus { get; }
|
IWaifuRepository Waifus { get; }
|
||||||
IDiscordUserRepository DiscordUsers { get; }
|
IDiscordUserRepository DiscordUsers { get; }
|
||||||
IWarningsRepository Warnings { get; }
|
|
||||||
IXpRepository Xp { get; }
|
IXpRepository Xp { get; }
|
||||||
|
|
||||||
int SaveChanges();
|
int SaveChanges();
|
||||||
|
@@ -1,11 +0,0 @@
|
|||||||
using NadekoBot.Core.Services.Database.Models;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace NadekoBot.Core.Services.Database.Repositories
|
|
||||||
{
|
|
||||||
public interface IMusicPlaylistRepository : IRepository<MusicPlaylist>
|
|
||||||
{
|
|
||||||
List<MusicPlaylist> GetPlaylistsOnPage(int num);
|
|
||||||
MusicPlaylist GetWithSongs(int id);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +0,0 @@
|
|||||||
using NadekoBot.Core.Services.Database.Models;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace NadekoBot.Core.Services.Database.Repositories
|
|
||||||
{
|
|
||||||
public interface IWarningsRepository : IRepository<Warning>
|
|
||||||
{
|
|
||||||
Warning[] ForId(ulong guildId, ulong userId);
|
|
||||||
Task ForgiveAll(ulong guildId, ulong userId, string moderator);
|
|
||||||
bool Forgive(ulong guildId, ulong userId, string moderator, int index);
|
|
||||||
Warning[] GetForGuild(ulong id);
|
|
||||||
}
|
|
||||||
}
|
|
@@ -25,7 +25,7 @@ namespace NadekoBot.Modules.Xp.Common
|
|||||||
public static ClubInfo GetByMember(this DbSet<ClubInfo> clubs, ulong userId)
|
public static ClubInfo GetByMember(this DbSet<ClubInfo> clubs, ulong userId)
|
||||||
=> Include(clubs).FirstOrDefault(c => c.Users.Any(u => u.UserId == userId));
|
=> Include(clubs).FirstOrDefault(c => c.Users.Any(u => u.UserId == userId));
|
||||||
|
|
||||||
public static ClubInfo? GetByName(this DbSet<ClubInfo> clubs, string name, int discrim)
|
public static ClubInfo GetByName(this DbSet<ClubInfo> clubs, string name, int discrim)
|
||||||
=> Include(clubs).FirstOrDefault(c => c.Name.ToUpper() == name.ToUpper() && c.Discrim == discrim);
|
=> Include(clubs).FirstOrDefault(c => c.Name.ToUpper() == name.ToUpper() && c.Discrim == discrim);
|
||||||
|
|
||||||
public static int GetNextDiscrim(this DbSet<ClubInfo> clubs, string name)
|
public static int GetNextDiscrim(this DbSet<ClubInfo> clubs, string name)
|
||||||
|
@@ -4,28 +4,26 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace NadekoBot.Core.Services.Database.Repositories.Impl
|
namespace NadekoBot.Modules.Music
|
||||||
{
|
{
|
||||||
public class MusicPlaylistRepository : Repository<MusicPlaylist>, IMusicPlaylistRepository
|
public static class MusicPlaylistExtensions
|
||||||
{
|
{
|
||||||
public MusicPlaylistRepository(DbContext context) : base(context)
|
public static List<MusicPlaylist> GetPlaylistsOnPage(this DbSet<MusicPlaylist> playlists, int num)
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MusicPlaylist> GetPlaylistsOnPage(int num)
|
|
||||||
{
|
{
|
||||||
if (num < 1)
|
if (num < 1)
|
||||||
throw new IndexOutOfRangeException();
|
throw new IndexOutOfRangeException();
|
||||||
|
|
||||||
return _set.AsQueryable()
|
return playlists
|
||||||
|
.AsQueryable()
|
||||||
.Skip((num - 1) * 20)
|
.Skip((num - 1) * 20)
|
||||||
.Take(20)
|
.Take(20)
|
||||||
.Include(pl => pl.Songs)
|
.Include(pl => pl.Songs)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MusicPlaylist GetWithSongs(int id) =>
|
public static MusicPlaylist GetWithSongs(this DbSet<MusicPlaylist> playlists, int id) =>
|
||||||
_set.Include(mpl => mpl.Songs)
|
playlists
|
||||||
|
.Include(mpl => mpl.Songs)
|
||||||
.FirstOrDefault(mpl => mpl.Id == id);
|
.FirstOrDefault(mpl => mpl.Id == id);
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -4,28 +4,25 @@ using System.Linq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace NadekoBot.Core.Services.Database.Repositories.Impl
|
namespace NadekoBot.Modules.Administration.Common
|
||||||
{
|
{
|
||||||
public class WarningsRepository : Repository<Warning>, IWarningsRepository
|
public static class WarningExtensions
|
||||||
{
|
{
|
||||||
public WarningsRepository(DbContext context) : base(context)
|
public static Warning[] ForId(this DbSet<Warning> warnings, ulong guildId, ulong userId)
|
||||||
{
|
{
|
||||||
}
|
var query = warnings.AsQueryable()
|
||||||
|
.Where(x => x.GuildId == guildId && x.UserId == userId)
|
||||||
public Warning[] ForId(ulong guildId, ulong userId)
|
|
||||||
{
|
|
||||||
var query = _set.AsQueryable().Where(x => x.GuildId == guildId && x.UserId == userId)
|
|
||||||
.OrderByDescending(x => x.DateAdded);
|
.OrderByDescending(x => x.DateAdded);
|
||||||
|
|
||||||
return query.ToArray();
|
return query.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Forgive(ulong guildId, ulong userId, string mod, int index)
|
public static bool Forgive(this DbSet<Warning> warnings, ulong guildId, ulong userId, string mod, int index)
|
||||||
{
|
{
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
throw new ArgumentOutOfRangeException(nameof(index));
|
throw new ArgumentOutOfRangeException(nameof(index));
|
||||||
|
|
||||||
var warn = _set.AsQueryable().Where(x => x.GuildId == guildId && x.UserId == userId)
|
var warn = warnings.AsQueryable().Where(x => x.GuildId == guildId && x.UserId == userId)
|
||||||
.OrderByDescending(x => x.DateAdded)
|
.OrderByDescending(x => x.DateAdded)
|
||||||
.Skip(index)
|
.Skip(index)
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
@@ -38,9 +35,9 @@ namespace NadekoBot.Core.Services.Database.Repositories.Impl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task ForgiveAll(ulong guildId, ulong userId, string mod)
|
public static async Task ForgiveAll(this DbSet<Warning> warnings, ulong guildId, ulong userId, string mod)
|
||||||
{
|
{
|
||||||
await _set.AsQueryable().Where(x => x.GuildId == guildId && x.UserId == userId)
|
await warnings.AsQueryable().Where(x => x.GuildId == guildId && x.UserId == userId)
|
||||||
.ForEachAsync(x =>
|
.ForEachAsync(x =>
|
||||||
{
|
{
|
||||||
if (x.Forgiven != true)
|
if (x.Forgiven != true)
|
||||||
@@ -51,9 +48,9 @@ namespace NadekoBot.Core.Services.Database.Repositories.Impl
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public Warning[] GetForGuild(ulong id)
|
public static Warning[] GetForGuild(this DbSet<Warning> warnings, ulong id)
|
||||||
{
|
{
|
||||||
return _set.AsQueryable().Where(x => x.GuildId == id).ToArray();
|
return warnings.AsQueryable().Where(x => x.GuildId == id).ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -15,9 +15,6 @@ namespace NadekoBot.Core.Services.Database
|
|||||||
private IGuildConfigRepository _guildConfigs;
|
private IGuildConfigRepository _guildConfigs;
|
||||||
public IGuildConfigRepository GuildConfigs => _guildConfigs ?? (_guildConfigs = new GuildConfigRepository(_context));
|
public IGuildConfigRepository GuildConfigs => _guildConfigs ?? (_guildConfigs = new GuildConfigRepository(_context));
|
||||||
|
|
||||||
private IMusicPlaylistRepository _musicPlaylists;
|
|
||||||
public IMusicPlaylistRepository MusicPlaylists => _musicPlaylists ?? (_musicPlaylists = new MusicPlaylistRepository(_context));
|
|
||||||
|
|
||||||
private ICustomReactionRepository _customReactions;
|
private ICustomReactionRepository _customReactions;
|
||||||
public ICustomReactionRepository CustomReactions => _customReactions ?? (_customReactions = new CustomReactionsRepository(_context));
|
public ICustomReactionRepository CustomReactions => _customReactions ?? (_customReactions = new CustomReactionsRepository(_context));
|
||||||
|
|
||||||
@@ -27,9 +24,6 @@ namespace NadekoBot.Core.Services.Database
|
|||||||
private IDiscordUserRepository _discordUsers;
|
private IDiscordUserRepository _discordUsers;
|
||||||
public IDiscordUserRepository DiscordUsers => _discordUsers ?? (_discordUsers = new DiscordUserRepository(_context));
|
public IDiscordUserRepository DiscordUsers => _discordUsers ?? (_discordUsers = new DiscordUserRepository(_context));
|
||||||
|
|
||||||
private IWarningsRepository _warnings;
|
|
||||||
public IWarningsRepository Warnings => _warnings ?? (_warnings = new WarningsRepository(_context));
|
|
||||||
|
|
||||||
private IXpRepository _xp;
|
private IXpRepository _xp;
|
||||||
public IXpRepository Xp => _xp ?? (_xp = new XpRepository(_context));
|
public IXpRepository Xp => _xp ?? (_xp = new XpRepository(_context));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user