public IPagedList<ReportDormantSpecialistsDto> GetDormantSpecialistsReport(DateTime startDate, DateTime endDate, string keyword, int currentPage, int pageSize, DormantSpecialistsSort sortBy = DormantSpecialistsSort.LastLogonDate, bool isDesc = true) { keyword = keyword.ToLower(); DateTime lastLogonBefore3Month = DateTime.Now.AddMonths(-3); var listUsers = Repository.Query<TeleConsult.Domain.User>().Where(a => a.ModifiedDate <= lastLogonBefore3Month && a.Role == Role.Specialist); if (listUsers != null && listUsers.Any()) { var _totalItem = listUsers.Count(); switch (sortBy) { case DormantSpecialistsSort.FirstName: listUsers = isDesc ? listUsers.OrderByDescending(e => e.FirstName) : listUsers.OrderBy(e => e.FirstName); break; case DormantSpecialistsSort.LastName: listUsers = isDesc ? listUsers.OrderByDescending(e => e.LastName) : listUsers.OrderBy(e => e.LastName); break; case DormantSpecialistsSort.EmailAddress: listUsers = isDesc ? listUsers.OrderByDescending(e => e.Email) : listUsers.OrderBy(e => e.Email); break; case DormantSpecialistsSort.UserName: listUsers = isDesc ? listUsers.OrderByDescending(e => e.UserName) : listUsers.OrderBy(e => e.UserName); break; case DormantSpecialistsSort.LastLogonDate: listUsers = isDesc ? listUsers.OrderByDescending(e => e.ModifiedDate) : listUsers.OrderBy(e => e.ModifiedDate); break; default: listUsers = isDesc ? listUsers.OrderByDescending(e => e.ModifiedDate) : listUsers.OrderBy(e => e.ModifiedDate); break; } return listUsers.Skip(currentPage * pageSize).Take(pageSize).Select(p => new ReportDormantSpecialistsDto() { FirstName = p.FirstName, LastName = p.LastName, EmailAddress = p.Email, UserName = p.UserName, LastLogonDate = p.ModifiedDate }).ToPagedList(currentPage, pageSize, _totalItem); } return null; }
public ReportDormantSpecialistsModel(string keyWord, DormantSpecialistsSort sortBy, bool isDesc, int pageSize, int startDay, int startMonth, int startYear, int endDay, int endMonth, int endYear) { Pager = new PagerViewModel() { KeyWord = keyWord, SortBy = sortBy, IsDesc = isDesc, PageSize = pageSize, StartDay = startDay, StartMonth = startMonth, StartYear = startYear, EndDay = endDay, EndMonth = endMonth, EndYear = endYear }; }
public ActionResult DormantSpecialistsPaging(int? page, int? pageSize, string keyword = "", DormantSpecialistsSort sortBy = DormantSpecialistsSort.LastLogonDate, bool isDesc = false, int startDay = 0, int startMonth = 0, int startYear = 0, int endDay = 0, int endMonth = 0, int endYear = 0) { DateTime startDate; DateTime endDate; if (startYear == 0 || endYear == 0) { startDate = DateTime.Now.AddDays(-7); endDate = DateTime.Now; } else { startDate = new DateTime(startYear, startMonth, startDay); endDate = new DateTime(endYear, endMonth, endDay); } int _currentPageIndex = page.HasValue ? page.Value - 1 : 0; int _pageSize = pageSize.HasValue ? pageSize.Value : _itemPerPage; var list = AdminServices.DashboardService.GetDormantSpecialistsReport(startDate, endDate, keyword, _currentPageIndex, _pageSize, sortBy, isDesc); var model = new ReportDormantSpecialistsModel(keyword, sortBy, isDesc, _pageSize, startDay, startMonth, startYear, endDay, endMonth, endYear) { DormantSpecialists = list }; return PartialView(_ajaxDormantSpecialists, model); }