/// <summary>
        /// This method coverts chart points to data points
        /// </summary>
        /// <param name="points"></param>
        /// <returns></returns>
        public static DataPoint[] ToDataPoints(this OHLCEntry[] entries, DataPointType type)
        {
            DataPoint[] ADPoints = new DataPoint[entries.Length];

            Parallel.For(0, entries.Length, i =>
            {
                if (type == DataPointType.Candle)
                {
                    ADPoints[i] = OHLCEx.ToCandle(entries[i]);
                }
                else if (type == DataPointType.HiLo)
                {
                    ADPoints[i] = OHLCEx.ToHihgLow(entries[i]);
                }
                else if (type == DataPointType.OpenClose)
                {
                    ADPoints[i] = OHLCEx.ToOpenClose(entries[i]);
                }
                else
                {
                    throw new ArgumentException("Unknown data point type !");
                }
            });

            return(ADPoints);
        }
        /// <summary>
        /// This method coverts chart points to data points
        /// </summary>
        /// <param name="points"></param>
        /// <returns></returns>
        public static DataPoint[] ToDataPoints(ChartPoint[] points, DataPointType type)
        {
            DataPoint[] ADPoints = new DataPoint[points.Length];

            Parallel.For(0, points.Length, i =>
            {
                if (type == DataPointType.Candle)
                {
                    ADPoints[i] = ChartPointInfo.ToCandle(points[i]);
                }
                else if (type == DataPointType.AskBid)
                {
                    ADPoints[i] = ChartPointInfo.ToAskBid(points[i]);
                }
                else if (type == DataPointType.HiLo)
                {
                    ADPoints[i] = ChartPointInfo.ToHihgLow(points[i]);
                }
                else if (type == DataPointType.OpenClose)
                {
                    ADPoints[i] = ChartPointInfo.ToOpenClose(points[i]);
                }
                else if (type == DataPointType.AskBidErrorBar)
                {
                    ADPoints[i] = ChartPointInfo.ToAskBidErrorBar(points[i]);
                }
                else if (type == DataPointType.AskLine)
                {
                    ADPoints[i] = ChartPointInfo.ToAskLine(points[i]);
                }
                else
                {
                    throw new ArgumentException("ChartPointInfo ToDataPoints Unknown data point type !");
                }
            });

            return(ADPoints);
        }
示例#3
0
        public async Task OmfIngressClientLibrariesTest()
        {
            // Setting things up
            Program.Setup();

            // Initializing Sds Service
            ISdsMetadataService sdsMetadataService = SdsService.GetMetadataService(new Uri(Program.Address), Program.TenantId, Program.NamespaceId,
                                                                                   new AuthenticationHandler(new Uri(Program.Address), Program.ClientId, Program.ClientSecret));
            ISdsDataService sdsDataService = SdsService.GetDataService(new Uri(Program.Address), Program.TenantId, Program.NamespaceId,
                                                                       new AuthenticationHandler(new Uri(Program.Address), Program.ClientId, Program.ClientSecret));

            OmfConnection omfConnection = null;

            try
            {
                // Create the Connection, send OMF
                omfConnection = await Program.CreateOmfConnectionAsync().ConfigureAwait(false);

                await Program.SendTypeContainerAndDataAsync().ConfigureAwait(false);

                // Check if Data was successfully stored in Sds
                DataPointType firstValueForStream = null;
                await PollUntilTrueAsync(async() =>
                {
                    try
                    {
                        firstValueForStream = await sdsDataService.GetFirstValueAsync <DataPointType>(Program.StreamId).ConfigureAwait(false);
                        return(firstValueForStream != null);
                    }
                    catch
                    {
                        return(false);
                    }
                }, TimeSpan.FromSeconds(180), TimeSpan.FromSeconds(1)).ConfigureAwait(false);

                Assert.NotNull(firstValueForStream);
            }
            finally
            {
                // Delete the Type and Stream
                await Program.DeleteTypeAndContainerAsync().ConfigureAwait(false);

                // Verify the Type was successfully deleted in Sds
                bool deleted = await PollUntilTrueAsync(async() =>
                {
                    try
                    {
                        SdsType sdsType = await sdsMetadataService.GetTypeAsync("DataPointType").ConfigureAwait(false);
                        return(false);
                    }
                    catch (Exception ex) when(ex is SdsHttpClientException sdsHttpClientException &&
                                              sdsHttpClientException.StatusCode == HttpStatusCode.NotFound)
                    {
                        return(true);
                    }
                    catch
                    {
                        return(false);
                    }
                }, TimeSpan.FromSeconds(180), TimeSpan.FromSeconds(1)).ConfigureAwait(false);

                Assert.True(deleted);

                await Program.DeleteOmfConnectionAsync(omfConnection).ConfigureAwait(false);
            }
        }