public IActionResult List() { User user = GetUser(); if (user == null) { return(RedirectToAction("List", "LineItemGroups")); } ViewBag.Roles = _pu.GetUserRoles(user.UserLogin); var recipients = _context.MessageRecipients .Where(m => m.User == user) .AsNoTracking() .OrderByDescending(m => m.MessageID) .ToList(); List <int> messageIDs = new List <int>(); foreach (MessageRecipient mr in recipients) { messageIDs.Add(mr.MessageID); } var messages = _context.Messages .Where(Utils.BuildOrExpression <Message, int>(m => m.MessageID, messageIDs.ToArray <int>())) .Include(m => m.Recipients) .ThenInclude(r => r.User) .AsNoTracking() .OrderByDescending(m => m.MessageDate) .ToList(); ViewBag.CurrentUser = user; return(View(messages)); }
public void PopulateViewBag(int contractID) { //const string sessionKey = "CurrentUser"; string userLogin = GetLogin(); if (userLogin != null) { try { User currentUser = _pu.GetUser(userLogin); string roles = _pu.GetUserRoles(userLogin); Contract contract = _context.GetContractByID(contractID); ViewBag.Contract = contract; ViewBag.CurrentUser = currentUser; ViewBag.Roles = roles; } catch (Exception e) { _logger.LogError("LineItemsController.PopulateViewBag Error:" + e.GetBaseException()); Log.Error("LineItemsController.PopulateViewBag Error:" + e.GetBaseException() + "\n" + e.StackTrace); } } else { RedirectToAction("Home"); } }
public IActionResult Index() { string userLogin = GetLogin(); User currentUser = _context.Users.SingleOrDefault(u => u.UserLogin == userLogin); // If userLogin is not authorized, redirect to About page // If userLogin is an authorized user, redirect to Contracts list ViewBag.Roles = _pu.GetUserRoles(userLogin); if (currentUser == null) { return(RedirectToAction("About")); } else { //return RedirectToAction("List", "Contracts"); return(RedirectToAction("List", "LineItemGroups")); } //return View(); }
// GET: Users public async Task <IActionResult> Index() { ViewBag.Roles = _pu.GetUserRoles(GetLogin()); ViewBag.UserIsAdmin = _pu.UserIsAdmin(GetLogin()); return(View(await _context.Users.Include(u => u.Roles).ToListAsync())); }
// GET: Categories public async Task <IActionResult> Index() { ViewBag.Roles = _pu.GetUserRoles(GetLogin()); return(View(await _context.Categories.ToListAsync())); }
private Dictionary <string, List <EncumbranceLookup> > getCategorizedEncumbrances(User user) { Dictionary <string, List <EncumbranceLookup> > results = new Dictionary <string, List <EncumbranceLookup> >(); // These originally depended on roles. // New approach is to return all results from non-archived contracts // and use roles to determine if links are included in the View // This method does NOT return Encumbrances that are CFMComplete List <EncumbranceLookup> allEncumbrances = new List <EncumbranceLookup>(); if (user == null) { allEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.ContractStatus != (ConstantStrings.CloseContract)) .OrderByDescending(e => e.GroupID) .Take(200) .ToList(); } else { string roles = _pu.GetUserRoles(user.UserLogin); // add Line IDs for Groups in Finance if user has Finance role List <EncumbranceLookup> financeEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.SubmittedFinance)) .ToList(); if (roles.Contains(ConstantStrings.FinanceReviewer)) { results.Add(ConstantStrings.SubmittedFinance, financeEncumbrances); } allEncumbrances.AddRange(financeEncumbrances); // add Line IDs for Groups in Work Program if user has WP role List <EncumbranceLookup> wpEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.SubmittedWP)) .ToList(); if (roles.Contains(ConstantStrings.WPReviewer)) { results.Add("WP", wpEncumbrances); } allEncumbrances.AddRange(wpEncumbrances); // add Line IDs for Groups in CFM Ready List <EncumbranceLookup> cfmEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.CFMReady)) .ToList(); if (roles.Contains(ConstantStrings.CFMSubmitter)) { results.Add(ConstantStrings.CFMReady, cfmEncumbrances); } allEncumbrances.AddRange(cfmEncumbrances); List <EncumbranceLookup> origEncumbrances = new List <EncumbranceLookup>(); if (roles.Contains(ConstantStrings.AdminRole)) { // add Group IDs for all Groups in Draft if user is Admin origEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.Draft)) .ToList(); } else if (roles.Contains(ConstantStrings.Originator)) { // add Group IDs for Groups in Draft if user has the originator role and is the originator of the encumbrance origEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.Draft) && e.OriginatorUserID == (user.UserID)) .ToList(); } results.Add(ConstantStrings.Draft, origEncumbrances); allEncumbrances.AddRange(origEncumbrances); // add Groups that have been input to CFM List <EncumbranceLookup> completeEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Equals(ConstantStrings.CFMComplete) && e.ContractStatus != ConstantStrings.ContractArchived) .OrderByDescending(e => e.GroupID) .ToList(); results.Add("Processed", completeEncumbrances); allEncumbrances.AddRange(completeEncumbrances); // add Groups that are closed List <EncumbranceLookup> closedEncumbrances = _context.EncumbranceLookups.AsNoTracking() .Where(e => e.EncumbranceStatus.Contains("Closed") && e.ContractStatus != ConstantStrings.ContractArchived) .OrderByDescending(e => e.GroupID) .ToList(); results.Add("Closed", closedEncumbrances); allEncumbrances.AddRange(closedEncumbrances); } results.Add("Complete", allEncumbrances); return(results); }