예제 #1
0
 public IHttpActionResult SetDeliveryProvider(CheckoutViewModel model)
 {
     try
     {
         _checkoutService.ChangeDeliveryMethod(model.SelectedDeliveryMethod.Value);
         if (model.PaymentWidget != null &&
             model.PaymentWidget.DisplayDeliveryMethods)
         {
             // when we change the delivery method, we need to reload the payment widget in order to re-calculate the total order
             model.PaymentWidget = _paymentMethodViewModelBuilder.BuildWidget(model.SelectedPaymentMethod);
         }
         return(Ok(model));
     }
     catch (Exception ex)
     {
         this.Log().Error("Error when changing delivery provider", ex);
         ModelState.AddModelError("general", "checkout.setdeliveryerror".AsWebSiteString());
         return(BadRequest(ModelState));
     }
 }