/// <summary> /// Prepare paged discount product list model /// </summary> /// <param name="searchModel">Discount product search model</param> /// <param name="discount">Discount</param> /// <returns>Discount product list model</returns> public virtual DiscountProductListModel PrepareDiscountProductListModel(DiscountProductSearchModel searchModel, Discount discount) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (discount == null) { throw new ArgumentNullException(nameof(discount)); } //get products with applied discount var discountProducts = _productService.GetProductsWithAppliedDiscount(discountId: discount.Id, showHidden: false, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare grid model var model = new DiscountProductListModel().PrepareToGrid(searchModel, discountProducts, () => { //fill in model values from the entity return(discountProducts.Select(product => { var discountProductModel = product.ToModel <DiscountProductModel>(); discountProductModel.ProductId = product.Id; discountProductModel.ProductName = product.Name; return discountProductModel; })); }); return(model); }
/// <summary> /// Prepare paged discount product list model /// </summary> /// <param name="searchModel">Discount product search model</param> /// <param name="discount">Discount</param> /// <returns>Discount product list model</returns> public virtual DiscountProductListModel PrepareDiscountProductListModel(DiscountProductSearchModel searchModel, Discount discount) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (discount == null) { throw new ArgumentNullException(nameof(discount)); } //get products with applied discount var discountProducts = _discountService.GetProductsWithAppliedDiscount(discountId: discount.Id, showHidden: false, pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare grid model var model = new DiscountProductListModel { //fill in model values from the entity Data = discountProducts.Select(product => new DiscountProductModel { ProductId = product.Id, ProductName = product.Name }), Total = discountProducts.TotalCount }; return(model); }
public virtual IActionResult ProductList(DiscountProductSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedKendoGridJson(); //try to get a discount with the specified id var discount = _discountService.GetDiscountById(searchModel.DiscountId) ?? throw new ArgumentException("No discount found with the specified id"); //prepare model var model = _discountModelFactory.PrepareDiscountProductListModel(searchModel, discount); return Json(model); }
/// <returns>A task that represents the asynchronous operation</returns> public virtual async Task <IActionResult> ProductList(DiscountProductSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageDiscounts)) { return(await AccessDeniedDataTablesJson()); } //try to get a discount with the specified id var discount = await _discountService.GetDiscountByIdAsync(searchModel.DiscountId) ?? throw new ArgumentException("No discount found with the specified id"); //prepare model var model = await _discountModelFactory.PrepareDiscountProductListModelAsync(searchModel, discount); return(Json(model)); }
/// <summary> /// Prepare discount product search model /// </summary> /// <param name="searchModel">Discount product search model</param> /// <param name="discount">Discount</param> /// <returns>Discount product search model</returns> protected virtual DiscountProductSearchModel PrepareDiscountProductSearchModel(DiscountProductSearchModel searchModel, Discount discount) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (discount == null) { throw new ArgumentNullException(nameof(discount)); } searchModel.DiscountId = discount.Id; //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }