Moved some ICurrencyService methods to extensions to simplify use

This commit is contained in:
Kwoth
2022-03-19 21:19:22 +01:00
parent 416f3d604c
commit e09435da37
4 changed files with 29 additions and 24 deletions

View File

@@ -65,8 +65,7 @@ public partial class Gambling : GamblingModule<GamblingService>
public async Task<string> GetBalanceStringAsync(ulong userId) public async Task<string> GetBalanceStringAsync(ulong userId)
{ {
await using var wallet = await _cs.GetWalletAsync(userId); var bal = await _cs.GetBalanceAsync(userId);
var bal = await wallet.GetBalance();
return N(bal); return N(bal);
} }

View File

@@ -99,19 +99,4 @@ public class CurrencyService : ICurrencyService, INService
await using var wallet = await GetWalletAsync(user.Id); await using var wallet = await GetWalletAsync(user.Id);
return await wallet.Take(amount, txData); return await wallet.Take(amount, txData);
} }
public async Task<bool> TransferAsync(
ulong fromId,
ulong toId,
long amount,
string fromName,
string note)
{
await using var fromWallet = await GetWalletAsync(fromId);
await using var toWallet = await GetWalletAsync(toId);
var extra = new TxData("gift", fromName, note, fromId);
return await fromWallet.Transfer(amount, toWallet, extra);
}
} }

View File

@@ -0,0 +1,28 @@
using NadekoBot.Services.Currency;
namespace NadekoBot.Services;
public static class CurrencyServiceExtensions
{
public static async Task<long> GetBalanceAsync(this ICurrencyService cs, ulong userId)
{
await using var wallet = await cs.GetWalletAsync(userId);
return await wallet.GetBalance();
}
public static async Task<bool> TransferAsync(
this ICurrencyService cs,
ulong fromId,
ulong toId,
long amount,
string fromName,
string note)
{
await using var fromWallet = await cs.GetWalletAsync(fromId);
await using var toWallet = await cs.GetWalletAsync(toId);
var extra = new TxData("gift", fromName, note, fromId);
return await fromWallet.Transfer(amount, toWallet, extra);
}
}

View File

@@ -38,11 +38,4 @@ public interface ICurrencyService
IUser user, IUser user,
long amount, long amount,
TxData txData); TxData txData);
Task<bool> TransferAsync(
ulong from,
ulong to,
long amount,
string fromName,
string note);
} }