public IActionResult ReturnOrder(string orderGuid) { var order = _orderService.GetByGuid(orderGuid); if (order == null || order.UserId != CurrentUser.Id) { return(NotFound()); } if (!CanReturnOrder(order, out var returnableOrderItems, out var lastReturnDate)) { return(R.Fail.With("error", T("The order is not eligible for returns")).Result); } var models = returnableOrderItems.Select(x => { var returnItemModel = new ReturnItemModel() { OrderItem = _orderModelFactory.Create(x), MinimumQuantityToReturn = x.Product.MinimumPurchaseQuantity }; if (returnItemModel.MinimumQuantityToReturn == 0) { returnItemModel.MinimumQuantityToReturn = 1; } return(returnItemModel); }).ToList(); order.OrderItems = null; var orderModel = _orderModelFactory.Create(order); //get the actions and reasons var customLabels = _customLabelService.Get( new List <string>() { ReturnActionLabel, ReturnReasonLabel }, out _).ToList(); var actions = customLabels.Where(x => x.Type == ReturnActionLabel).ToList(); var reasons = customLabels.Where(x => x.Type == ReturnReasonLabel).ToList(); var reasonsAsSelectList = SelectListHelper.GetSelectItemList(reasons, x => x.Id, x => x.Text); var actionsAsSelectList = SelectListHelper.GetSelectItemList(actions, x => x.Id, x => x.Text); //set breadcrumb nodes SetBreadcrumbToRoute("Account", RouteNames.AccountProfile); SetBreadcrumbToRoute("Orders", RouteNames.AccountOrders); SetBreadcrumbToRoute(order.OrderNumber, RouteNames.SingleOrder, new { orderGuid }, localize: false); SetBreadcrumbToRoute("Return Request", RouteNames.ReturnOrder); return(R.Success.With("returnItems", models).With("availableReasons", reasonsAsSelectList) .With("availableActions", actionsAsSelectList).With("order", orderModel) .With("lastReturnDate", lastReturnDate).Result); }
public IActionResult CustomLabelSuggestions(string labelType, string q = null) { if (labelType.IsNullEmptyOrWhiteSpace()) { return(R.Fail.Result); } q = q ?? ""; var attributes = _customLabelService.Get(x => x.Type == labelType && x.Text.StartsWith(q)); var model = new List <AutocompleteModel>(); foreach (var c in attributes) { model.Add(new AutocompleteModel() { Id = c.Id, Text = c.Text }); } return(R.Success.With("suggestions", model.OrderBy(x => x.Text)).Result); }