using System;
using System.Collections.Generic;
using System.ComponentModel;
public static class BugManager
{
// Do not modify this class.
private static List<string> _users = new List<string>();
private static List<Bug> _bugList = new List<Bug>();
static BugManager()
{
InitializeUsernameList();
InitializeData();
}
public static List<Bug> BugList
{
get { return _bugList; }
}
[DataObjectMethod(DataObjectMethodType.Select)]
public static IEnumerable<Bug> GetBugsReportedByUser(string username)
{
if (string.IsNullOrEmpty(username))
return BugList;
return BugList.FindAll(
delegate(Bug bug)
{
return bug.ReportedBy.StartsWith(username,
StringComparison.OrdinalIgnoreCase);
}
);
}
private static void InitializeData()
{
_bugList.Clear();
AddNewBug("Error occured when Submit button is clicked.",
BugPriority.High, BugType.Bug, _users[0]);
AddNewBug("Null reference exception occurred.",
BugPriority.High, BugType.Bug, _users[1]);
AddNewBug("File not found error occurred.",
BugPriority.High, BugType.Bug, _users[2]);
AddNewBug("Would like to see the ID when a new item is added.",
BugPriority.Low, BugType.Enhancement, _users[3]);
AddNewBug("Difficult to read yellow font on home page.",
BugPriority.Medium, BugType.Trivial, _users[4]);
AddNewBug("A sample bug description.",
BugPriority.High, BugType.Bug, _users[5]);
AddNewBug("Invalid cast exception occurred.",
BugPriority.High, BugType.Bug, _users[0]);
AddNewBug("Index array out of bounds error occurred.",
BugPriority.High, BugType.Bug, _users[1]);
AddNewBug("Unauthorized access error occurred.",
BugPriority.Medium, BugType.Bug, _users[1]);
AddNewBug("Insufficient memory error occurred.",
BugPriority.High, BugType.Bug, _users[5]);
AddNewBug("Page not found error occurred.",
BugPriority.High, BugType.Bug, _users[5]);
AddNewBug("Yet another sample bug description.",
BugPriority.Medium, BugType.Bug, _users[3]);
AddNewBug("Another sample bug description.",
BugPriority.Low, BugType.Bug, _users[6]);
}
private static void AddNewBug(string bugDescription, BugPriority bugPriority,
BugType bugType, string reportedBy)
{
_bugList.Add(new Bug(bugDescription, bugPriority, bugType, reportedBy));
}
private static void InitializeUsernameList()
{
_users.AddRange(new string[] { "Johnnie Walker", "John Doe", "Joe Bloggs",
"Luke Skywalker", "Erica Cartman", "Petra Salieri", "Erwin Wonderland"});
}
}