private IList <MinuteBarRequestKeyDto> Project(IList <MarketDataRequest> bmllRequests) { var keys = new List <MinuteBarRequestKeyDto>(); foreach (var req in bmllRequests) { if (req == null || string.IsNullOrWhiteSpace(req.Identifiers.Figi) || req.UniverseEventTimeTo == null || req.UniverseEventTimeFrom == null) { continue; } var toTarget = req.UniverseEventTimeTo.Value; var fromTarget = req.UniverseEventTimeFrom.Value; var timeSpan = toTarget.Subtract(fromTarget); var totalDays = timeSpan.TotalDays + 1; var iter = 0; while (iter <= totalDays) { var date = fromTarget.AddDays(iter); var barRequest = new MinuteBarRequestKeyDto(req.Identifiers.Figi, "1min", date); keys.Add(barRequest); iter += 1; } } return(keys); }
private GetMinuteBarsRequest GetMinuteBarsRequest(MinuteBarRequestKeyDto request) { if (request == null || string.IsNullOrWhiteSpace(request.Figi)) { this._logger.LogError( $"{nameof(BmllDataRequestsGetTimeBars)} had a null request or a request that did not pass data request validation for {request?.Figi}"); return(null); } if (string.IsNullOrWhiteSpace(request.Figi)) { this._logger.LogError( $"{nameof(BmllDataRequestsGetTimeBars)} asked to process a security without a figi"); return(null); } return(new GetMinuteBarsRequest { Figi = request.Figi, From = request.Date.Date, To = request.Date.Date.AddDays(1).AddMilliseconds(-1), Interval = "1min" }); }