private void Notify(object sender, QueryDataEventArgs eArgs, bool isStock) { ChartControl host = sender as ChartControl; QueryDataResult <ChartItem> qResult = new QueryDataResult <ChartItem>() { QueryId = eArgs.QueryData.QueryId }; if (eArgs.QueryData.HeadDate != null) { bool isHeadEnd = false; var dataList = CopyStock(eArgs.QueryData.HeadCount.Value, eArgs.QueryData.HeadDate.Value, out isHeadEnd); qResult.CollectionId = eArgs.QueryData.CollectionId; qResult.IsHeadIncluded = true; qResult.HeadItems = dataList != null ? new List <ChartItem>(dataList.Count) : null; qResult.IsHeadEnd = isHeadEnd; if (dataList != null) { CandleData?cdPre = null; foreach (var cd in dataList) { var cItem = CandleData2Item(cd, cdPre, isStock); cdPre = cd; qResult.HeadItems.Add(cItem); } } } if (eArgs.QueryData.TailDate != null) { bool isTailEnd = false; var dataList = CopyStock(eArgs.QueryData.TailDate.Value, eArgs.QueryData.TailCount.Value, out isTailEnd); qResult.CollectionId = eArgs.QueryData.CollectionId; qResult.IsTailIncluded = true; qResult.TailItems = dataList != null ? new List <ChartItem>(dataList.Count) : null; qResult.IsTailEnd = isTailEnd; CandleData?cdPre = null; if (dataList != null) { foreach (var cd in dataList) { var cItem = CandleData2Item(cd, cdPre, isStock); cdPre = cd; qResult.TailItems.Add(cItem); } } } qResult.IsSucceeded = true; host.QueryFinished(qResult); }
public IEnumerable <TResult> ExecuteQuery <TResult>() { QueryDataResult result = this.infoCarrierClient.QueryData( new QueryDataRequest( this.rlinq, this.queryContext.Context.ChangeTracker.QueryTrackingBehavior), this.queryContext.Context); return(this.createResultMapper().MapAndTrackResults <TResult>(result.MappedResults)); }
public IAsyncEnumerable <TResult> ExecuteAsyncQuery <TResult>() { async Task <IEnumerable <TResult> > MapAndTrackResultsAsync() { QueryDataResult result = await this.infoCarrierClient.QueryDataAsync( new QueryDataRequest( this.rlinq, this.queryContext.Context.ChangeTracker.QueryTrackingBehavior), this.queryContext.Context, this.queryContext.CancellationToken); return(this.createResultMapper().MapAndTrackResults <TResult>(result.MappedResults)); } return(new AsyncEnumerableAdapter <TResult>(MapAndTrackResultsAsync())); }
/// <summary> /// Get query data result /// </summary> /// <typeparam name="T">Data type</typeparam> /// <param name="ex">Exception</param> /// <returns>Return query data result</returns> public QueryDataResult <T> GetQueryDataResult <T>(Exception ex) { switch (ExceptionHandling) { case DataCacheExceptionHandling.Break: LogManager.LogWarning <DataCacheBehavior>($"Break query database"); return(QueryDataResult <T> .Break(ex.Message, ex)); case DataCacheExceptionHandling.ThrowException: LogManager.LogError <DataCacheBehavior>(ex, ex?.Message ?? string.Empty); throw ex; default: LogManager.LogWarning <DataCacheBehavior>($"Continue query database"); return(QueryDataResult <T> .Default(exception : ex)); } }
public QueryDataResponse(QueryDataResult result) { this.ToData(result); }