Skip to content

Instantly share code, notes, and snippets.

@mattbrailsford
Created May 19, 2020 08:12
Show Gist options
  • Save mattbrailsford/3491ddd3ec4467831340e89f2a2871d7 to your computer and use it in GitHub Desktop.
Save mattbrailsford/3491ddd3ec4467831340e89f2a2871d7 to your computer and use it in GitHub Desktop.
var bundleId = "MyBundle";
// Create a bundle
order.AddProduct("product-ref", 1, bundleId);
// Add a products to a bundle
order.AddProductToBundle(bundleId, "sub-product-ref1", 1);
order.AddProductToBundle(bundleId, "sub-product-ref2", 1);
@stefankip
Copy link

stefankip commented May 19, 2020

{
	"Message":"An error has occurred.",
	"ExceptionMessage":"Value cannot be null. Parameter name: taxRate",
	"ExceptionType":"System.ArgumentNullException",
	"StackTrace":"
   at Vendr.Core.AssertionExtensions.MustNotBeNull[T](T param, String paramName)
   at Vendr.Core.Models.TaxRate.op_Multiply(Decimal value, TaxRate taxRate)
   at Vendr.Core.Models.Price.Calculate(Decimal value, TaxRate taxRate, Guid currencyId, Boolean valueIncludesTax)
   at Vendr.Core.Calculators.OrderLineCalculator.CalculateOrderLineUnitPrice(OrderReadOnly order, OrderLineReadOnly orderLine, Guid currencyId, TaxRate taxRate)
   at Vendr.Core.Pipelines.OrderLine.Tasks.CalculateOrderLineUnitPriceWithoutDiscountsTask.Execute(OrderLineCalculationPipelineArgs args)
   at Vendr.Core.Pipelines.PipelineTaskWithTypedArgsBase`2.Execute(PipelineArgs`1 args)
   at Vendr.Core.Pipelines.PipelineTaskBase`2.Execute(PipelineArgs input)
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.Vendr.Core.Pipelines.IPipelineInvoker.Invoke(IEnumerable`1 pipelineTasks, PipelineArgs args)
   at Vendr.Core.Pipelines.Pipeline.Invoke[TPipeline,TArgs,TEntity](Func`2 argsFactory)
   at Vendr.Core.Pipelines.OrderLine.Tasks.SubOrderLinesCalculationPipelineBase`1.Execute(OrderLineCalculationPipelineArgs args)
   at Vendr.Core.Pipelines.PipelineTaskWithTypedArgsBase`2.Execute(PipelineArgs`1 args)
   at Vendr.Core.Pipelines.PipelineTaskBase`2.Execute(PipelineArgs input)
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.Vendr.Core.Pipelines.IPipelineInvoker.Invoke(IEnumerable`1 pipelineTasks, PipelineArgs args)
   at Vendr.Core.Pipelines.Pipeline.Invoke[TPipeline,TArgs,TEntity](Func`2 argsFactory)
   at Vendr.Core.Pipelines.Order.Tasks.OrderLinesCalculationPipelineTaskBase`1.Execute(OrderCalculationPipelineArgs args)
   at Vendr.Core.Pipelines.PipelineTaskWithTypedArgsBase`2.Execute(PipelineArgs`1 args)
   at Vendr.Core.Pipelines.PipelineTaskBase`2.Execute(PipelineArgs input)
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.Vendr.Core.Pipelines.IPipelineInvoker.Invoke(IEnumerable`1 pipelineTasks, PipelineArgs args)
   at Vendr.Core.Pipelines.Pipeline.Invoke[TPipeline,TArgs,TEntity](Func`2 argsFactory)
   at Vendr.Core.Pipelines.SubPipelineTaskBase`2.Execute(PipelineArgs`1 input)
   at Vendr.Core.Pipelines.PipelineTaskBase`2.Execute(PipelineArgs input)
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.<Vendr.Core.Pipelines.IPipelineInvoker.Invoke>g__next|2_0(PipelineArgs e, <>c__DisplayClass2_0& )
   at Vendr.Core.Pipelines.InProcPipelineInvoker.Vendr.Core.Pipelines.IPipelineInvoker.Invoke(IEnumerable`1 pipelineTasks, PipelineArgs args)
   at Vendr.Core.Pipelines.Pipeline.Invoke[TPipeline,TArgs,TEntity](Func`2 argsFactory)
   at Vendr.Core.Calculators.OrderCalculator.CalculateOrder(OrderReadOnly order)
   at Vendr.Core.Models.Order.Recalculate(Boolean force, IOrderCalculator orderCalculator)
   at Vendr.Core.Models.Order.Recalculate(IOrderCalculator orderCalculator)
   at Vendr.Core.OrderExtensions.Recalculate(Order order)
   at Vendr.Core.Services.OrderService.SaveOrder(Order entity)
   at Project.Core.Web.ApiControllers.PriceController.GetPrice(TrainingPriceRequest request) in C:\\Git\\Project\\src\\Core\\Web\\ApiControllers\\TrainingPriceController.cs:line 93
   at lambda_method(Closure , Object , Object[] )
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment