public IEnumerable <Issue> GetIssuesByUser(int userId, SearchField searchField) { if (searchField.HasFlag(SearchField.Assigned)) { // get assigned; } if (searchField.HasFlag(SearchField.Reporter)) { // get reporter; } // merge the results and return return(Enumerable.Empty <Issue>()); }
public IEnumerable <Issue> GetIssuesByUser(int userId, SearchField searchField) { var user = _context.Users.SingleOrDefault(u => u.Id == userId); if (user == null) { throw new ApplicationException("The user does not exists!"); } var issuesByUser = user.Issues; var ceoIssues = issuesByUser; var acountmanagerIssues = issuesByUser; var managerIssues = issuesByUser; var testerIssues = issuesByUser; var salesRepIssues = issuesByUser; var assignedIssues = issuesByUser; var reportedIssues = issuesByUser; if (searchField.HasFlag(SearchField.CEO)) { // get assigned; ceoIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.CEO)); } if (searchField.HasFlag(SearchField.AccountManager)) { // get assigned; acountmanagerIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.AccountManager)); } if (searchField.HasFlag(SearchField.Manager)) { // get assigned; managerIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.Manager)); } if (searchField.HasFlag(SearchField.Tester)) { // get assigned; testerIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.Tester)); } if (searchField.HasFlag(SearchField.SalesRep)) { // get assigned; salesRepIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.SalesRep)); } if (searchField.HasFlag(SearchField.Assigned)) { // get assigned; assignedIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.Assigned)); } if (searchField.HasFlag(SearchField.Reporter)) { // get reporter; reportedIssues = issuesByUser.Where(i => i.SearchField.Equals(SearchField.Reporter)); } // merge the results and return var allIssuesPerUser = ceoIssues.Concat(acountmanagerIssues).Concat(managerIssues).Concat(testerIssues) .Concat(salesRepIssues).Concat(assignedIssues).Concat(reportedIssues); return(allIssuesPerUser); }
public IEnumerable <Issue> GetIssuesByUser(int userId, SearchField searchField) { HashSet <Issue> issues = new HashSet <Issue>(); if (searchField.HasFlag(SearchField.Assigned)) { var assignedIssues = context.Issues.Where(i => i.AssigneeID == userId); foreach (var issue in assignedIssues) { issues.Add(issue); } } if (searchField.HasFlag(SearchField.Reporter)) { var reportedIssues = context.Issues.Where(i => i.ReporterID == userId); foreach (var issue in reportedIssues) { issues.Add(issue); } } // merge the results and return return(issues); }