2022-01-20 17:35:25 +01:00
|
|
|
using System;
|
|
|
|
|
2020-01-10 14:50:39 +01:00
|
|
|
namespace BTCPayServer.Rating
|
|
|
|
{
|
2020-01-13 22:20:45 +09:00
|
|
|
public enum RateSource
|
|
|
|
{
|
|
|
|
Coingecko,
|
|
|
|
Direct
|
|
|
|
}
|
2020-01-10 14:50:39 +01:00
|
|
|
public class AvailableRateProvider
|
|
|
|
{
|
2020-01-13 22:20:45 +09:00
|
|
|
public string Name { get; }
|
|
|
|
public string Url { get; }
|
|
|
|
public string Id { get; }
|
2020-01-17 14:16:12 +09:00
|
|
|
public string SourceId { get; }
|
2020-01-13 22:20:45 +09:00
|
|
|
public RateSource Source { get; }
|
2020-01-10 14:50:39 +01:00
|
|
|
|
2020-01-17 14:16:12 +09:00
|
|
|
public AvailableRateProvider(string id, string name, string url) : this(id, id, name, url, RateSource.Direct)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
public AvailableRateProvider(string id, string sourceId, string name, string url, RateSource source)
|
2020-01-10 14:50:39 +01:00
|
|
|
{
|
|
|
|
Id = id;
|
2020-01-17 14:16:12 +09:00
|
|
|
SourceId = sourceId;
|
2020-01-10 14:50:39 +01:00
|
|
|
Name = name;
|
|
|
|
Url = url;
|
2020-01-13 22:20:45 +09:00
|
|
|
Source = source;
|
2020-01-10 14:50:39 +01:00
|
|
|
}
|
2022-01-20 17:35:25 +01:00
|
|
|
|
|
|
|
public string DisplayName =>
|
|
|
|
Source switch
|
|
|
|
{
|
|
|
|
RateSource.Direct => Name,
|
|
|
|
RateSource.Coingecko => $"{Name} (via CoinGecko)",
|
|
|
|
_ => throw new NotSupportedException(Source.ToString())
|
|
|
|
};
|
2020-01-10 14:50:39 +01:00
|
|
|
}
|
|
|
|
}
|