public ActionResult Index()
        {
            ReferencePersonAdvanceSearchViewModel referencePersonAdvanceSearchVM = new ReferencePersonAdvanceSearchViewModel();

            referencePersonAdvanceSearchVM.Area = new AreaViewModel();
            referencePersonAdvanceSearchVM.Area.AreaSelectList = _areaBusiness.GetAreaForSelectList();
            referencePersonAdvanceSearchVM.ReferenceType       = new ReferenceTypeViewModel();
            referencePersonAdvanceSearchVM.ReferenceType.ReferenceTypeSelectList = _referenceTypeBusiness.GetReferenceTypeSelectList();
            return(View(referencePersonAdvanceSearchVM));
        }
        public JsonResult GetAllReferencePerson(DataTableAjaxPostModel model, ReferencePersonAdvanceSearchViewModel referencePersonAdvanceSearchVM)
        {
            referencePersonAdvanceSearchVM.DataTablePaging.Start  = model.start;
            referencePersonAdvanceSearchVM.DataTablePaging.Length = (referencePersonAdvanceSearchVM.DataTablePaging.Length == 0) ? model.length : referencePersonAdvanceSearchVM.DataTablePaging.Length;
            List <ReferencePersonViewModel> referencePersonVMList = Mapper.Map <List <ReferencePerson>, List <ReferencePersonViewModel> >(_referencePersonBusiness.GetAllReferencePerson(Mapper.Map <ReferencePersonAdvanceSearchViewModel, ReferencePersonAdvanceSearch>(referencePersonAdvanceSearchVM)));

            if (referencePersonAdvanceSearchVM.DataTablePaging.Length == -1)
            {
                int totalResult    = referencePersonVMList.Count != 0 ? referencePersonVMList[0].TotalCount : 0;
                int filteredResult = referencePersonVMList.Count != 0 ? referencePersonVMList[0].FilteredCount : 0;
                referencePersonVMList = referencePersonVMList.Skip(0).Take(filteredResult > 10000 ? 10000 : filteredResult).ToList();
            }
            return(Json(new
            {
                // this is what datatables wants sending back
                draw = model.draw,
                recordsTotal = referencePersonVMList.Count != 0 ? referencePersonVMList[0].TotalCount : 0,
                recordsFiltered = referencePersonVMList.Count != 0 ? referencePersonVMList[0].FilteredCount : 0,
                data = referencePersonVMList
            }));
        }