public async Task <List <BankAccountTransferData> > GetBankTransfer() { RobinhoodApi robinhoodApi = new RobinhoodApi() { BearerToken = ApplicationSettings.Default.RobinKey }; OutRobinData <TransferData> datas = await robinhoodApi.GetBankTransfers(); List <BankAccountTransferData> output = new List <BankAccountTransferData>(); foreach (TransferData data in datas.Data) { ShowMessage($"{data.direction} - {data.amount} on {data.scheduled}"); DateTime createDate = UtilityHandler.GetDateValue(data.created_at); DateTime updateDate = UtilityHandler.GetDateValue(data.updated_at); decimal transferAmnt = UtilityHandler.GetDecimalNumber(data.amount); decimal feeAmnt = UtilityHandler.GetDecimalNumber(data.fees); BankAccountTransferData d = new BankAccountTransferData() { ID = data.id, Ref_ID = data.ref_id, Transfer_AMNT = transferAmnt, Fees_AMNT = feeAmnt, BankAccount_ID = UtilityHandler.GetIdFromUrl(data.account), Direction_CODE = data.direction, Status_CODE = data.state, Created_DTTM = createDate, Update_DTTM = updateDate }; output.Add(d); } return(output); }
public async Task <List <BankPortfolioData> > GetPositionData() { List <BankPortfolioData> output = new List <BankPortfolioData>(); RobinhoodApi api = new RobinhoodApi() { BearerToken = ApplicationSettings.Default.RobinKey }; OutRobinData <RhPosition> datas = await api.GetPositions(); foreach (RhPosition data in datas.Data) { RhInstrument inst = await InstrumentLookup.GetRhInstrument(data.instrument); ShowMessage($"{inst.Symbol}- {inst.SimpleName}"); decimal shareCount = UtilityHandler.GetDecimalNumber(data.quantity); decimal costBasis = UtilityHandler.GetDecimalNumber(data.average_buy_price); BankPortfolioData d = new BankPortfolioData() { BankAccount_ID = UtilityHandler.GetString(data.account_number), Trade_CODE = UtilityHandler.GetString(inst.Symbol), Trade_NAME = UtilityHandler.GetString(inst.SimpleName), Shares_CNT = shareCount, CostBasis_AMNT = costBasis, Value_AMNT = shareCount * costBasis, Export_DATE = DateTime.Today, Instrument_ID = inst.Id }; output.Add(d); } return(output); }
private static async Task <OutRobinData <RhTransaction> > GetRobinHoodTransactionData() { OutRobinData <RhTransaction> output = new OutRobinData <RhTransaction>() { Data = new List <RhTransaction>() }; RobinhoodApi api = new RobinhoodApi() { BearerToken = ApplicationSettings.Default.RobinKey }; string downloadUrl = "https://api.robinhood.com/orders/"; string folderName = $@"{ApplicationSettings.Default.LoggingFolder}\ApiData"; if (!Directory.Exists(folderName)) { Directory.CreateDirectory(folderName); } for (int i = 0; i < Settings.Default.RobinMaxPages; i++) { string tranFileName = $@"{folderName}\Orders{i}.json"; OutData <string> sd = await api.GetJsonData4Url(downloadUrl); File.WriteAllText(tranFileName, sd.Data); OutRobinData <RhTransaction> datas = JsonConvert.DeserializeObject <OutRobinData <RhTransaction> >(sd.Data); if (datas.Data.Count > 0) { output.Data.AddRange(datas.Data); } if (datas.Next is null || UtilityHandler.IsEmpty(datas.Next)) { break; } downloadUrl = datas.Next; } return(output); }