0
syntaxe C# code est ci-dessousComment appliquer combiner technique avec si la condition
public void Cancel()
{
// If reservation already started throw exception
if (DateTime.Now > From)
{
throw new InvalidOperationException("It's too late to cancel.");
}
//for gold customer IsCanceled= false
if (IsGoldCustomer() && LessThan(24))
{
IsCanceled = false;
}
//for not gold customer IsCanceled= true
if (!IsGoldCustomer() &&LessThan(48))
{
IsCanceled = true;
}
}
private bool IsGoldCustomer()
{
return Customer.LoyaltyPoints > 100;
}
private bool LessThan(int maxHours)
{
return (From - DateTime.Now).TotalHours < maxHours;
}
Commentaire décrit Logiques d'affaires, veulent combiner si (IsGoldCustomer() & & LessThan (24)) et si (! IsGoldCustomer() & & LessThan (48)) condition. Y at-il une suggestion comment?
Modifié si les conditions ci-dessous, mais modification ne satisfont pas mes exigences.
//for gold customer IsCanceled= false
IsCanceled = !(IsGoldCustomer() && LessThan(24));
//for not gold customer IsCanceled= true
IsCanceled = !IsGoldCustomer() &&LessThan(48);
On dirait quelque chose qui devrait être en fonction refactorisé 'CanCancel' qui retourne une valeur booléenne. Une fonction 'Cancel' ne devrait probablement pas échouer dans des conditions non exceptionnelles. –