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); }
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); }