Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public void DeleteUser(User user)
{
Contracts.Require(user.Status != UserStatus.Deleted);
user.MarkAsDeleted();
}
Organization org = _organizationRepository.GetById(model.OrganizationId);
if (orgOrNothing == null)
return Error("No organization found for Id = " + model.OrganizationId);
Верно ли, что результат невыполнения контракта — всегда исключение, а при валидации ситуация обрабатывается внутри метода?
Если внутри GetById проверить OrganizationId > 0, это будет контракт или валидация?
public class Organization : Entity
{
public void ProvisionUser(User user, Subscription subscription)
{
Contracts.Require(UsersInternal.Contains(user));
Contracts.Require(SubscriptionsInternal.Contains(subscription));
Contracts.Require(subscription.SeatsRemaining > 0);
Contracts.Require(subscription.IsProvisionable);
Contracts.Require(!user.IsProvisionedTo(subscription));
subscription.AddSeat(user);
user.AddSeat(subscription);
}
}
Чем технически различаются контракты и валидация?
Code contracts vs валидация входящих данных