[AuthSecurityFilter(ProjectObject = "Approver", Mode = "R")]// GET: Approver
        public ActionResult Index(string code)
        {
            ViewBag.SysModuleCode = code;
            ApproverAdvanceSearchViewModel approverAdvanceSearchVM = new ApproverAdvanceSearchViewModel();

            approverAdvanceSearchVM.DocumentType = new DocumentTypeViewModel()
            {
                DocumentTypeSelectList = _documentTypeBusiness.GetDocumentTypeSelectList(),
            };
            return(View(approverAdvanceSearchVM));
        }
        public JsonResult GetAllApprover(DataTableAjaxPostModel model, ApproverAdvanceSearchViewModel approverAdvanceSearchVM)
        {
            try
            {
                //setting options to our model
                approverAdvanceSearchVM.DataTablePaging.Start  = model.start;
                approverAdvanceSearchVM.DataTablePaging.Length = (approverAdvanceSearchVM.DataTablePaging.Length == 0) ? model.length : approverAdvanceSearchVM.DataTablePaging.Length;

                // action inside a standard controller
                List <ApproverViewModel> approverVMList = Mapper.Map <List <Approver>, List <ApproverViewModel> >(_approverBusiness.GetAllApprover(Mapper.Map <ApproverAdvanceSearchViewModel, ApproverAdvanceSearch>(approverAdvanceSearchVM)));
                if (approverAdvanceSearchVM.DataTablePaging.Length == -1)
                {
                    int totalResult    = approverVMList.Count != 0 ? approverVMList[0].TotalCount : 0;
                    int filteredResult = approverVMList.Count != 0 ? approverVMList[0].FilteredCount : 0;
                    approverVMList = approverVMList.Skip(0).Take(filteredResult > 10000 ? 10000 : filteredResult).ToList();
                }
                var settings = new JsonSerializerSettings
                {
                    //ContractResolver = new CamelCasePropertyNamesContractResolver(),
                    Formatting = Formatting.None
                };
                return(Json(new
                {
                    // this is what datatables wants sending back
                    draw = model.draw,
                    recordsTotal = approverVMList.Count != 0 ? approverVMList[0].TotalCount : 0,
                    recordsFiltered = approverVMList.Count != 0 ? approverVMList[0].FilteredCount : 0,
                    data = approverVMList
                }));
            }
            catch (Exception ex)
            {
                AppConstMessage cm = _appConst.GetMessage(ex.Message);
                return(Json(new { Result = "ERROR", Message = cm.Message }));
            }
        }