Сначала мое требование было
«Мы можем создать счет, положив на него деньги, когда мы покупаем товар, мы уменьшаем счет»
Итак, мой AccountController выглядел как
class AccountController
{
private IAccountDataSource _accountDataSource;
Create(Account anAccount)
{
_accountDataSource.Insert(anAccount);
Render(anAccount.Id);
}
}
Но тогда возникает новое требование
«У некоторых людей может быть бесплатная учетная запись (все элементы будут бесплатными), но если мы создадим реальную учетную запись, мы удалим бесплатную учетную запись»
Итак, мой контроллер. Создать стал
Create(Account anAccount)
{
_accountDataSource.Insert(anAccount);
RemoveFreeAccount(anAccount.Customer);
Render(anAccount.Id);
}
RemoveFreeAccount(Customer aCustomer)
{
_accountDataSource.Remove(new AccountFilter() { Type='Free', CustomerId=aCustomer.Id });
}
Но для меня такое чувство, что я должен поместить это RemoveFreeAccount
в другое место, но я не знаю, где, потому что IAccountDataSource
просто для обработки хранения данных.