Beispiel #1
0
        public async Task <IActionResult> ViewEmployeeQueries()
        {
            string userId  = _userManager.GetUserId(User);
            var    queries = await _context.Query.Include(query => query.QueryHistories).ToListAsync();

            List <QueryTableViewModel> queryTableViewModels = new List <QueryTableViewModel>();

            foreach (Query query in queries)
            {
                var lastQueryHistory = query.QueryHistories.Last();
                IEnumerable <QueryHistory> queryHistories = _context.QueryHistory.Where(item => item.Id == lastQueryHistory.Id && item.UserId == userId).Include(item => item.User);
                if (queryHistories.Count() > 0)
                {
                    QueryTableViewModel queryTableViewModel = new QueryTableViewModel
                    {
                        QueryId      = query.Id,
                        QueryType    = ((QueryType)queryHistories.Single().QueryType).ToString(),
                        QueryStatus  = ((QueryStatus)queryHistories.Single().QueryStatus).ToString(),
                        QueryTitle   = query.QueryTitle,
                        UserName     = queryHistories.Single().User.Name,
                        ReceivedDate = query.ReceivedDate.ToShortDateString()
                    };

                    queryTableViewModels.Add(queryTableViewModel);
                }
            }

            return(View("ViewAllQueries", queryTableViewModels));
        }
Beispiel #2
0
        public async Task <IActionResult> ViewAllQueries(string sortOrder, string searchString, string userName)
        {
            await LoadEmployees();

            ViewData["NameSortParm"]  = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["DateSortParm"]  = sortOrder == "Date" ? "date_desc" : "Date";
            ViewData["CurrentFilter"] = searchString;
            ViewData["UserName"]      = userName;

            IEnumerable <Query> queries = await _context.Query.Include(query => query.QueryHistories).ToListAsync();

            if (!String.IsNullOrEmpty(searchString))
            {
                queries = queries.Where(s => s.QueryTitle.Contains(searchString));
            }

            switch (sortOrder)
            {
            case "name_desc":
                queries = queries.OrderByDescending(s => s.QueryTitle);
                break;

            case "Date":
                queries = queries.OrderBy(s => s.ReceivedDate);
                break;

            case "date_desc":
                queries = queries.OrderByDescending(s => s.ReceivedDate);
                break;

            default:
                queries = queries.OrderBy(s => s.QueryTitle);
                break;
            }

            List <QueryTableViewModel> queryTableViewModels = new List <QueryTableViewModel>();

            foreach (Query query in queries)
            {
                var lastQueryHistory = query.QueryHistories.Last();
                IEnumerable <QueryHistory> queryHistories      = _context.QueryHistory.Where(item => item.Id == lastQueryHistory.Id).Include(item => item.User);
                QueryTableViewModel        queryTableViewModel = new QueryTableViewModel
                {
                    QueryId      = query.Id,
                    QueryType    = ((QueryType)queryHistories.Single().QueryType).ToString(),
                    QueryStatus  = ((QueryStatus)queryHistories.Single().QueryStatus).ToString(),
                    QueryTitle   = query.QueryTitle,
                    UserName     = queryHistories.Single().User.Name,
                    UserId       = queryHistories.Single().UserId,
                    ReceivedDate = query.ReceivedDate.ToShortDateString()
                };

                queryTableViewModels.Add(queryTableViewModel);
            }

            if (!String.IsNullOrEmpty(userName))
            {
                queryTableViewModels = queryTableViewModels.Where(s => s.UserId == userName).ToList();
            }

            return(View(queryTableViewModels));
        }