public async Task <IActionResult> GetSalesInvoiceList(DataTableAjaxPostModel dataTableAjaxPostModel, string searchFilter)
        {
            // deserilize string search filter.
            SearchFilterSalesInvoiceModel searchFilterModel = JsonConvert.DeserializeObject <SearchFilterSalesInvoiceModel>(searchFilter);
            // get data.
            DataTableResultModel <SalesInvoiceModel> resultModel = await _salesInvoice.GetSalesInvoiceList(dataTableAjaxPostModel, searchFilterModel);

            return(await Task.Run(() =>
            {
                return Json(new
                {
                    dataTableAjaxPostModel.draw,
                    recordsTotal = resultModel.TotalResultCount,
                    recordsFiltered = resultModel.TotalResultCount,
                    data = resultModel.ResultList
                });
            }));
        }
示例#2
0
        /// <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 <SalesInvoiceModel> > GetDataFromDbase(SearchFilterSalesInvoiceModel searchFilterModel, string searchBy, int take, int skip, string sortBy, string sortDir)
        {
            DataTableResultModel <SalesInvoiceModel> resultModel = new DataTableResultModel <SalesInvoiceModel>();

            IQueryable <Salesinvoice> query = GetQueryByCondition(w => w.InvoiceId != 0);

            if (!string.IsNullOrEmpty(searchFilterModel.InvoiceNo))
            {
                query = query.Where(w => w.InvoiceNo.Contains(searchFilterModel.InvoiceNo));
            }

            if (null != searchFilterModel.CustomerLedgerId)
            {
                query = query.Where(w => w.CustomerLedgerId == searchFilterModel.CustomerLedgerId);
            }

            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 SalesInvoiceModel
            {
                InvoiceId   = s.InvoiceId,
                InvoiceNo   = s.InvoiceNo,
                InvoiceDate = s.InvoiceDate,
                NetAmount   = s.NetAmount,
            }).OrderByDescending(o => o.InvoiceDate).ToListAsync();

            // get filter record count.
            resultModel.FilterResultCount = await query.CountAsync();

            return(resultModel); // returns.
        }
示例#3
0
        /// <summary>
        /// get search sales invoice result list.
        /// </summary>
        /// <param name="dataTableAjaxPostModel"></param>
        /// <param name="searchFilterModel"></param>
        /// <returns>
        /// return list.
        /// </returns>
        public async Task <DataTableResultModel <SalesInvoiceModel> > GetSalesInvoiceList(DataTableAjaxPostModel dataTableAjaxPostModel, SearchFilterSalesInvoiceModel 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 <SalesInvoiceModel> resultModel = await GetDataFromDbase(searchFilterModel, searchBy, take, skip, sortBy, sortDir);

            return(resultModel); // returns.
        }