Exemple #1
0
        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));
        }
Exemple #2
0
        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");
            }
        }
Exemple #3
0
        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();
        }
Exemple #4
0
 // 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()));
 }
Exemple #6
0
        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);
        }