Пример #1
0
        public void MarketData_RegisterMarketDataAsync()
        {
            using (var httpTest = new HttpTest())
            {
                var mds = new MarketDataService(_cfg);

                var marketDataEntity = new MarketDataEntity.Input()
                {
                    ProviderName        = "Test",
                    MarketDataName      = "TestName",
                    OriginalGranularity = Granularity.Day,
                    OriginalTimezone    = "CET",
                    AggregationRule     = AggregationRule.Undefined,
                    Type = MarketDataType.VersionedTimeSerie
                };

                var mdq = mds.RegisterMarketDataAsync(marketDataEntity).ConfigureAwait(true).GetAwaiter().GetResult();

                httpTest.ShouldHaveCalledPath($"{_cfg.BaseAddress}v2.1/marketdata/entity")
                .WithVerb(HttpMethod.Post)
                .WithContentType("application/x.msgpacklz4")
                .WithHeadersTest()
                .Times(1);
            }
        }
Пример #2
0
        public void MarketData_RegisterIsFailingMarketDataAsync()
        {
            using (var httpTest = new HttpTest())
            {
                var mds = new MarketDataService(_cfg);

                var marketDataEntity = new MarketDataEntity.Input()
                {
                    ProviderName        = "Test",
                    MarketDataName      = "TestName",
                    OriginalGranularity = Granularity.Day,
                    OriginalTimezone    = "CET",
                    AggregationRule     = AggregationRule.Undefined,
                    Type = MarketDataType.VersionedTimeSerie
                };

                httpTest
                .RespondWith(_realProblemDetailsJson,
                             status: 400,
                             headers: new { content_type = "application/problem+json; charset=utf-8" });

                Assert.Throws <ArtesianSdkValidationException>(
                    () => {
                    var mdq = mds.RegisterMarketDataAsync(marketDataEntity).ConfigureAwait(true).GetAwaiter().GetResult();
                }
                    );
            }
        }
        /// <summary>
        /// Save the given MarketData entity
        /// </summary>
        /// <param name="metadata">MarketDataEntity</param>
        /// <param name="ctk">CancellationToken</param>
        /// <returns>MarketData Entity Output</returns>
        public Task<MarketDataEntity.Output> UpdateMarketDataAsync(MarketDataEntity.Input metadata, CancellationToken ctk = default)
        {
            metadata.ValidateUpdate();

            var url = "/marketdata/entity/".AppendPathSegment(metadata.MarketDataId);

            return _client.Exec<MarketDataEntity.Output, MarketDataEntity.Input>(HttpMethod.Put, url, metadata, ctk: ctk);
        }
        /// <summary>
        /// Register the given MarketData entity
        /// </summary>
        /// <param name="metadata">MarketDataEntity</param>
        /// <param name="ctk">CancellationToken</param>
        /// <returns>MarketData Entity Output</returns>
        public Task<MarketDataEntity.Output> RegisterMarketDataAsync(MarketDataEntity.Input metadata, CancellationToken ctk = default)
        {
            metadata.ValidateRegister();

            var url = "/marketdata/entity/";

            return _client.Exec<MarketDataEntity.Output, MarketDataEntity.Input>(HttpMethod.Post, url, metadata, ctk: ctk);
        }
Пример #5
0
        /// <summary>
        /// MarketData Update
        /// </summary>
        /// <remarks>
        /// Update the MarketData
        /// </remarks>
        /// <returns></returns>
        public async Task Update(CancellationToken ctk = default)
        {
            if (_entity == null)
            {
                throw new ArtesianFactoryException("Market Data is not yet registered");
            }

            var marketDataEntityInput = new MarketDataEntity.Input(_entity);

            _entity = await _marketDataService.UpdateMarketDataAsync(marketDataEntityInput, ctk);

            Metadata = new MarketDataMetadata(_entity);
        }
Пример #6
0
        /// <summary>
        /// MarketData Register
        /// </summary>
        /// <remarks>
        /// Register a MarketData
        /// </remarks>
        /// <param name="metadata">The entity of metadata</param>
        /// <param name="ctk">CancellationToken</param>
        /// <returns></returns>
        public async Task Register(MarketDataEntity.Input metadata, CancellationToken ctk = default)
        {
            EnsureArg.IsNotNull(metadata, nameof(metadata));
            EnsureArg.IsTrue(metadata.ProviderName == null || metadata.ProviderName == this.Identifier.Provider);
            EnsureArg.IsTrue(metadata.ProviderName == null || metadata.ProviderName == this.Identifier.Provider);
            EnsureArg.IsTrue(metadata.MarketDataName == null || metadata.MarketDataName == this.Identifier.Name);
            EnsureArg.IsNotNullOrWhiteSpace(metadata.OriginalTimezone);

            metadata.ProviderName   = this.Identifier.Provider;
            metadata.MarketDataName = this.Identifier.Name;

            if (_entity != null)
            {
                throw new ArtesianFactoryException("Market Data is already registered with ID {0}", _entity.MarketDataId);
            }

            _entity = await _marketDataService.RegisterMarketDataAsync(metadata, ctk);

            Metadata = new MarketDataMetadata(_entity);
        }
Пример #7
0
 public Task <MarketDataEntity.Output> UpdateMarketDataAsync(MarketDataEntity.Input metadata, CancellationToken ctk = default)
 {
     throw new NotImplementedException();
 }