code/KustoCopyConsole/JobParameter/ActivityParameterization.cs (37 lines of code) (raw):

using KustoCopyConsole.Entity; using System.Collections.Immutable; namespace KustoCopyConsole.JobParameter { public class ActivityParameterization { public string ActivityName { get; set; } = string.Empty; public TableParameterization Source { get; set; } = new(); public TableParameterization Destination { get; set; } = new(); public string? KqlQuery { get; set; } = string.Empty; public TableOption TableOption { get; set; } = new(); public void Validate() { if (string.IsNullOrWhiteSpace(ActivityName)) { throw new CopyException($"{nameof(ActivityName)} is required", false); } Source.Validate(); if (string.IsNullOrWhiteSpace(Source.TableName)) { throw new CopyException($"{nameof(Source.TableName)} is required", false); } Destination.Validate(); TableOption.Validate(); } public TableIdentity GetEffectiveDestinationTableIdentity() { var destinationTableIdentity = Destination.GetTableIdentity(); return !string.IsNullOrWhiteSpace(Destination.TableName) ? destinationTableIdentity : new TableIdentity( destinationTableIdentity.ClusterUri, destinationTableIdentity.DatabaseName, Source.GetTableIdentity().TableName); } } }