internal virtual ActionResult Cancel()
        {
            // If Sale allows us to cancel, we take care of that here
            // -- This check could also go into the Open state

            var result = Sale.CancelInternal();

            if (result.IsSuccess)
            {
                Sale.TransitionTo(new CancelledState(Sale));
            }

            return(result);
        }