83 lines
3.6 KiB
C#
83 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using RestSharp;
|
|
using WolfOfWallStreet.Extensions;
|
|
using WolfOfWallStreet.Models;
|
|
using WolfOfWallStreet.Models.EasyTrader;
|
|
using WolfOfWallStreet.Services.Contracts;
|
|
namespace WolfOfWallStreet.Services
|
|
{
|
|
public class EasyTraderService : IEasyTraderService
|
|
{
|
|
private int server = 11;
|
|
public async Task<EasyTraderOrderResult> SendOrder(string auth, EasyTraderDraft draft)
|
|
{
|
|
RestClient loginClient = new RestClient();
|
|
RestRequest draftRequest =
|
|
new RestRequest(new Uri($"https://api.cl3.mofid.dev/easy/api/OmsOrder"), Method.POST);
|
|
draftRequest.AddHeader("Accept", "application/json, text/plain, */*");
|
|
draftRequest.AddHeader("Authorization", auth);
|
|
draftRequest.AddHeader("User-Agent",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.173");
|
|
draftRequest.AddHeader("Referer", "https://d.easytrader.emofid.com/");
|
|
draftRequest.AddHeader("Content-Type", "application/json");
|
|
draftRequest.AddJsonBody(new EasyTraderDraft
|
|
{
|
|
cautionAgreementSelected = false,
|
|
easySource = 1,
|
|
easyState = 7,
|
|
financeId = 1,
|
|
isin = draft.isin,
|
|
price = draft.price,
|
|
quantity = draft.quantity,
|
|
referenceKey = $"{StringExtensions.GenerateGuid(8)}-3ff5-{StringExtensions.GenerateGuid(4)}-99f4-{StringExtensions.GenerateGuid(8)}",
|
|
side = 0,
|
|
stockSymbol = draft.stockSymbol,
|
|
validityDateJalali = null,
|
|
validityType = 74
|
|
});
|
|
var res = loginClient.Execute<EasyTraderOrderResult>(draftRequest,Method.POST);
|
|
if (res.IsSuccessful)
|
|
{
|
|
return res.Data;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public async Task<EasyTraderDraft> GetSymbolInfo(string auth, string isin)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public async Task<EasyTraderDraft> GetSymbolOrderBase(string auth, Symbol symbol, long stockPrice)
|
|
{
|
|
RestClient loginClient = new RestClient();
|
|
RestRequest draftRequest =
|
|
new RestRequest(new Uri($"https://d{server}.emofid.com/easy/api/MarketData/GetSymbolDetailsData/{symbol.symbolISIN}/StockOrderData"), Method.GET);
|
|
draftRequest.AddHeader("Accept", "application/json, text/plain, */*");
|
|
draftRequest.AddHeader("Authorization", auth);
|
|
draftRequest.AddHeader("User-Agent",
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.173");
|
|
draftRequest.AddHeader("Referer", "https://d.easytrader.emofid.com/");
|
|
draftRequest.AddHeader("Content-Type", "application/json");
|
|
var res = await loginClient.ExecuteGetAsync<EasyTraderSymbol>(draftRequest);
|
|
if (res.IsSuccessful)
|
|
{
|
|
return new EasyTraderDraft
|
|
{
|
|
price = (int)res.Data.highAllowedPrice,
|
|
stockSymbol = symbol.SymbolName,
|
|
quantity = (int)(stockPrice / res.Data.highAllowedPrice) + 2,
|
|
isin = symbol.symbolISIN
|
|
};
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|