Example #1
0
        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()));
                }
Example #4
0
        /// <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);
 }