private int Compare(object oX, object oY, TaskComparingMethod method) { var x = (Task) oX; var y = (Task) oY; switch (method) { case TaskComparingMethod.LastObserved: { DateTime xtime = x.LastObserved; DateTime ytime = y.LastObserved; if (xtime > ytime) { return -1; } if (xtime < ytime) { return 1; } return 0; } case TaskComparingMethod.Relevance: { var xrank = (int) x.MatchRanking(MatchPhrase); var yrank = (int) y.MatchRanking(MatchPhrase); if (xrank > yrank) { return -1; } else if (xrank < yrank) { return 1; } else { return 0; } } case TaskComparingMethod.TotalTime: { TimeSpan xtime = TimeSpan.Parse(x.TotalTime); TimeSpan ytime = TimeSpan.Parse(y.TotalTime); if (xtime > ytime) { return -1; } else if (xtime < ytime) { return 1; } else { return 0; } } } throw new NotImplementedException("Comparison method not implemented!"); }
private TaskComparer(TaskComparingMethod method) { _mainMethod = method; }