public async Task <IActionResult> ViewContracts(DataSourceRequest command, ServiceContractListModel model) { model.ClientId = (int)_workContext.CurrentCustomer.ClientId; var(contractListModel, totalCount) = await _serviceContractModelService.PrepareServiceContractListModel(model, command.Page, command.PageSize); var gridModel = new DataSourceResult { Data = contractListModel.ToList(), Total = totalCount }; return(Json(gridModel)); }
public async Task<(IEnumerable<ServiceContractModel> ServiceContractModelList, int totalCount)> PrepareServiceContractListModel(ServiceContractListModel model, int pageIndex, int pageSize) { SqlParameter[] pr = new SqlParameter[] { new SqlParameter("@intClientID",model.ClientId), new SqlParameter("@txtSort", model.SearchBySort) }; var contracts = await _dbContext.Set<SCLIST>().FromSqlRaw("exec SCLIST @intClientID,@txtSort", pr).ToListAsync(); int totalCount = contracts.Count; int pageOffSet = (Convert.ToInt32(pageIndex) - 1) * 10; contracts = contracts.Skip(pageOffSet).Take(Convert.ToInt32(pageSize)).ToList(); ///Add from store procedure response to model var contractListModel = new List<ServiceContractModel>(); foreach (var p in contracts) { contractListModel.Add(new ServiceContractModel { Scid = p.SCId, ClientId = p.ClientID, Scvendor = p.SCVendor, ScendDate = p.SCEndDate, ScnotifyDate = p.SCNotifyDate, ShortDescription = p.ShortDescription, Category = p.Category }); } return (contractListModel, totalCount); }