public virtual async Task <IActionResult> List(MissingImageProductSearchModel searchModel) { var productsWithoutImages = await _customProductService.GetProductsWithoutImagesAsync(); var pagedList = productsWithoutImages.ToPagedList(searchModel); var model = await new MissingImageProductListModel().PrepareToGridAsync(searchModel, pagedList, () => { //fill in model values from the entity return(pagedList.SelectAwait(async product => { var pad = await _productAbcDescriptionService.GetProductAbcDescriptionByProductIdAsync(product.Id); var itemNo = pad?.AbcItemNumber; var missingImageProductModel = new MissingImageProductModel() { ItemNumber = itemNo, Sku = product.Sku, Name = product.Name }; return missingImageProductModel; })); }); return(Json(model)); }
public async System.Threading.Tasks.Task ExecuteAsync() { var prodsInfo = from prod in (await _customProductService.GetProductsWithoutImagesAsync()) from pAbc in _productAbcRepository.Table.Where(pA => pA.Product_Id == prod.Id).ToList() select new { prod.Id, prod.Name, prod.Sku, ItemNo = pAbc == null ? "" : pAbc.AbcItemNumber }; ExcelPackage ex = GetPackage(); var prodSheet = ex.Workbook.Worksheets[0]; int rowIdx = 2; foreach (var prodInfo in prodsInfo) { prodSheet.Cells[rowIdx, ProductTable.IdIdx + 1].Value = prodInfo.Id; prodSheet.Cells[rowIdx, ProductTable.NameIdx + 1].Value = prodInfo.Name; prodSheet.Cells[rowIdx, ProductTable.SkuIdx + 1].Value = prodInfo.Sku; prodSheet.Cells[rowIdx, ProductTable.ItemNoIdx + 1].Value = prodInfo.ItemNo; ++rowIdx; } ex.Save(); }