public async Task <IFeedHistory> GetAsync(string assetPairId, string priceType, DateTime feedTime)
        {
            var entity = await _tableStorage.GetDataAsync(FeedHistoryEntity.GeneratePartition(assetPairId, priceType),
                                                          FeedHistoryEntity.GenerateRowKey(feedTime));

            return(entity?.ToDto());
        }
        public async Task <IEnumerable <IFeedHistory> > GetLastTenMinutesAskAsync(string assetPairId)
        {
            var rangeQuery = AzureStorageUtils.QueryGenerator <FeedHistoryEntity>
                             .GreaterThanQuery(FeedHistoryEntity.GeneratePartition(assetPairId, PriceType.Ask),
                                               FeedHistoryEntity.GenerateRowKey(DateTime.UtcNow.AddMinutes(-10)));

            return((await _tableStorage.WhereAsync(rangeQuery)).Select(x => x.ToDto()));
        }
        public async Task <IFeedHistory> GetСlosestAvailableAsync(string assetPairId, string priceType, DateTime feedTime)
        {
            var rangeQuery = AzureStorageUtils.QueryGenerator <FeedHistoryEntity>
                             .GreaterThanQuery(FeedHistoryEntity.GeneratePartition(assetPairId, priceType),
                                               FeedHistoryEntity.GenerateRowKey(feedTime)).Take(1);

            var resList = new List <FeedHistoryEntity>();
            await _tableStorage.ExecuteAsync(rangeQuery, entities =>
            {
                resList.AddRange(entities);
            }, () => false);

            return(resList.Any() ? resList.First().ToDto() : null);
        }