Prevent negative item orders (#392)
* Pulling changes over from previous branch * Adding exception and guard clause
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace Microsoft.eShopWeb.ApplicationCore.Exceptions
|
||||
{
|
||||
public class EmptyBasketOnCheckoutException : Exception
|
||||
{
|
||||
public EmptyBasketOnCheckoutException()
|
||||
: base($"Basket cannot have 0 items on checkout")
|
||||
{
|
||||
}
|
||||
|
||||
protected EmptyBasketOnCheckoutException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context)
|
||||
{
|
||||
}
|
||||
|
||||
public EmptyBasketOnCheckoutException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
|
||||
public EmptyBasketOnCheckoutException(string message, Exception innerException) : base(message, innerException)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
using Microsoft.eShopWeb.ApplicationCore.Exceptions;
|
||||
using Microsoft.eShopWeb.ApplicationCore.Entities.BasketAggregate;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Ardalis.GuardClauses
|
||||
{
|
||||
@@ -10,5 +12,11 @@ namespace Ardalis.GuardClauses
|
||||
if (basket == null)
|
||||
throw new BasketNotFoundException(basketId);
|
||||
}
|
||||
|
||||
public static void EmptyBasketOnCheckout(this IGuardClause guardClause, IReadOnlyCollection<BasketItem> basketItems)
|
||||
{
|
||||
if (!basketItems.Any())
|
||||
throw new EmptyBasketOnCheckoutException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user