// get all statues
 public StatusIndexVM GetStatusList(string sortOrder, string currentFilter, string searchString, int?page)
 {
     try
     {
         IEnumerable <StatusVM> statusList = _context.Status
                                             .Select(c => new StatusVM
         {
             StatusName     = c.StatusName,
             StatusTypeID   = c.StatusTypeID,
             StatusID       = c.StatusID,
             StatusTypeName = c.StatusType.StatusTypeName
         });
         int pageNumber      = (page ?? 1);
         int defaultPageSize = ConstantsRepo.PAGE_SIZE;
         page = searchString == null ? page : 1;
         int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
         searchString = searchString ?? currentFilter;
         var sorted             = Sort(statusList, sortOrder, searchString);
         int totalNumOfStatuses = sorted.Count();
         sortOrder = sortOrder == null ? ConstantsRepo.SORT_STATUS_BY_TYPE_ASCE : sortOrder;
         StatusIndexVM model = new StatusIndexVM
         {
             Statuses       = sorted.ToPagedList(pageNumber, defaultPageSize),
             CurrentFilter  = searchString,
             CurrentSort    = sortOrder,
             TotalItemCount = totalNumOfStatuses,
             ItemStart      = currentPageIndex * defaultPageSize + 1,
             ItemEnd        = totalNumOfStatuses - (defaultPageSize * currentPageIndex) >= defaultPageSize ? defaultPageSize * (currentPageIndex + 1) : totalNumOfStatuses,
             StatusTypeSort = sortOrder == ConstantsRepo.SORT_STATUS_BY_TYPE_DESC ? ConstantsRepo.SORT_STATUS_BY_TYPE_ASCE : ConstantsRepo.SORT_STATUS_BY_TYPE_DESC,
             StatusNameSort = sortOrder == ConstantsRepo.SORT_STATUS_BY_NAME_DESC ? ConstantsRepo.SORT_STATUS_BY_NAME_ASCE : ConstantsRepo.SORT_STATUS_BY_NAME_DESC,
         };
         return(model);
     }
     catch (Exception)
     {
         return(null);
     }
 }
        public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            StatusIndexVM statusList = _sRepo.GetStatusList(sortOrder, currentFilter, searchString, page);

            return(View(statusList));
        }