public void DeleteDataFeedValidatesArguments() { MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(); Assert.That(() => adminClient.DeleteDataFeedAsync(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => adminClient.DeleteDataFeedAsync(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => adminClient.DeleteDataFeedAsync("dataFeedId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); Assert.That(() => adminClient.DeleteDataFeed(null), Throws.InstanceOf <ArgumentNullException>()); Assert.That(() => adminClient.DeleteDataFeed(""), Throws.InstanceOf <ArgumentException>()); Assert.That(() => adminClient.DeleteDataFeed("dataFeedId"), Throws.InstanceOf <ArgumentException>().With.InnerException.TypeOf(typeof(FormatException))); }
public async Task CreateAndDeleteDataFeedAsync() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential); string sqlServerConnectionString = SqlServerConnectionString; string sqlServerQuery = SqlServerQuery; #region Snippet:CreateDataFeedAsync //@@ string sqlServerConnectionString = "<connectionString>"; //@@ string sqlServerQuery = "<query>"; var dataFeedName = "Sample data feed"; var dataFeedSource = new SqlServerDataFeedSource(sqlServerConnectionString, sqlServerQuery); var dataFeedGranularity = new DataFeedGranularity(DataFeedGranularityType.Daily); var dataFeedMetrics = new List <DataFeedMetric>() { new DataFeedMetric("cost"), new DataFeedMetric("revenue") }; var dataFeedDimensions = new List <DataFeedDimension>() { new DataFeedDimension("category"), new DataFeedDimension("city") }; var dataFeedSchema = new DataFeedSchema(dataFeedMetrics) { DimensionColumns = dataFeedDimensions }; var ingestionStartTime = DateTimeOffset.Parse("2020-01-01T00:00:00Z"); var dataFeedIngestionSettings = new DataFeedIngestionSettings(ingestionStartTime); var dataFeed = new DataFeed(dataFeedName, dataFeedSource, dataFeedGranularity, dataFeedSchema, dataFeedIngestionSettings); Response <string> response = await adminClient.CreateDataFeedAsync(dataFeed); string dataFeedId = response.Value; Console.WriteLine($"Data feed ID: {dataFeedId}"); #endregion // Only the ID of the data feed is known at this point. You can perform another service // call to GetDataFeedAsync or GetDataFeed to get more information, such as status, created // time, the list of administrators, or the metric IDs. // Delete the created data feed to clean up the Metrics Advisor resource. Do not perform this // step if you intend to keep using the data feed. await adminClient.DeleteDataFeedAsync(dataFeedId); }
public void DeleteDataFeedRespectsTheCancellationToken() { MetricsAdvisorAdministrationClient adminClient = GetMetricsAdvisorAdministrationClient(); using var cancellationSource = new CancellationTokenSource(); cancellationSource.Cancel(); Assert.That(() => adminClient.DeleteDataFeedAsync(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); Assert.That(() => adminClient.DeleteDataFeed(FakeGuid, cancellationSource.Token), Throws.InstanceOf <OperationCanceledException>()); }
public async Task CreateAndDeleteDataFeedAsync() { string endpoint = MetricsAdvisorUri; string subscriptionKey = MetricsAdvisorSubscriptionKey; string apiKey = MetricsAdvisorApiKey; var credential = new MetricsAdvisorKeyCredential(subscriptionKey, apiKey); var adminClient = new MetricsAdvisorAdministrationClient(new Uri(endpoint), credential); #region Snippet:CreateDataFeedAsync #if SNIPPET string sqlServerConnectionString = "<connectionString>"; string sqlServerQuery = "<query>"; #else string sqlServerConnectionString = SqlServerConnectionString; string sqlServerQuery = SqlServerQuery; #endif var dataFeed = new DataFeed(); #if SNIPPET dataFeed.Name = "<dataFeedName>"; #else dataFeed.Name = GetUniqueName(); #endif dataFeed.DataSource = new SqlServerDataFeedSource(sqlServerConnectionString, sqlServerQuery); dataFeed.Granularity = new DataFeedGranularity(DataFeedGranularityType.Daily); dataFeed.Schema = new DataFeedSchema(); dataFeed.Schema.MetricColumns.Add(new DataFeedMetric("cost")); dataFeed.Schema.MetricColumns.Add(new DataFeedMetric("revenue")); dataFeed.Schema.DimensionColumns.Add(new DataFeedDimension("category")); dataFeed.Schema.DimensionColumns.Add(new DataFeedDimension("city")); dataFeed.IngestionSettings = new DataFeedIngestionSettings(DateTimeOffset.Parse("2020-01-01T00:00:00Z")); Response <DataFeed> response = await adminClient.CreateDataFeedAsync(dataFeed); DataFeed createdDataFeed = response.Value; Console.WriteLine($"Data feed ID: {createdDataFeed.Id}"); Console.WriteLine($"Data feed status: {createdDataFeed.Status.Value}"); Console.WriteLine($"Data feed created time: {createdDataFeed.CreatedTime.Value}"); Console.WriteLine($"Data feed administrators:"); foreach (string admin in createdDataFeed.AdministratorsEmails) { Console.WriteLine($" - {admin}"); } Console.WriteLine($"Metric IDs:"); foreach (DataFeedMetric metric in createdDataFeed.Schema.MetricColumns) { Console.WriteLine($" - {metric.Name}: {metric.Id}"); } Console.WriteLine($"Dimension columns:"); foreach (DataFeedDimension dimension in createdDataFeed.Schema.DimensionColumns) { Console.WriteLine($" - {dimension.Name}"); } #endregion // Delete the created data feed to clean up the Metrics Advisor resource. Do not perform this // step if you intend to keep using the data feed. await adminClient.DeleteDataFeedAsync(createdDataFeed.Id); }
/// <summary> /// Deletes the data feed this instance is associated with. /// </summary> public async ValueTask DisposeAsync() => await _adminClient.DeleteDataFeedAsync(Id);