public ActionResult Index(int page = 1, int itemsperpage = 10, bool showInactive = false, string srchParam = "")
        {
            if (TempData["msg"] != null)
            {
                ViewBag.msg = TempData["msg"].ToString();
                TempData["msg"] = null;
            }
            try
            {
                ViewBag.srchParam = srchParam;
                ViewBag.showInactive = showInactive;
                int currentPageIndex =page-1<0?0:page-1;
                int take = itemsperpage;
                int skip = currentPageIndex * take;
                var query = new QueryServiceProvider { Skip = skip, Take = take, Name = srchParam, ShowInactive = showInactive };

                //var result = _serviceProviderRepository.Query(query);
                //var item = result.Data.Cast<ServiceProvider>().ToList(); 
                //int total = result.Count;
                //var data = item.ToPagedList(currentPageIndex, take, total);
                //return View(data);
                var ls = _serviceProviderRepository.Query(query);
                var total = ls.Count;
                var data = ls.Data.ToList();

                return View(data.ToPagedList(currentPageIndex,take, total));
           
            }
            catch (Exception ex)
            {
                TempData["msg"] = "Error loading Agrimanagr Settings\nDetails:" + ex.Message;
            }
            return View();
        }
        protected override void Load(bool isFirstLoad = false)
        {
            Application.Current.Dispatcher.BeginInvoke(
                new Action(
                    delegate
                    {
                        //if (isFirstLoad)

                            using (var c = NestedContainer)
                            {
                                var query = new QueryServiceProvider();
                                query.Take = ItemsPerPage;
                                query.Skip = ItemsPerPage * (CurrentPage - 1);
                                query.ShowInactive = ShowInactive;
                                if (!string.IsNullOrWhiteSpace(SearchText))
                                    query.Name = SearchText;

                                var rawList = Using<IServiceProviderRepository>(c).Query(query);
                                _pagedServiceProvider = new PagenatedList<ServiceProvider>(rawList.Data.OfType<ServiceProvider>().AsQueryable(),
                                                                                          CurrentPage,
                                                                                          ItemsPerPage,
                                                                                          rawList.Count, true);

                                ListOfServiceProviders.Clear();
                                int rownumber = 0;
                                _pagedServiceProvider.ToList().ForEach(n =>
                                                                       ListOfServiceProviders.Add(new VmServiceProvider
                                                                       {
                                                                           Id = n.Id,
                                                                           Code = n.Code,
                                                                           Name = n.Name,
                                                                           IdNo=n.IdNo,
                                                                           PinNo=n.PinNo,
                                                                           MobileNumber=n.MobileNumber,
                                                                           AccountName=n.AccountName,
                                                                           AccountNumber=n.AccountNumber,
                                                                           BankName=n.Bank!=null?n.Bank.Name:"",
                                                                           BankBranchName=n.BankBranch!=null?n.BankBranch.Name:"",
                                                                           Status = n._Status,
                                                                           Action = n._Status == EntityStatus.Active ? "Deactivate" : "Activate",
                                                                           RowNumber = ++rownumber
                                                                       }));
                                UpdatePagenationControl();
                            }
                    }));
        }