예제 #1
0
        public async Task TestItemManagerCrud()
        {
            var item = await _bankItems.GetBankItemAsync(new GuildBank(1, "bank") { Id = 1 }, "item");

            Assert.Null(item);

            var bank = await _bank.CreateGuildBankAsync(1, 1, new GuildBank(1, "bank"));

            var i = await _bankItems.CreateBankItemAsync(bank, new GuildBankItem("item") { Description = "d", Value = -0.3, Quantity = -1.6 }, 1);

            item = (await _bankItems.GetBankItemAsync(bank, i.Id)) !;
            Assert.Equal("d", item.Description);

            await _bankItems.UpdateBankItemAsync(bank, i.Id, 1, bankItem => bankItem.Description = "t", 1);

            Assert.Equal("t", item.Description);

            item = (await _bankItems.GetBankItemAsync(bank, 1)) !;
            Assert.Equal("t", item.Description);

            await _bankItems.RemoveBankItemAsync(bank, i.Id, 1);

            item = await _bankItems.GetBankItemAsync(bank, 1);

            Assert.Null(item);
        }
예제 #2
0
        public async Task <IActionResult> EditBankItem(ulong guildId, int bankId, int itemId,
                                                       [Bind(nameof(GuildBankItem.Name), nameof(GuildBankItem.Description), nameof(GuildBankItem.Value),
                                                             nameof(GuildBankItem.ImageUrl), nameof(GuildBankItem.Quantity))]
                                                       GuildBankItem item)
        {
            var userId = User.GetId();

            var bank = await _bank.GetGuildBankAsync(guildId, bankId);

            if (bank == null)
            {
                throw new BankNotFoundException();
            }

            if (!await ValidateWriteAccess(bank, userId))
            {
                throw new UserNotGuildModeratorException();
            }

            await _items.UpdateBankItemAsync(bank, itemId, userId, i =>
            {
                i.Name        = item.Name;
                i.Description = item.Description;
                i.Value       = item.Value;
                i.ImageUrl    = item.ImageUrl;
                i.Quantity    = item.Quantity;
            });

            return(Ok());
        }