Ejemplo n.º 1
0
 public List<sp_GetEmployeesForPRResult> Sort(List<sp_GetEmployeesForPRResult> empList, string sortColumn, string sortOrder)
 {
     int order;
     DepartmentDao depDao = new DepartmentDao();
     if (sortOrder == "desc")
     {
         order = -1;
     }
     else
     {
         order = 1;
     }
     switch (sortColumn)
     {
         case "ID":
             empList.Sort(
                  delegate(sp_GetEmployeesForPRResult m1, sp_GetEmployeesForPRResult m2)
                  { return m1.ID.CompareTo(m2.ID) * order; });
             break;
         case "NextReviewDate":
             empList.Sort(
                  delegate(sp_GetEmployeesForPRResult m1, sp_GetEmployeesForPRResult m2)
                  {
                      DateTime? date1 = GetNextReviewDate(m1.ID);
                      DateTime? date2 = GetNextReviewDate(m2.ID);
                      if (!date1.HasValue)
                          date1 = DateTime.MinValue;
                      if (!date2.HasValue)
                          date2 = DateTime.MinValue;
                      return date1.Value.CompareTo(date2.Value) * order;
                  });
             break;
         case "Department":
             empList.Sort(
                  delegate(sp_GetEmployeesForPRResult m1, sp_GetEmployeesForPRResult m2)
                  {
                      string d1 = depDao.GetDepartmentNameBySub(m1.DepartmentId);
                      string d2 = depDao.GetDepartmentNameBySub(m2.DepartmentId);
                      return d1.CompareTo(d2) * order;
                  });
             break;
         case "LoginName":
             empList.Sort(
                  delegate(sp_GetEmployeesForPRResult m1, sp_GetEmployeesForPRResult m2)
                  {
                      string s1 = FullName(m1.ID, Constants.FullNameFormat.FirstMiddleLast);
                      string s2 = FullName(m2.ID, Constants.FullNameFormat.FirstMiddleLast);
                      return s1.CompareTo(s2) * order;
                  });
             break;
         case "ManagerLoginName":
             empList.Sort(
                  delegate(sp_GetEmployeesForPRResult m1, sp_GetEmployeesForPRResult m2)
                  {
                      string s1 = string.IsNullOrEmpty(m1.ManagerId) ?
                          "" : FullName(m1.ManagerId, Constants.FullNameFormat.FirstMiddleLast);
                      string s2 = string.IsNullOrEmpty(m2.ManagerId) ?
                          "" : FullName(m2.ManagerId, Constants.FullNameFormat.FirstMiddleLast);
                      return s1.CompareTo(s2) * order;
                  });
             break;
     }
     return empList;
 }