47 lines
No EOL
1.3 KiB
C#
47 lines
No EOL
1.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
using BTCPayServer.Abstractions.Contracts;
|
|
using BTCPayServer.Client.Models;
|
|
using BTCPayServer.Payments;
|
|
|
|
namespace BTCPayServer.Plugins.Monero.Services
|
|
{
|
|
public class MoneroSyncSummaryProvider : ISyncSummaryProvider
|
|
{
|
|
private readonly MoneroRPCProvider _moneroRpcProvider;
|
|
|
|
public MoneroSyncSummaryProvider(MoneroRPCProvider moneroRpcProvider)
|
|
{
|
|
_moneroRpcProvider = moneroRpcProvider;
|
|
}
|
|
|
|
public bool AllAvailable()
|
|
{
|
|
return _moneroRpcProvider.Summaries.All(pair => pair.Value.WalletAvailable);
|
|
}
|
|
|
|
public string Partial { get; } = "/Views/Monero/MoneroSyncSummary.cshtml";
|
|
public IEnumerable<ISyncStatus> GetStatuses()
|
|
{
|
|
return _moneroRpcProvider.Summaries.Select(pair => new MoneroSyncStatus()
|
|
{
|
|
Summary = pair.Value,
|
|
PaymentMethodId = PaymentMethodId.Parse(pair.Key).ToString()
|
|
});
|
|
}
|
|
}
|
|
|
|
public class MoneroSyncStatus : SyncStatus, ISyncStatus
|
|
{
|
|
public override bool Available
|
|
{
|
|
get
|
|
{
|
|
return Summary?.WalletAvailable ?? false;
|
|
}
|
|
}
|
|
|
|
public MoneroRPCProvider.MoneroLikeSummary Summary { get; set; }
|
|
}
|
|
} |