コード例 #1
0
        public IActionResult Suggestions(string q = null)
        {
            var categories = _categoryService.GetFullCategoryTree();
            var model      = new List <AutocompleteModel>();

            foreach (var c in categories)
            {
                model.Add(new AutocompleteModel()
                {
                    Id   = c.Id,
                    Text = _categoryAccountant.GetFullBreadcrumb(c)
                });
            }
            return(R.Success.With("suggestions", model.OrderBy(x => x.Text)).Result);
        }
コード例 #2
0
        public IActionResult DiscountEditor(int discountId)
        {
            var discount = discountId > 0 ? _discountCouponService.Get(discountId) : new DiscountCoupon();

            if (discount == null)
            {
                return(NotFound());
            }

            var discountModel             = _modelMapper.Map <DiscountModel>(discount);
            var availableCalculationTypes = SelectListHelper.GetSelectItemList <CalculationType>();
            var availableRestrictionTypes = SelectListHelper.GetSelectItemList <RestrictionType>();

            //fetch the additional data if it's an existing discount
            if (discount.Id > 0)
            {
                switch (discount.RestrictionType)
                {
                case RestrictionType.Products:
                    var productIds = discount.RestrictionIds();
                    if (!productIds.Any())
                    {
                        break;
                    }
                    var products = _productService.Get(x => productIds.Contains(x.Id));
                    discountModel.RestrictionValues = products.Select(x => new RestrictionValueModel()
                    {
                        Name = x.Name,
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.Categories:
                    var categoryIds = discount.RestrictionIds();
                    if (!categoryIds.Any())
                    {
                        break;
                    }
                    var allCategories = _categoryService.GetFullCategoryTree()
                                        .Where(x => categoryIds.Contains(x.Id));
                    discountModel.RestrictionValues = allCategories.Select(x => new RestrictionValueModel()
                    {
                        Name = _categoryAccountant.GetFullBreadcrumb(x),
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.Users:
                    var userIds = discount.RestrictionIds();
                    if (!userIds.Any())
                    {
                        break;
                    }
                    var users = _userService.Get(x => userIds.Contains(x.Id));
                    discountModel.RestrictionValues = users.Select(x => new RestrictionValueModel()
                    {
                        Name = $"{x.Name} ({x.Email})",
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.UserGroups:
                    break;

                case RestrictionType.Roles:
                    var roleIds = discount.RestrictionIds();
                    if (!roleIds.Any())
                    {
                        break;
                    }
                    var roles = _roleService.Get(x => roleIds.Contains(x.Id));
                    discountModel.RestrictionValues = roles.Select(x => new RestrictionValueModel()
                    {
                        Name = $"{x.Name}",
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.Vendors:
                    var vendorIds = discount.RestrictionIds();
                    if (!vendorIds.Any())
                    {
                        break;
                    }
                    var vendors = _vendorService.Get(x => vendorIds.Contains(x.Id));
                    discountModel.RestrictionValues = vendors.Select(x => new RestrictionValueModel()
                    {
                        Name = $"{x.Name}",
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.Manufacturers:
                    var manufacturerIds = discount.RestrictionIds();
                    if (!manufacturerIds.Any())
                    {
                        break;
                    }
                    var manufacturers = _vendorService.Get(x => manufacturerIds.Contains(x.Id));
                    discountModel.RestrictionValues = manufacturers.Select(x => new RestrictionValueModel()
                    {
                        Name = $"{x.Name}",
                        RestrictionIdentifier = x.Id.ToString()
                    })
                                                      .ToList();
                    break;

                case RestrictionType.PaymentMethods:
                    break;

                case RestrictionType.ShippingMethods:
                    break;

                case RestrictionType.OrderTotal:
                    break;

                case RestrictionType.OrderSubTotal:
                    break;
                }
            }

            return(R.Success.With("discount", discountModel)
                   .With("availableCalculationTypes", availableCalculationTypes)
                   .With("availableRestrictionTypes", availableRestrictionTypes)
                   .Result);
        }