示例#1
0
        public IActionResult CancelOrder(string orderGuid)
        {
            var order = _orderService.GetByGuid(orderGuid);

            if (order == null || order.UserId != CurrentUser.Id)
            {
                return(NotFound());
            }
            if (!CanCancelOrder(order))
            {
                return(R.Fail.With("error", T("Unable to cancel the order")).Result);
            }

            var orderModel = _orderModelFactory.Create(order);

            //set breadcrumb nodes
            SetBreadcrumbToRoute("Account", RouteNames.AccountProfile);
            SetBreadcrumbToRoute("Orders", RouteNames.AccountOrders);
            SetBreadcrumbToRoute(order.OrderNumber, RouteNames.SingleOrder, new { orderGuid }, localize: false);
            SetBreadcrumbToRoute("Cancellation Request", RouteNames.CancelOrder);

            var cancellationReasons = _customLabelService.GetCustomLabels(CancellationReasonLabel, out _).ToList();
            var selectList          = SelectListHelper.GetSelectItemList(cancellationReasons, x => x.Id, x => x.Text);

            return(R.Success.With("availableReasons", selectList).With("order", orderModel).With("orderGuid", orderGuid).Result);
        }