コード例 #1
0
        public static async Task SetHex(Color color, ulong UserId)
        {
            using var DbContext = new NamikoDbContext();
            var profile = DbContext.Profiles.Where(x => x.UserId == UserId).FirstOrDefault();

            //checking hex validity (makes sure hex colour.len ALWAYS = 6)
            string colour   = color.Name;
            int    boundary = colour.Length;

            if (boundary < 6)
            {
                colour = new string('0', 6 - boundary) + colour;
            }

            //if this user has not set a custom colour
            if (profile == null)
            {
                DbContext.Add(new Profile {
                    UserId = UserId, ColorHex = colour
                });
                await DbContext.SaveChangesAsync();

                return;
            }

            //setting profile values + updating stack
            profile.PriorColorHexStack = PushStackManagement(profile.ColorHex, profile.PriorColorHexStack);
            profile.ColorHex           = colour;
            DbContext.Update(profile);
            await DbContext.SaveChangesAsync();
        }
コード例 #2
0
ファイル: WaifuDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task <int> RenameWaifu(string oldName, string newName)
        {
            using var db = new NamikoDbContext();
            var inv    = db.UserInventories.Where(x => x.Waifu.Name == oldName);
            var wish   = db.WaifuWishlist.Where(x => x.Waifu.Name == oldName);
            var store  = db.ShopWaifus.Where(x => x.Waifu.Name == oldName);
            var feat   = db.FeaturedWaifus.Where(x => x.Waifu.Name == oldName);
            var actual = db.Waifus.Where(x => x.Name == oldName);

            var invL    = inv.ToList();
            var wishL   = wish.ToList();
            var storeL  = store.ToList();
            var featL   = feat.ToList();
            var actualL = actual.ToList();

            db.UserInventories.RemoveRange(inv);
            db.WaifuWishlist.RemoveRange(wish);
            db.ShopWaifus.RemoveRange(store);
            db.FeaturedWaifus.RemoveRange(feat);
            db.Waifus.RemoveRange(actual);

            await db.SaveChangesAsync();

            foreach (var x in invL)
            {
                x.Waifu.Name = newName;
            }
            foreach (var x in wishL)
            {
                x.Waifu.Name = newName;
            }
            foreach (var x in storeL)
            {
                x.Waifu.Name = newName;
            }
            foreach (var x in featL)
            {
                x.Waifu.Name = newName;
            }
            foreach (var x in actualL)
            {
                x.Name = newName;
            }

            db.Waifus.AddRange(actualL);

            int res = await db.SaveChangesAsync();

            db.UserInventories.AddRange(invL);
            db.WaifuWishlist.AddRange(wishL);
            db.ShopWaifus.AddRange(storeL);
            db.FeaturedWaifus.AddRange(featL);

            return(res + await db.SaveChangesAsync());
        }
コード例 #3
0
ファイル: LootboxDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task AddLootbox(ulong UserId, LootBoxType type, int amount, ulong GuildId = 0)
        {
            using var db = new NamikoDbContext();
            var box = db.LootBoxes.Where(x => x.UserId == UserId && x.Type == type && x.GuildId == GuildId).FirstOrDefault();

            if (box == null)
            {
                db.LootBoxes.Add(new LootBox
                {
                    UserId  = UserId,
                    GuildId = GuildId,
                    Amount  = amount,
                    Type    = type
                });
            }
            else
            {
                box.Amount += amount;
                if (box.Amount < 0)
                {
                    throw new Exception("Lootbox amount < 0");
                }
                db.LootBoxes.Update(box);
            }

            await db.SaveChangesAsync();
        }
コード例 #4
0
        public static async Task Delete(ulong roleId)
        {
            using var DbContext = new NamikoDbContext();
            var publicRole = DbContext.PublicRoles.Where(x => x.RoleId == roleId).FirstOrDefault();

            DbContext.PublicRoles.Remove(publicRole);
            await DbContext.SaveChangesAsync();
        }
コード例 #5
0
 public static async Task Add(ulong roleId, ulong guildId)
 {
     using var DbContext = new NamikoDbContext();
     DbContext.Add(new PublicRole {
         RoleId = roleId, GuildId = guildId
     });
     await DbContext.SaveChangesAsync();
 }
コード例 #6
0
 public static async Task Add(ulong roleId, ulong guildId, RoleType type)
 {
     using var DbContext = new NamikoDbContext();
     DbContext.PermissionRoles.Add(new PermissionRole {
         RoleId = roleId, GuildId = guildId, Type = type
     });
     await DbContext.SaveChangesAsync();
 }
コード例 #7
0
ファイル: WelcomeMessageDb.cs プロジェクト: ta1H3n/Namiko
 public static async Task AddMessage(String message)
 {
     using var DbContext = new NamikoDbContext();
     DbContext.Add(new WelcomeMessage {
         Message = message
     });
     await DbContext.SaveChangesAsync();
 }
