public async Task <IActionResult> Filter(ListInsuranceViewModel md, string ddlAgent, int?ddlSupervisior, int?ddlPishkhan)
        {
            ListInsuranceViewModel model = new ListInsuranceViewModel();

            FilterItemsViewModel filter = new FilterItemsViewModel();

            filter               = md.FilterItemsVM;
            filter.AgentID       = ddlAgent;
            filter.PishkhanID    = ddlPishkhan;
            filter.SupervisiorID = ddlSupervisior;

            //کاربر هیچ اطلاعاتی برای فیلتر کردن وارد ننموده
            if (filter.AgentID == "0" && filter.SupervisiorID == 0 && filter.PishkhanID == 0 && filter.InsuranceNumber == null && filter.BimegozarName == null && filter.BimegozarPhone == null && filter.BimeshodeName == null && filter.BimeshodePhone == null && filter.FromDate_Soodoor == null && filter.FromDate_Start == null && filter.InsuranceSerial == null && filter.ToDate_Soodoor == null && filter.ToDate_Start == null)
            {
                ViewBag.pm = "لطفا یک آیتم برای فیلتر انتخاب نمایید";
            }

            //ارسال اطلاعات به مادل برای جستجو در دیتابیس
            else
            {
                ViewBag.pm = "";
                var result = _service.TblLifeInsurance.GetInsuranceList(true, 0, 0, filter);

                foreach (var item in result)
                {
                    TabelItemsViewModel vm = new TabelItemsViewModel();
                    vm.Agent           = item.TblUser.Name;
                    vm.BimegozarName   = item.Bimegozar_Name;
                    vm.BimegozarPhone  = item.Bimegozar_Phone;
                    vm.BimeshodeName   = item.Bimeshode_Name;
                    vm.BimeshodePhon   = item.Bimeshode_Phone;
                    vm.DateSoodoor     = item.Date_Soodoor_Shamsi;
                    vm.DateStart       = item.Date_Soodoor_Shamsi;
                    vm.ID              = item.ID;
                    vm.InsuranceNumber = item.InsuranceNumber_Code + "/" + item.InsuranceNumber_CenterCode + "/" + item.InsuranceNumber_GarardadNumber + "/" + item.InsuranceNumber_Year + "/" + item.InsuranceNumber_Number;
                    vm.PaymentType     = item.PaymentType;
                    vm.Price           = item.Payment_Price;
                    vm.Status          = item.Insurance_Status;
                    try
                    {
                        vm.Supervisior = item.TblSupervisior.Name;
                    }
                    catch { }
                    try
                    {
                        vm.Pishkhan = item.TblPishkhan.Name;
                    }
                    catch { }

                    model.TabelItemsVM.Add(vm);
                }
            }


            //-----------------------------------------------------------------------------------------------------------
            //return items


            //Get Agent , pishkhan , supervisior List
            var _agentList       = _user.GetAgentListAsync();
            var _pishkhanList    = _service.TblPishkhan.GetAll();
            var _supervisiorList = _service.TblSupervisior.GetAll();
            var _countTotalRow   = _service.TblLifeInsurance.GetTotalCount();

            var agentList       = await _agentList;
            var pishkhanList    = await _pishkhanList;
            var supervisiorList = await _supervisiorList;
            var countTotalRow   = await _countTotalRow;



            //Fill DropdownList ViewModel
            foreach (var item in agentList)
            {
                AgentListViewModel vm = new AgentListViewModel();
                vm.ID   = item.Id;
                vm.Name = item.Name;
                model.AgentListVM.Add(vm);
            }

            foreach (var item in pishkhanList)
            {
                PishkhanListViewModel vm = new PishkhanListViewModel();
                vm.ID   = item.ID;
                vm.Name = item.Name;
                model.PishkhanListVM.Add(vm);
            }

            foreach (var item in supervisiorList)
            {
                SupervisiorListViewModel vm = new SupervisiorListViewModel();
                vm.ID   = item.ID;
                vm.Name = item.Name;
                model.SupervisiorListVM.Add(vm);
            }



            //Fill Tabel Items
            model.Take = 0;
            model.Skip = 0;
            return(View("List", model));
        }
        public async Task <IActionResult> List()
        {
            ListInsuranceViewModel model = new ListInsuranceViewModel();

            //Get Agent , pishkhan , supervisior List
            var _agentList       = _user.GetAgentListAsync();
            var _pishkhanList    = _service.TblPishkhan.GetAll();
            var _supervisiorList = _service.TblSupervisior.GetAll();
            var _countTotalRow   = _service.TblLifeInsurance.GetTotalCount();

            var agentList       = await _agentList;
            var pishkhanList    = await _pishkhanList;
            var supervisiorList = await _supervisiorList;
            var countTotalRow   = await _countTotalRow;



            //Fill DropdownList ViewModel
            foreach (var item in agentList)
            {
                AgentListViewModel vm = new AgentListViewModel();
                vm.ID   = item.Id;
                vm.Name = item.Name;
                model.AgentListVM.Add(vm);
            }

            foreach (var item in pishkhanList)
            {
                PishkhanListViewModel vm = new PishkhanListViewModel();
                vm.ID   = item.ID;
                vm.Name = item.Name;
                model.PishkhanListVM.Add(vm);
            }

            foreach (var item in supervisiorList)
            {
                SupervisiorListViewModel vm = new SupervisiorListViewModel();
                vm.ID   = item.ID;
                vm.Name = item.Name;
                model.SupervisiorListVM.Add(vm);
            }



            //Fill Tabel Items
            model.Take = 20;
            model.Skip = 0;

            var _take = _service.TblSetting.GetFirst();
            var take  = await _take;

            if (take != null)
            {
                model.Take = take.CountTakeItem;
            }


            //Get Info From Database
            var result = (_service.TblLifeInsurance.GetInsuranceList(false, model.Skip, model.Take, model.FilterItemsVM)).ToList();

            //Fill Count TotalRow
            model.CountTotalRow = countTotalRow;
            model.CountRow      = result.Count;


            foreach (var item in result)
            {
                TabelItemsViewModel vm = new TabelItemsViewModel();
                vm.Agent           = item.TblUser.Name;
                vm.BimegozarName   = item.Bimegozar_Name;
                vm.BimegozarPhone  = item.Bimegozar_Phone;
                vm.BimeshodeName   = item.Bimeshode_Name;
                vm.BimeshodePhon   = item.Bimeshode_Phone;
                vm.DateSoodoor     = item.Date_Soodoor_Shamsi;
                vm.DateStart       = item.Date_Soodoor_Shamsi;
                vm.ID              = item.ID;
                vm.InsuranceNumber = item.InsuranceNumber_Code + "/" + item.InsuranceNumber_CenterCode + "/" + item.InsuranceNumber_GarardadNumber + "/" + item.InsuranceNumber_Year + "/" + item.InsuranceNumber_Number;
                vm.PaymentType     = item.PaymentType;
                vm.Price           = item.Payment_Price;
                vm.Status          = item.Insurance_Status;
                try
                {
                    vm.Supervisior = item.TblSupervisior.Name;
                }
                catch { }
                try
                {
                    vm.Pishkhan = item.TblPishkhan.Name;
                }
                catch { }

                try {
                    if (item.TarikhSabtBimename.Year < 2000)
                    {
                        vm.TarikhSabtBimename = "";
                    }

                    else
                    {
                        vm.TarikhSabtBimename = item.TarikhSabtBimename.DateToShamsi();
                    }
                }
                catch {
                    vm.TarikhSabtBimename = "";
                }

                model.TabelItemsVM.Add(vm);
            }


            return(View(model));
        }