public ActionResult RelatedProductAddPopupList(DataSourceRequest command, AuctionModel.AddRelatedProductModel model)
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            //    return AccessDeniedView();

            //a vendor should have access only to his products
            if (_workContext.CurrentVendor != null)
            {
                model.SearchVendorId = _workContext.CurrentVendor.Id;
            }

            var products = _productService.SearchProducts(
                categoryIds: new List <int> {
                model.SearchCategoryId
            },
                manufacturerId: model.SearchManufacturerId,
                storeId: model.SearchStoreId,
                vendorId: model.SearchVendorId,
                //productType: model.SearchProductTypeId > 0 ? (ProductType?)model.SearchProductTypeId : null,
                keywords: model.SearchProductName,
                pageIndex: command.Page - 1,
                pageSize: command.PageSize,
                showHidden: true
                );
            var gridModel = new DataSourceResult();

            //gridModel.Data = products.Select(x => x.ToModel());
            gridModel.Data  = products.Select(x => new ModelsMapper().CreateMap <Product, ProductModel>(x));
            gridModel.Total = products.TotalCount;

            return(Json(gridModel));
        }
        public ActionResult RelatedProductAddPopup(string btnId, string formId, AuctionModel.AddRelatedProductModel model)
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            //    return AccessDeniedView();

            if (model.SelectedProductIds.Count() > 1)
            {
                ModelState.AddModelError("NumberOfProducts", "Please select a single product.");
                model.IsLoggedInAsVendor = _workContext.CurrentVendor != null;
                ViewBag.RefreshPage      = false;
                ViewBag.btnId            = btnId;
                ViewBag.formId           = formId;
                return(View(model));
            }

            if (model.SelectedProductIds != null)
            {
                foreach (int id in model.SelectedProductIds)
                {
                    var product = _productService.GetProductById(id);
                    if (product != null)
                    {
                        //a vendor should have access only to his products
                        //if (_workContext.CurrentVendor != null && product.VendorId != _workContext.CurrentVendor.Id)
                        //    continue;

                        var existingAuctionedProduct = _auctionService.GetAuctionedProductByAuctionId(model.AuctionId);
                        if (existingAuctionedProduct == null)
                        {
                            _auctionService.InsertAuctionedProduct(model.AuctionId, product.Id);
                        }
                    }
                }
            }

            //a vendor should have access only to his products
            model.IsLoggedInAsVendor = _workContext.CurrentVendor != null;
            ViewBag.RefreshPage      = true;
            ViewBag.btnId            = btnId;
            ViewBag.formId           = formId;
            return(View(model));
        }
        public ActionResult RelatedProductAddPopup(int auctionId)
        {
            //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts))
            //    return AccessDeniedView();

            var model = new AuctionModel.AddRelatedProductModel();

            //a vendor should have access only to his products
            model.IsLoggedInAsVendor = _workContext.CurrentVendor != null;

            //categories
            model.AvailableCategories.Add(new SelectListItem {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            var categories = _categoryService.GetAllCategories(showHidden: true);

            foreach (var c in categories)
            {
                model.AvailableCategories.Add(new SelectListItem {
                    Text = c.GetFormattedBreadCrumb(categories), Value = c.Id.ToString()
                });
            }

            //manufacturers
            model.AvailableManufacturers.Add(new SelectListItem {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            foreach (var m in _manufacturerService.GetAllManufacturers(showHidden: true))
            {
                model.AvailableManufacturers.Add(new SelectListItem {
                    Text = m.Name, Value = m.Id.ToString()
                });
            }

            //stores
            model.AvailableStores.Add(new SelectListItem {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            foreach (var s in _storeService.GetAllStores())
            {
                model.AvailableStores.Add(new SelectListItem {
                    Text = s.Name, Value = s.Id.ToString()
                });
            }

            //vendors
            model.AvailableVendors.Add(new SelectListItem {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            foreach (var v in _vendorService.GetAllVendors(showHidden: true))
            {
                model.AvailableVendors.Add(new SelectListItem {
                    Text = v.Name, Value = v.Id.ToString()
                });
            }

            //product types
            //model.AvailableProductTypes = ProductType.SimpleProduct.ToSelectList(false).ToList();
            //model.AvailableProductTypes.Insert(0, new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" });

            return(View(model));
        }