コード例 #8
0
ファイル: WelcomeMessageDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task DeleteMessage(int id)
        {
            using var DbContext = new NamikoDbContext();
            WelcomeMessage message = DbContext.WelcomeMessages.Where(x => x.Id == id).FirstOrDefault();

            DbContext.WelcomeMessages.Remove(message);
            await DbContext.SaveChangesAsync();
        }
コード例 #9
0
 public static async Task NewInvite(ulong teamId, ulong userId)
 {
     using var DbContext = new NamikoDbContext();
     DbContext.Add(new Invite {
         TeamId = teamId, UserId = userId, Date = DateTime.Now
     });
     await DbContext.SaveChangesAsync();
 }
コード例 #10
0
        public static async Task DeleteInvite(ulong teamId, ulong userId)
        {
            using var DbContext = new NamikoDbContext();
            var invite = DbContext.Invites.Where(x => x.TeamId == teamId && x.UserId == userId).FirstOrDefault();

            DbContext.Remove(invite);
            await DbContext.SaveChangesAsync();
        }
コード例 #11
0
 public static async Task AddTeam(ulong leaderId, ulong memberId, ulong guildId)
 {
     using var DbContext = new NamikoDbContext();
     DbContext.Add(new Team {
         LeaderRoleId = leaderId, MemberRoleId = memberId, GuildId = guildId
     });
     await DbContext.SaveChangesAsync();
 }
コード例 #12
0
 public static async Task Add(ulong id)
 {
     using var db = new NamikoDbContext();
     db.Blacklist.Add(new Blacklisted {
         Id = id
     });
     await db.SaveChangesAsync();
 }
コード例 #13
0
ファイル: ImageDb.cs プロジェクト: ta1H3n/Namiko
 public static async Task CreateAlbum(string name, string albumId)
 {
     using var db = new NamikoDbContext();
     db.Add(new ImgurAlbumLink {
         AlbumId = albumId, Name = name.ToLowerInvariant()
     });
     await db.SaveChangesAsync();
 }
コード例 #14
0
ファイル: ImageDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task DeleteImage(int id)
        {
            using var DbContext = new NamikoDbContext();
            ReactionImage image = DbContext.Images.Where(x => x.Id == id).FirstOrDefault();

            DbContext.Images.Remove(image);
            await DbContext.SaveChangesAsync();
        }
コード例 #15
0
ファイル: MarriageDb.cs プロジェクト: ta1H3n/Namiko
        // Deletes all matching results, userId and wifeId order doesn't matter
        public static async Task DeleteMarriageOrProposal(ulong userId, ulong wifeId, ulong guildId)
        {
            using var db = new NamikoDbContext();
            var items = db.Marriages.Where(x => ((x.UserId == userId && x.WifeId == wifeId) || (x.UserId == wifeId && x.WifeId == userId)) && x.GuildId == guildId);

            db.Marriages.RemoveRange(items);
            await db.SaveChangesAsync();
        }
コード例 #16
0
ファイル: WaifuShopDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task DeleteByGuild(ulong guildId)
        {
            using var db = new NamikoDbContext();
            var shops = db.WaifuShops.Where(x => x.GuildId == guildId);

            db.ShopWaifus.RemoveRange(db.ShopWaifus.Where(x => shops.Any(y => y.Id == x.WaifuShop.Id)));
            db.WaifuShops.RemoveRange(shops);

            await db.SaveChangesAsync();
        }
コード例 #17
0
        public static async Task SetFeaturedWaifu(ulong userId, Waifu waifu, ulong guildId)
        {
            using var dbContext = new NamikoDbContext();
            var entry = new FeaturedWaifu {
                UserId = userId, Waifu = waifu, GuildId = guildId
            };

            dbContext.FeaturedWaifus.RemoveRange(dbContext.FeaturedWaifus.Where(x => x.UserId == userId & x.GuildId == guildId));
            dbContext.FeaturedWaifus.Update(entry);
            await dbContext.SaveChangesAsync();
        }
コード例 #18
0
        public static async Task DeleteWaifu(ulong userId, Waifu waifu, ulong guildId)
        {
            using var DbContext = new NamikoDbContext();
            var userWaifu = DbContext.UserInventories.Where(x => x.UserId == userId && x.Waifu.Equals(waifu) && x.GuildId == guildId).FirstOrDefault();

            if (userWaifu != null)
            {
                DbContext.UserInventories.Remove(userWaifu);
                await DbContext.SaveChangesAsync();
            }
        }
コード例 #19
0
        public static async Task DeleteServer(ulong GuildId)
        {
            using var db = new NamikoDbContext();
            var server = db.Servers.Where(x => x.GuildId == GuildId).FirstOrDefault();

            if (server != null)
            {
                db.Remove(server);
                await db.SaveChangesAsync();
            }
        }
