btcpayserver/BTCPayServer/Models/StoreViewModels/RatesViewModel.cs

54 lines
1.8 KiB
C#
Raw Normal View History

2020-06-28 21:44:35 -05:00
using System;
using System.Collections.Generic;
2018-05-04 01:46:52 +09:00
using System.ComponentModel.DataAnnotations;
using System.Linq;
using BTCPayServer.Rating;
using BTCPayServer.Services.Rates;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace BTCPayServer.Models.StoreViewModels
{
public class RatesViewModel
{
public class TestResultViewModel
{
public string CurrencyPair { get; set; }
public string Rule { get; set; }
public bool Error { get; set; }
}
public void SetExchangeRates(IEnumerable<RateSourceInfo> supportedList, string preferredExchange)
2018-05-04 01:46:52 +09:00
{
supportedList = supportedList.ToArray();
var chosen = supportedList.FirstOrDefault(f => f.Id == preferredExchange) ?? supportedList.FirstOrDefault();
Exchanges = new SelectList(supportedList, nameof(chosen.Id), nameof(chosen.DisplayName), chosen);
PreferredExchange = chosen?.Id;
RateSource = chosen?.Url;
}
2018-05-04 01:46:52 +09:00
public List<TestResultViewModel> TestRateRules { get; set; }
public SelectList Exchanges { get; set; }
public bool ShowScripting { get; set; }
[Display(Name = "Rate Rules")]
2018-05-04 01:46:52 +09:00
[MaxLength(2000)]
public string Script { get; set; }
public string DefaultScript { get; set; }
public string ScriptTest { get; set; }
public string DefaultCurrencyPairs { get; set; }
public string StoreId { get; set; }
public IEnumerable<RateSourceInfo> AvailableExchanges { get; set; }
2018-05-04 01:46:52 +09:00
[Display(Name = "Add Exchange Rate Spread")]
[Range(0.0, 100.0)]
public double Spread { get; set; }
2018-05-04 01:46:52 +09:00
[Display(Name = "Preferred Price Source")]
2018-05-04 01:46:52 +09:00
public string PreferredExchange { get; set; }
public string RateSource { get; set; }
2018-05-04 01:46:52 +09:00
}
}