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 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(draftRequest,Method.POST); if (res.IsSuccessful) { return res.Data; } return null; } public async Task GetSymbolInfo(string auth, string isin) { throw new NotImplementedException(); } public async Task 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(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; } } }