コード例 #20
0
        public static async Task DeleteDisabledCommand(ulong GuildId, string name, DisabledCommandType type)
        {
            using var db = new NamikoDbContext();
            var command = await db.DisabledCommands.Where(x => x.GuildId == GuildId && x.Name.Equals(name) && x.Type == type).FirstOrDefaultAsync();

            if (command != null)
            {
                db.Remove(command);
                await db.SaveChangesAsync();
            }
        }
コード例 #21
0
ファイル: ShopRoleDb.cs プロジェクト: ta1H3n/Namiko
 public static async Task AddRole(ulong guildId, ulong roleId, int price)
 {
     using var db = new NamikoDbContext();
     db.ShopRoles.Add(new ShopRole
     {
         GuildId = guildId,
         Price   = price,
         RoleId  = roleId
     });
     await db.SaveChangesAsync();
 }
コード例 #22
0
ファイル: ImageDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task ToLower()
        {
            using var db = new NamikoDbContext();
            var images = db.Images;

            foreach (var x in images)
            {
                x.Name = x.Name.ToLowerInvariant();
            }
            db.Images.UpdateRange(images);
            await db.SaveChangesAsync();
        }
コード例 #23
0
ファイル: BlacklistedChannelDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task DeleteBlacklistedChannel(ulong channelId)
        {
            using NamikoDbContext db = new NamikoDbContext();
            var ch = db.BlacklistedChannels.Where(x => x.ChannelId == channelId).FirstOrDefault();

            if (ch != null)
            {
                db.Remove(ch);
                BlacklistedChannelIds.Remove(ch.ChannelId);
                await db.SaveChangesAsync();
            }
        }
コード例 #24
0
ファイル: MarriageDb.cs プロジェクト: ta1H3n/Namiko
 // userId is the user who proposed, wifeId is the user who received the proposal, date = now, married = false
 public static async Task Propose(ulong userId, ulong wifeId, ulong guildId)
 {
     using var db = new NamikoDbContext();
     db.Marriages.Add(new Marriage
     {
         GuildId   = guildId,
         UserId    = userId,
         WifeId    = wifeId,
         IsMarried = false,
         Date      = System.DateTime.Now
     });
     await db.SaveChangesAsync();
 }
コード例 #25
0
        public static async Task DeleteLast(ulong UserId)
        {
            using var db = new NamikoDbContext();
            var delete = db.Voters.Where(x => x.UserId == UserId).FirstOrDefault();

            if (delete == null)
            {
                return;
            }

            db.Voters.Remove(delete);
            await db.SaveChangesAsync();
        }
コード例 #26
0
        public static async Task CompletelyDeleteWaifu(Waifu waifu)
        {
            using var DbContext = new NamikoDbContext();
            var userWaifu = DbContext.UserInventories.Where(x => x.Waifu.Equals(waifu));

            if (userWaifu == null)
            {
                return;
            }

            DbContext.UserInventories.RemoveRange(userWaifu);
            await DbContext.SaveChangesAsync();
        }
コード例 #27
0
        public static async Task HexDefault(ulong UserId)
        {
            using var DbContext = new NamikoDbContext();
            var profile = DbContext.Profiles.Where(x => x.UserId == UserId).FirstOrDefault();

            //if this user is not in the database
            if (profile == null)
            {
                DbContext.Add(new Profile {
                    UserId = UserId
                });
                await DbContext.SaveChangesAsync();

                return;
            }

            //updating profile + stack change
            profile.PriorColorHexStack = PushStackManagement(profile.ColorHex, profile.PriorColorHexStack);
            profile.ColorHex           = "";
            DbContext.Update(profile);
            await DbContext.SaveChangesAsync();
        }
コード例 #28
0
ファイル: BanrouletteDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task EndBanroulette(int banrouletteId)
        {
            using var db = new NamikoDbContext();
            var br = db.Banroulettes.FirstOrDefault(x => x.Id == banrouletteId);

            if (br == null)
            {
                return;
            }
            br.Active = false;
            db.Update(br);
            await db.SaveChangesAsync();
        }
コード例 #29
0
        public static async Task <int> AddWaifu(ulong userId, Waifu waifu, ulong guildId)
        {
            using var DbContext = new NamikoDbContext();
            var inv = new UserInventory {
                UserId = userId, Waifu = waifu, GuildId = guildId, DateBought = DateTime.Now
            };

            DbContext.Update(inv);
            int res = await DbContext.SaveChangesAsync();

            await WaifuWishlistDb.DeleteWaifuWish(userId, waifu, guildId);

            return(res);
        }
コード例 #30
0
ファイル: ParamDb.cs プロジェクト: ta1H3n/Namiko
        public static async Task UpdateParam(Param param)
        {
            using var db = new NamikoDbContext();
            if (!db.Params.Any(x => x.Id == param.Id))
            {
                db.Params.Add(param);
            }

            else
            {
                db.Params.Update(param);
            }

            await db.SaveChangesAsync();
        }