public ActionResult List() { //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) // return AccessDeniedView(); var model = new Nop.Admin.Models.Catalog.ProductListModel(); //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() }); } //warehouses model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var wh in _shippingService.GetAllWarehouses()) { model.AvailableWarehouses.Add(new SelectListItem { Text = wh.Name, Value = wh.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" }); //"published" property //0 - all (according to "ShowHidden" parameter) //1 - published only //2 - unpublished only model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.All"), Value = "0" }); model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.PublishedOnly"), Value = "1" }); model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.UnpublishedOnly"), Value = "2" }); return(View(model)); }
public ActionResult ProductList(DataSourceRequest command, Nop.Admin.Models.Catalog.ProductListModel 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 categoryIds = new List <int> { model.SearchCategoryId }; //include subcategories if (model.SearchIncludeSubCategories && model.SearchCategoryId > 0) { categoryIds.AddRange(GetChildCategoryIds(model.SearchCategoryId)); } //0 - all (according to "ShowHidden" parameter) //1 - published only //2 - unpublished only bool?overridePublished = null; if (model.SearchPublishedId == 1) { overridePublished = true; } else if (model.SearchPublishedId == 2) { overridePublished = false; } var products = _productService.SearchProducts( categoryIds: categoryIds, manufacturerId: model.SearchManufacturerId, storeId: model.SearchStoreId, //vendorId: model.SearchVendorId, warehouseId: model.SearchWarehouseId, productType: model.SearchProductTypeId > 0 ? (ProductType?)model.SearchProductTypeId : null, keywords: model.SearchProductName, pageIndex: command.Page - 1, pageSize: command.PageSize, showHidden: true, overridePublished: overridePublished ); var gridModel = new DataSourceResult(); gridModel.Data = products.Select(x => { var productModel = new ModelsMapper().CreateMap <Product, ProducttModel>(x); //little hack here: //ensure that product full descriptions are not returned //otherwise, we can get the following error if products have too long descriptions: //"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property. " //also it improves performance var myStore = x.getStores().SingleOrDefault(s => s.Id == _workContext.CurrentVendor.getStore().Id); if (productModel.LimitedToStores && myStore != null) { productModel.AddToMyStore = true; } else { productModel.AddToMyStore = false; } //picture var defaultProductPicture = _pictureService.GetPicturesByProductId(x.Id, 1).FirstOrDefault(); productModel.PictureThumbnailUrl = _pictureService.GetPictureUrl(defaultProductPicture, 75, true); //product type productModel.ProductTypeName = x.ProductType.GetLocalizedEnum(_localizationService, _workContext); return(productModel); }); gridModel.Total = products.TotalCount; return(Json(gridModel)); }
public ActionResult List() { //if (!_permissionService.Authorize(StandardPermissionProvider.ManageProducts)) // return AccessDeniedView(); var model = new Nop.Admin.Models.Catalog.ProductListModel(); //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() }); //warehouses model.AvailableWarehouses.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); foreach (var wh in _shippingService.GetAllWarehouses()) model.AvailableWarehouses.Add(new SelectListItem { Text = wh.Name, Value = wh.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" }); //"published" property //0 - all (according to "ShowHidden" parameter) //1 - published only //2 - unpublished only model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.All"), Value = "0" }); model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.PublishedOnly"), Value = "1" }); model.AvailablePublishedOptions.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Catalog.Products.List.SearchPublished.UnpublishedOnly"), Value = "2" }); return View(model); }