mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-04 00:34:26 -05:00 
			
		
		
		
	A few more improvements and cleanup for the wallet
This commit is contained in:
		@@ -73,6 +73,7 @@ public static class GuildConfigExtensions
 | 
			
		||||
    {
 | 
			
		||||
        GuildConfig config;
 | 
			
		||||
 | 
			
		||||
        // todo linq2db
 | 
			
		||||
        if (includes is null)
 | 
			
		||||
            config = ctx.GuildConfigs.IncludeEverything().FirstOrDefault(c => c.GuildId == guildId);
 | 
			
		||||
        else
 | 
			
		||||
@@ -100,6 +101,26 @@ public static class GuildConfigExtensions
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return config;
 | 
			
		||||
 | 
			
		||||
        // ctx.GuildConfigs
 | 
			
		||||
        //    .ToLinqToDBTable()
 | 
			
		||||
        //    .InsertOrUpdate(() => new()
 | 
			
		||||
        //        {
 | 
			
		||||
        //            GuildId = guildId,
 | 
			
		||||
        //            Permissions = Permissionv2.GetDefaultPermlist,
 | 
			
		||||
        //            WarningsInitialized = true,
 | 
			
		||||
        //            WarnPunishments = DefaultWarnPunishments
 | 
			
		||||
        //        },
 | 
			
		||||
        //        _ => new(),
 | 
			
		||||
        //        () => new()
 | 
			
		||||
        //        {
 | 
			
		||||
        //            GuildId = guildId
 | 
			
		||||
        //        });
 | 
			
		||||
        //
 | 
			
		||||
        // if(includes is null)
 | 
			
		||||
        // return ctx.GuildConfigs
 | 
			
		||||
        //    .ToLinqToDBTable()
 | 
			
		||||
        //    .First(x => x.GuildId == guildId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static LogSetting LogSettingsFor(this NadekoContext ctx, ulong guildId)
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ public static class CurrencyServiceExtensions
 | 
			
		||||
        return await wallet.GetBalance();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // todo transfer should be a transaction
 | 
			
		||||
    public static async Task<bool> TransferAsync(
 | 
			
		||||
        this ICurrencyService cs,
 | 
			
		||||
        ulong fromId,
 | 
			
		||||
 
 | 
			
		||||
@@ -43,17 +43,18 @@ public class DefaultWallet : IWallet
 | 
			
		||||
        if (changed == 0)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
        await using var ctx2 = ctx.CreateLinqToDbContext();
 | 
			
		||||
        await ctx2
 | 
			
		||||
            .InsertAsync(new CurrencyTransaction()
 | 
			
		||||
            {
 | 
			
		||||
                Amount = -amount,
 | 
			
		||||
                Note = txData.Note,
 | 
			
		||||
                UserId = UserId,
 | 
			
		||||
                Type = txData.Type,
 | 
			
		||||
                Extra = txData.Extra,
 | 
			
		||||
                OtherId = txData.OtherId
 | 
			
		||||
            });
 | 
			
		||||
        await ctx
 | 
			
		||||
              .GetTable<CurrencyTransaction>()
 | 
			
		||||
              .InsertAsync(() => new()
 | 
			
		||||
              {
 | 
			
		||||
                  Amount = -amount,
 | 
			
		||||
                  Note = txData.Note,
 | 
			
		||||
                  UserId = UserId,
 | 
			
		||||
                  Type = txData.Type,
 | 
			
		||||
                  Extra = txData.Extra,
 | 
			
		||||
                  OtherId = txData.OtherId,
 | 
			
		||||
                  DateAdded = DateTime.UtcNow
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
@@ -88,17 +89,16 @@ public class DefaultWallet : IWallet
 | 
			
		||||
            await tran.CommitAsync();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var ct = new CurrencyTransaction()
 | 
			
		||||
        {
 | 
			
		||||
            Amount = amount,
 | 
			
		||||
            UserId = UserId,
 | 
			
		||||
            Note = txData.Note,
 | 
			
		||||
            Type = txData.Type,
 | 
			
		||||
            Extra = txData.Extra,
 | 
			
		||||
            OtherId = txData.OtherId
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        await using var ctx2 = ctx.CreateLinqToDbContext();
 | 
			
		||||
        await ctx2.InsertAsync(ct);
 | 
			
		||||
        await ctx.GetTable<CurrencyTransaction>()
 | 
			
		||||
                 .InsertAsync(() => new()
 | 
			
		||||
                 {
 | 
			
		||||
                     Amount = amount,
 | 
			
		||||
                     UserId = UserId,
 | 
			
		||||
                     Note = txData.Note,
 | 
			
		||||
                     Type = txData.Type,
 | 
			
		||||
                     Extra = txData.Extra,
 | 
			
		||||
                     OtherId = txData.OtherId,
 | 
			
		||||
                     DateAdded = DateTime.UtcNow
 | 
			
		||||
                 });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user