Knocks/BackEnd/Knoks.CryptoExchanges/ExchangeClients/BittrexExchange.cs

56 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WebSocket.Clients;
using WebSocket.Interfaces;
using Knoks.CryptoExchanges.Entities;
namespace Knoks.CryptoExchanges.ExchangeClients
{
class BittrexExchange: IExchangeContainer
{
#region Members
private BittrexWebsocket4Net socket;
private BittrexWebClient client;
private int exchangeId;
public IDictionary<string, string> ReplaceSymbols { get; set; }
#endregion
/// <summary>
/// ctor
/// </summary>
/// <param name="exchangeId"></param>
public BittrexExchange( int exchangeId) {
this.exchangeId = exchangeId;
}
public async Task InitClient(UpdateData updateData) {
socket = new BittrexWebsocket4Net();
socket.Create("https://beta.bittrex.com/signalr");
socket.Sign((s) => new ConsoleWebClient(
updateData,
this.exchangeId,
(ss) =>
{
return client = new BittrexWebClient(ss);
}, s));
await socket.Connect();
}
public async Task Reconnect(){
await Task.CompletedTask;
}
public async Task RequestPairsData(List<Tuple<string, string>> pairs) {
await socket.Connect(pairs.Select(x=>$"{x.Item2}-{x.Item1}").ToArray()); //new string[] { "BTC-ADA", "BTC-TRX" }
}
public async Task CloseConnection() {
await socket.Close();
}
}
}