/// <summary> /// get records from database. /// </summary> /// <param name="searchBy"></param> /// <param name="take"></param> /// <param name="skip"></param> /// <param name="sortBy"></param> /// <param name="sortDir"></param> /// <returns></returns> private async Task <DataTableResultModel <PurchaseInvoiceModel> > GetDataFromDbase(SearchFilterPurchaseInvoiceModel searchFilterModel, string searchBy, int take, int skip, string sortBy, string sortDir) { DataTableResultModel <PurchaseInvoiceModel> resultModel = new DataTableResultModel <PurchaseInvoiceModel>(); IQueryable <Purchaseinvoice> query = GetQueryByCondition(w => w.PurchaseInvoiceId != 0); if (!string.IsNullOrEmpty(searchFilterModel.InvoiceNo)) { query = query.Where(w => w.InvoiceNo.Contains(searchFilterModel.InvoiceNo)); } if (null != searchFilterModel.SupplierLedgerId) { query = query.Where(w => w.SupplierLedgerId == searchFilterModel.SupplierLedgerId); } if (null != searchFilterModel.FromDate) { query = query.Where(w => w.InvoiceDate >= searchFilterModel.FromDate); } if (null != searchFilterModel.ToDate) { query = query.Where(w => w.InvoiceDate <= searchFilterModel.ToDate); } // get total count. resultModel.TotalResultCount = await query.CountAsync(); // get records based on pagesize. query = query.Skip(skip).Take(take); resultModel.ResultList = await query.Select(s => new PurchaseInvoiceModel { PurchaseInvoiceId = s.PurchaseInvoiceId, InvoiceNo = s.InvoiceNo, InvoiceDate = s.InvoiceDate, NetAmount = s.NetAmount, }).ToListAsync(); // get filter record count. resultModel.FilterResultCount = await query.CountAsync(); return(resultModel); // returns. }
/// <summary> /// get search purchase invoice result list. /// </summary> /// <param name="dataTableAjaxPostModel"></param> /// <param name="searchFilterModel"></param> /// <returns> /// return list. /// </returns> public async Task <DataTableResultModel <PurchaseInvoiceModel> > GetPurchaseInvoiceList(DataTableAjaxPostModel dataTableAjaxPostModel, SearchFilterPurchaseInvoiceModel searchFilterModel) { string searchBy = dataTableAjaxPostModel.search?.value; int take = dataTableAjaxPostModel.length; int skip = dataTableAjaxPostModel.start; string sortBy = string.Empty; string sortDir = string.Empty; if (dataTableAjaxPostModel.order != null) { sortBy = dataTableAjaxPostModel.columns[dataTableAjaxPostModel.order[0].column].data; sortDir = dataTableAjaxPostModel.order[0].dir.ToLower(); } // search the dbase taking into consideration table sorting and paging DataTableResultModel <PurchaseInvoiceModel> resultModel = await GetDataFromDbase(searchFilterModel, searchBy, take, skip, sortBy, sortDir); return(resultModel); // returns. }