Beispiel #1
0
        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);
        }