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); } }
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); }
/// <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); }
/// <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); }
public Task <MarketDataEntity.Output> UpdateMarketDataAsync(MarketDataEntity.Input metadata, CancellationToken ctk = default) { throw new NotImplementedException(); }