code/KustoCopyConsole/Entity/RowItems/ActivityRowItem.cs (31 lines of code) (raw):
using KustoCopyConsole.Entity.State;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KustoCopyConsole.Entity.RowItems
{
internal class ActivityRowItem : RowItemBase
{
public ActivityState State { get; set; }
public string ActivityName { get; set; } = string.Empty;
public TableIdentity SourceTable { get; set; } = TableIdentity.Empty;
public TableIdentity DestinationTable { get; set; } = TableIdentity.Empty;
public override void Validate()
{
if (string.IsNullOrWhiteSpace(ActivityName))
{
throw new InvalidDataException($"{nameof(ActivityName)} must have a value");
}
SourceTable.Validate();
DestinationTable.Validate();
}
public ActivityRowItem ChangeState(ActivityState newState)
{
var clone = (ActivityRowItem)Clone();
clone.State = newState;
return clone;
}
}
}