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>());
 }
Exemple #2
0
        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);
        }