Esempio n. 1
0
        public ActionResult SearchEmployee(SearchEmployeeViewModel model)
        {
            try
            {
                ViewBag.Code            = model.Code;
                ViewBag.FullName        = !string.IsNullOrEmpty(model.FullName) ? model.FullName.Trim() : model.FullName;
                ViewBag.FullNameEnglish = !string.IsNullOrEmpty(model.FullNameEnglish) ? model.FullNameEnglish.Trim() : model.FullNameEnglish;
                ViewBag.BirthDate       = model.BirthDate;
                ViewBag.HomeTown        = model.HomeTown;
                ViewBag.SortBy          = "FullName";
                ViewBag.SortOrder       = "asc";
                ViewBag.Page            = 1;//display the first page

                var criteria = new SearchEmployeeCriteria();
                criteria.BirthDate       = model.BirthDate;
                criteria.Code            = model.Code;
                criteria.FullName        = model.FullName;
                criteria.FullNameEnglish = model.FullNameEnglish;
                criteria.HomeTown        = model.HomeTown;

                var allEmployees = _employeeBusiness.SearchEmployees(criteria);

                var allSortedEmployees = allEmployees.OrderBy(x => x.FullName);

                var pageSize = 10;

                var pageNumber = 1;

                return(PartialView("_SearchEmployeeResultTable", allSortedEmployees.ToPagedList(pageNumber, pageSize)));
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    Success = false,
                    Message = ex.Message,
                    ReturnUrl = "/ResourceManagement/Individual/Search"
                }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 2
0
        public ActionResult SearchEmployee(
            string code,
            string fullName,
            string fullNameEnglish,
            string homeTown,
            DateTime?birthDate,
            string sortOrder,
            string sortBy,
            int?page
            )
        {
            ViewBag.Code            = !string.IsNullOrEmpty(code) ? code.Trim() : code;
            ViewBag.FullName        = !string.IsNullOrEmpty(fullName) ? fullName.Trim() : fullName;
            ViewBag.FullNameEnglish = !string.IsNullOrEmpty(fullNameEnglish) ? fullNameEnglish.Trim() : fullNameEnglish;
            ViewBag.HomeTown        = !string.IsNullOrEmpty(homeTown) ? homeTown.Trim() : homeTown;
            ViewBag.BirthDate       = birthDate;
            ViewBag.SortBy          = sortBy;
            ViewBag.SortOrder       = sortOrder;
            ViewBag.Page            = page;

            var viewModel = new SearchEmployeeViewModel
            {
                Code            = !string.IsNullOrEmpty(code) ? code.Trim() : code,
                FullName        = !string.IsNullOrEmpty(fullName) ? fullName.Trim() : fullName,
                FullNameEnglish = !string.IsNullOrEmpty(fullNameEnglish) ? fullNameEnglish.Trim() : fullNameEnglish,
                HomeTown        = !string.IsNullOrEmpty(homeTown) ? homeTown.Trim() : homeTown,
                BirthDate       = birthDate
            };

            var criteria = new SearchEmployeeCriteria();

            criteria.Code            = viewModel.Code;
            criteria.FullName        = viewModel.FullName;
            criteria.FullNameEnglish = viewModel.FullNameEnglish;
            criteria.HomeTown        = viewModel.HomeTown;
            criteria.BirthDate       = viewModel.BirthDate;

            var allEmployees = _employeeBusiness.SearchEmployees(criteria);

            switch (sortBy)
            {
            case "Code":
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.Code).ToList() : allEmployees.OrderBy(x => x.Code).ToList();
                break;

            case "FullName":
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.FullName).ToList() :
                               allEmployees.OrderBy(x => x.FullName).ToList();
                break;

            case "FullNameEnglish":
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.FullNameEnglish).ToList() :
                               allEmployees.OrderBy(x => x.FullNameEnglish).ToList();
                break;

            case "HomeTown":
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.HomeTown).ToList() : allEmployees.OrderBy(x => x.HomeTown).ToList();
                break;

            case "BirthDate":
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.BirthDate).ToList() : allEmployees.OrderBy(x => x.BirthDate).ToList();
                break;

            default:
                allEmployees = sortOrder == "desc" ? allEmployees.OrderByDescending(x => x.FullName).ToList() :
                               allEmployees.OrderBy(x => x.FullName).ToList();
                break;
            }

            var pageSize = 10;

            var pageNumber = (page ?? 1);

            return(PartialView("_SearchEmployeeResultTable", allEmployees.ToPagedList(pageNumber, pageSize)));
        }
Esempio n. 3
0
 public List <EmployeeSearchResult> SearchEmployees(SearchEmployeeCriteria criteria)
 {
     return(_employeeRepository.ExecuteSearch <EmployeeSearchResult>("SearchEmployees", criteria));
 }