public static IEnumerable<Bug> GetBugs(int page, int pageSize, bool asc, string sortExpression, out int itemsCount)
{
DataClassesBugTrackingSystemDataContext db = new DataClassesBugTrackingSystemDataContext();
int items;
switch (sortExpression)
{
case "SortDescription":
var bugs = db.Bugs.Page(page, pageSize, p => p.Description,
p=> p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
case "SortId":
bugs = db.Bugs.Page(page, pageSize, p => p.BugId,
p => p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
case "SortPriority":
bugs = db.Bugs.Page(page, pageSize, p => p.Priority,
p => p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
case "SortOwner":
bugs = db.Bugs.Page(page, pageSize, p => p.Tester.Name,
p => p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
case "SortProject":
bugs = db.Bugs.Page(page, pageSize, p => p.Project.Name,
p => p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
case "SortStatus":
bugs = db.Bugs.Page(page, pageSize, p => p.Status,
p => p.Status != Status.Closed.ToString(),
p => p.Status != Status.Deleted.ToString(),
asc, out items);
itemsCount = items;
return bugs;
}
itemsCount = 0;
return null;
}