Вот моя проблема,
Моя проблема на самом деле не в PowerShell, а в том, как я должен использовать его для реализации постоянства.Я часто получаю случаи, когда есть более 4 команд для выполнения логики или применения постоянства.
Например:
При настройке зоны DNS я получаю нормальный New / Get / Set/ Remove-DnsZone и Suspend / Unsuspend-DnsZone.Мои товарищи по команде в настоящее время обрабатывают это так, что они создают в хранилище дополнительный метод для обработки дополнительных команд.
Мне кажется, что вместо этого поведение должно быть на объекте, и что Suspend / Unsuspend-DnsZone долженвызываться при выполнении Create или Update в репо.
Что вы думаете?
РЕДАКТИРОВАТЬ В соответствии с просьбой я напишу некоторый код, чтобы продемонстрировать, о чем я говорю.
Это поддельный пример с почти аналогичной реализацией нашей оболочки Powershell.Это метод в репозитории, который делают мои товарищи по команде:
public void Suspend(DnsZone zone)
{
_powerShell.Execute("Suspend-Zone", new Dictionary<string, object>{{"Name", zone.Name}});
}
Так что где-то в вашей логике, чтобы приостановить зону, вы должны позвонить
var myZone = new DnsZone{ Name= "xyz"};
_zones.Suspend(myZone);
Вместо этого я склоненчто DnsZone должен иметь свойство или метод.Так что логика не в репо, а в самом объекте.Даже при том, что репо должно преобразовать это в вызов Зоны приостановки.
var myZone = _zones.FindByName("nyname");
myZone.Suspend();
_zones.Save(myZone);
hth