public ActionResult ProductList(GridCommand command, int promoId) { var model = new GridModel <PromotionProductsModel>(); if (_permissionService.Authorize(StandardPermissionProvider.ManageCatalog)) { var promoProducts = _promotionProductsService.GetProductsByPromoId(promoId); var productIds = promoProducts.Select(x => x.ProductId).ToArray(); var products = _productService.GetProductsByIds(productIds); model.Data = promoProducts .Select(x => { var product = products.FirstOrDefault(y => y.Id == x.ProductId); return(new PromotionProductsModel { Id = x.Id, ProductId = x.ProductId, ProductName = product.Name }); }); model.Total = promoProducts.Count(); } else { model.Data = Enumerable.Empty <PromotionProductsModel>(); NotifyAccessDenied(); } return(new JsonResult { Data = model }); }