private async Task <RequestTokenResponse> CreateAuthenticationTokenAsync(string apiJwtToken) { var requestTokenRequest = await CreateAuthenticationTokenRequestAsync(apiJwtToken); var equiasConfiguration = new EquiasConfiguration(await GetEquiasDomainAsync(apiJwtToken)); return(await equiasAuthenticationService.EboGetAuthenticationToken(requestTokenRequest, equiasConfiguration)); }
public async Task <EboGetTradeStatusResponse> TradeStatusAsync(IEnumerable <TradeKey> tradeKeys, string apiJwtToken) { var enumerable = tradeKeys.ToList(); var tradeIds = enumerable.Select(t => EquiasService.MapTradeId(t.TradeReference, t.TradeLeg)).ToList(); var equiasConfiguration = new EquiasConfiguration(await GetEquiasDomainAsync(apiJwtToken)); var requestTokenResponse = await CreateAuthenticationTokenAsync(apiJwtToken); logger.LogInformation("Attempting to get trade status for trades {TradeIds}", TradeCubeJsonSerializer.Serialize(tradeIds)); return(tradeIds.Any() ? await equiasService.EboGetTradeStatus(tradeIds, requestTokenResponse, equiasConfiguration) : new EboGetTradeStatusResponse()); }
public async Task <EboTradeResponse> CancelTradeAsync(string tradeReference, int tradeLeg, string apiJwtToken) { var equiasConfiguration = new EquiasConfiguration(await GetEquiasDomainAsync(apiJwtToken)); var requestTokenResponse = await CreateAuthenticationTokenAsync(apiJwtToken); var cancelTrade = new CancelTrade { TradeId = EquiasService.MapTradeId(tradeReference, tradeLeg) }; var eboTradeResponse = await equiasService.CancelTrade(cancelTrade, requestTokenResponse, equiasConfiguration); var tradeDataObject = await GetTradeAsync(tradeReference, tradeLeg, apiJwtToken); var addTradePostSubmission = SetTradePostSubmission(eboTradeResponse, tradeDataObject); var savePostSubmissionAdd = await SaveTradeAsync(addTradePostSubmission, apiJwtToken); logger.LogInformation("Cancel Trade updated (EboSubmissionStatus={EboSubmissionStatus}), result: {Status}", tradeDataObject.External.Equias.EboSubmissionStatus, savePostSubmissionAdd.Status); return(eboTradeResponse); }