/// <summary> /// Converts a data source specific <see cref="DataFeed"/> into its equivalent data source specific <see cref="DataFeedDetailPatch"/>. /// </summary> internal DataFeedDetailPatch GetPatchModel() { DataFeedDetailPatch patch = DataSource?.InstantiateDataFeedDetailPatch() ?? new DataFeedDetailPatch(); patch.DataFeedName = Name; patch.Status = Status; if (Schema != null) { patch.TimestampColumn = Schema.TimestampColumn; } if (IngestionSettings != null) { patch.DataStartFrom = ClientCommon.NormalizeDateTimeOffset(IngestionSettings.IngestionStartsOn); patch.MaxConcurrency = IngestionSettings.DataSourceRequestConcurrency; patch.MinRetryIntervalInSeconds = (long?)IngestionSettings.IngestionRetryDelay?.TotalSeconds; patch.StartOffsetInSeconds = (long?)IngestionSettings.IngestionStartOffset?.TotalSeconds; patch.StopRetryAfterInSeconds = (long?)IngestionSettings.StopRetryAfter?.TotalSeconds; } patch.DataFeedDescription = Description; patch.ActionLinkTemplate = ActionLinkTemplate; patch.ViewMode = AccessMode; if (RollupSettings != null) { patch.AllUpIdentification = RollupSettings.RollupIdentificationValue; patch.NeedRollup = RollupSettings.RollupType; patch.RollUpMethod = RollupSettings.AutoRollupMethod; patch.RollUpColumns = RollupSettings.AutoRollupGroupByColumnNames; } if (MissingDataPointFillSettings != null) { patch.FillMissingPointType = MissingDataPointFillSettings.FillType; patch.FillMissingPointValue = MissingDataPointFillSettings.CustomFillValue; } patch.Admins = Administrators; patch.Viewers = Viewers; SetAuthenticationProperties(patch, DataSource); return(patch); }
/// <summary> Initializes a new instance of a data source specific DataFeedDetail. </summary> /// <param name="dataFeedName"> data feed name. </param> /// <param name="dataFeedGranularity"></param> /// <param name="dataFeedSchema"></param> /// <param name="dataFeedIngestionSettings"></param> /// <param name="dataFeedOptions"></param> internal void SetDetail(string dataFeedName, DataFeedGranularity dataFeedGranularity, DataFeedSchema dataFeedSchema, DataFeedIngestionSettings dataFeedIngestionSettings, DataFeedOptions dataFeedOptions) { dataFeedIngestionSettings.IngestionStartTime = ClientCommon.NormalizeDateTimeOffset(dataFeedIngestionSettings.IngestionStartTime); DataFeedDetail = Parameter switch { AzureApplicationInsightsParameter p => new AzureApplicationInsightsDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), AzureBlobParameter p => new AzureBlobDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), AzureCosmosDBParameter p => new AzureCosmosDBDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), AzureDataLakeStorageGen2Parameter p => new AzureDataLakeStorageGen2DataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), AzureTableParameter p => new AzureTableDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), ElasticsearchParameter p => new ElasticsearchDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), HttpRequestParameter p => new HttpRequestDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), InfluxDBParameter p => new InfluxDBDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), SqlSourceParameter p when DataFeedSourceType == DataFeedSourceType.AzureDataExplorer => new AzureDataExplorerDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), SqlSourceParameter p when DataFeedSourceType == DataFeedSourceType.MySql => new MySqlDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), SqlSourceParameter p when DataFeedSourceType == DataFeedSourceType.PostgreSql => new PostgreSqlDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), SqlSourceParameter p when DataFeedSourceType == DataFeedSourceType.SqlServer => new SQLServerDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), MongoDBParameter p => new MongoDBDataFeed(dataFeedName, dataFeedGranularity.GranularityType, dataFeedSchema.MetricColumns, dataFeedIngestionSettings.IngestionStartTime, p), _ => throw new InvalidOperationException("Invalid DataFeedDetail type") }; DataFeedDetail.GranularityAmount = dataFeedGranularity.CustomGranularityValue; foreach (var column in dataFeedSchema.DimensionColumns) { DataFeedDetail.Dimension.Add(column); } DataFeedDetail.TimestampColumn = dataFeedSchema.TimestampColumn; DataFeedDetail.MaxConcurrency = dataFeedIngestionSettings.DataSourceRequestConcurrency; DataFeedDetail.MinRetryIntervalInSeconds = (long?)dataFeedIngestionSettings.IngestionRetryDelay?.TotalSeconds; DataFeedDetail.StartOffsetInSeconds = (long?)dataFeedIngestionSettings.IngestionStartOffset?.TotalSeconds; DataFeedDetail.StopRetryAfterInSeconds = (long?)dataFeedIngestionSettings.StopRetryAfter?.TotalSeconds; if (dataFeedOptions != null) { foreach (var admin in dataFeedOptions.Administrators) { DataFeedDetail.Admins.Add(admin); } foreach (var viewer in dataFeedOptions.Viewers) { DataFeedDetail.Viewers.Add(viewer); } DataFeedDetail.DataFeedDescription = dataFeedOptions.Description; DataFeedDetail.ViewMode = dataFeedOptions.AccessMode; if (dataFeedOptions.RollupSettings != null) { foreach (var columnName in dataFeedOptions.RollupSettings.AutoRollupGroupByColumnNames) { DataFeedDetail.RollUpColumns.Add(columnName); } DataFeedDetail.RollUpMethod = dataFeedOptions.RollupSettings.RollupMethod; DataFeedDetail.NeedRollup = dataFeedOptions.RollupSettings.RollupType; } if (dataFeedOptions.MissingDataPointFillSettings != null) { DataFeedDetail.FillMissingPointType = dataFeedOptions.MissingDataPointFillSettings.FillType; DataFeedDetail.FillMissingPointValue = dataFeedOptions.MissingDataPointFillSettings.CustomFillValue; } DataFeedDetail.ActionLinkTemplate = dataFeedOptions.ActionLinkTemplate; } } }
/// <summary> /// Converts a data source specific <see cref="DataFeed"/> into its equivalent data source specific <see cref="DataFeedDetailPatch"/>. /// </summary> internal DataFeedDetailPatch GetPatchModel() { DataFeedDetailPatch patch = DataSource?.InstantiateDataFeedDetailPatch() ?? new DataFeedDetailPatch(); patch.DataFeedName = Name; patch.Status = Status.HasValue ? new DataFeedDetailPatchStatus(Status.ToString()) : default(DataFeedDetailPatchStatus?); if (Schema != null) { patch.TimestampColumn = Schema.TimestampColumn; } if (IngestionSettings != null) { patch.DataStartFrom = IngestionSettings.IngestionStartTime.HasValue ? ClientCommon.NormalizeDateTimeOffset(IngestionSettings.IngestionStartTime.Value) : null; patch.MaxConcurrency = IngestionSettings.DataSourceRequestConcurrency; patch.MinRetryIntervalInSeconds = (long?)IngestionSettings.IngestionRetryDelay?.TotalSeconds; patch.StartOffsetInSeconds = (long?)IngestionSettings.IngestionStartOffset?.TotalSeconds; patch.StopRetryAfterInSeconds = (long?)IngestionSettings.StopRetryAfter?.TotalSeconds; } patch.DataFeedDescription = Description; patch.ActionLinkTemplate = ActionLinkTemplate; patch.ViewMode = AccessMode.HasValue == true ? new DataFeedDetailPatchViewMode(AccessMode.ToString()) : default(DataFeedDetailPatchViewMode?); if (RollupSettings != null) { patch.AllUpIdentification = RollupSettings.AlreadyRollupIdentificationValue; patch.NeedRollup = RollupSettings.RollupType.HasValue ? new DataFeedDetailPatchNeedRollup(RollupSettings.RollupType.ToString()) : default(DataFeedDetailPatchNeedRollup?); patch.RollUpMethod = RollupSettings.RollupMethod.HasValue ? new DataFeedDetailPatchRollUpMethod(RollupSettings.RollupMethod.ToString()) : default(DataFeedDetailPatchRollUpMethod?); patch.RollUpColumns = RollupSettings.AutoRollupGroupByColumnNames; } if (MissingDataPointFillSettings != null) { patch.FillMissingPointType = MissingDataPointFillSettings.FillType.HasValue ? new DataFeedDetailPatchFillMissingPointType(MissingDataPointFillSettings.FillType.ToString()) : default(DataFeedDetailPatchFillMissingPointType?); patch.FillMissingPointValue = MissingDataPointFillSettings.CustomFillValue; } patch.Admins = Administrators; patch.Viewers = Viewers; return(patch); }