public List<NavGrouping> CreateCartControllerNavList(AppUser user)
        {
            List<NavGrouping> grouping = new List<NavGrouping>();

            NavGrouping actions = new NavGrouping();
            actions.GroupingHeader = "Actions";
            actions.NavItems = new List<NavItem>();

            NavItem continueShopping = new NavItem();
            continueShopping.Destination = "/Store";
            continueShopping.DestinationName = "Continue Shopping";

            NavItem clearCart = new NavItem();
            clearCart.Destination = "/Cart/EmptyCart";
            clearCart.DestinationName = "Empty Cart";

            actions.NavItems.Add(continueShopping);
            actions.NavItems.Add(clearCart);

            if (user.AssertValidOrder())
            {
                NavItem purchase = new NavItem();
                purchase.Destination = "/Cart/Purchase";
                purchase.DestinationName = "Purchase";

                actions.NavItems.Add(purchase);
            }

            grouping.Add(actions);

            return grouping;
        }
        public List<NavGrouping> CreateObjectivesAdminNavList()
        {
            List<NavGrouping> navList = CreateObjectivesNavList();

            NavGrouping admin = new NavGrouping();
            admin.GroupingHeader = "Admin";
            admin.NavItems = new List<NavItem>();
            NavItem adminItem = new NavItem();
            adminItem.Destination = "/Objectives/AdminObjectives";
            adminItem.DestinationName = "View All";
            admin.NavItems.Add(adminItem);
            adminItem = new NavItem();
            adminItem.Destination = "/Objectives/AddObjective";
            adminItem.DestinationName = "Add Objective";
            admin.NavItems.Add(adminItem);
            adminItem = new NavItem();
            adminItem.Destination = "/Objectives/AddBoostedObjective";
            adminItem.DestinationName = "Add Boosted Objective";
            admin.NavItems.Add(adminItem);

            navList.Add(admin);

            return navList;
        }
        public List<NavGrouping> CreateObjectivesNavList()
        {
            List<NavGrouping> navList = new List<NavGrouping>();

            NavGrouping objective = new NavGrouping();
            objective.GroupingHeader = "Objectives";
            objective.NavItems = new List<NavItem>();
            NavItem objectiveItem = new NavItem();
            objectiveItem.DestinationName = "Objectives";
            objectiveItem.IsFormSubmit = true;
            objectiveItem.FormID = objectiveFormID;
            objectiveItem.FormAction = "/Objectives";
            objective.NavItems.Add(objectiveItem);
            objectiveItem = new NavItem();
            objectiveItem.DestinationName = "Boosted Objectives";
            objectiveItem.IsFormSubmit = true;
            objectiveItem.FormID = objectiveFormID;
            objectiveItem.FormAction = "/Objectives/boosted";
            objective.NavItems.Add(objectiveItem);
            objectiveItem = new NavItem();
            objectiveItem.Destination = "/Objectives/myobjectives";
            objectiveItem.DestinationName = "Completed Objectives";
            objective.NavItems.Add(objectiveItem);



            navList.Add(objective);

            return navList;
        }
        private List<NavGrouping> CreateUserControllerAdminNavList()
        {
            List<NavGrouping> navList = CreateUserControllerNavList();

            NavGrouping navGrouping = new NavGrouping();
            navGrouping.GroupingHeader = "Admin Actions";

            navGrouping.NavItems = new List<NavItem>();

            NavItem navItem = new NavItem();
            navItem.Destination = "/User/AdminAppUsers/";
            navItem.DestinationName = "View Users";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AddAppUser/";
            navItem.DestinationName = "Add User";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AdminBalanceEntries/";
            navItem.DestinationName = "View Balance Entries";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AddBalances/";
            navItem.DestinationName = "Add Balances";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AddBalance/";
            navItem.DestinationName = "Add Balance Entry";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AdminClaimedProductKeys/";
            navItem.DestinationName = "View User Keys";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AddClaimedProductKey/";
            navItem.DestinationName = "Add Key for User";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AdminOrders/";
            navItem.DestinationName = "View Orders";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/User/AddOrder/";
            navItem.DestinationName = "Add Order";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();

            navList.Add(navGrouping);

            return navList;
        }
        private List<NavGrouping> CreateUserControllerNavList()
        {
            List<NavGrouping> navList;

            NavGrouping navGrouping = new NavGrouping();
            navGrouping.GroupingHeader = "Users";

            NavItem admin = new NavItem();
            admin.Destination = "/User/Admins/";
            admin.DestinationName = "Admins";

            NavItem users = new NavItem();
            users.Destination = "/User/";
            users.DestinationName = "All Users";

            navGrouping.NavItems = new List<NavItem>() { admin, users };
            navList = new List<NavGrouping>() { navGrouping };

            return navList;
        }
        public List<NavGrouping> CreateStoreControllerAdminNavList()
        {
            List<NavGrouping> navList = new List<NavGrouping>();

            NavGrouping grouping = new NavGrouping();
            grouping.GroupingHeader = "Non-Admin Pages";
            grouping.NavItems = new List<NavItem>();
            NavItem item = new NavItem();
            item.DestinationName = "Store Index";
            item.Destination = "/Store/";
            grouping.NavItems.Add(item);

            navList.Add(grouping);

            grouping = new NavGrouping();
            grouping.GroupingHeader = "Admin Pages";
            grouping.NavItems = new List<NavItem>();
            item = new NavItem();
            item.DestinationName = "View Listings";
            item.Destination = "/Store/AdminListings";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "View Platforms";
            item.Destination = "/Store/AdminPlatforms";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "View Products";
            item.Destination = "/Store/AdminProducts";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "View Categories";
            item.Destination = "/Store/AdminProductCategories";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "View Keys";
            item.Destination = "/Store/AdminProductKeys";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "Add Listings";
            item.Destination = "/Store/AddGames";
            grouping.NavItems.Add(item);
            item = new NavItem();
            item.DestinationName = "Add Platform";
            item.Destination = "/Store/AddPlatform";
            grouping.NavItems.Add(item);

            navList.Add(grouping);

            return navList;
        }
        public List<NavGrouping> CreateStoreControllerStoreNavList(StoreIndexViewModel model)
        {
            List<NavGrouping> navList = new List<NavGrouping>();

            if (User.Identity.IsAuthenticated)
            {
                NavGrouping basicNav = new NavGrouping();
                basicNav.GroupingHeader = "Account";
                basicNav.NavItems = new List<NavItem>();
                NavItem basicNavItem = new NavItem();
                basicNavItem.DestinationName = "My Account";
                basicNavItem.Destination = "/Account/";
                basicNav.NavItems.Add(basicNavItem);
                basicNavItem = new NavItem();
                basicNavItem.DestinationName = "My Cart";
                basicNavItem.Destination = "/Cart/";
                basicNav.NavItems.Add(basicNavItem);

                navList.Add(basicNav);
            }

            NavGrouping actions = new NavGrouping();
            actions.GroupingHeader = "Actions";
            actions.NavItems = new List<NavItem>();
            NavItem clearSearch = new NavItem();
            clearSearch.DestinationName = "Clear Search";
            clearSearch.Destination = "/Store/";
            actions.NavItems.Add(clearSearch);

            navList.Add(actions);

            NavGrouping platforms = new NavGrouping();
            platforms.GroupingHeader = "Platforms";
            platforms.NavItems = new List<NavItem>();

            for (int i = 0; i < model.StorePlatforms.Count; i++)
            {
                NavItem navItem = new NavItem();
                navItem.IsFormSubmit = true;
                navItem.DestinationName = model.StorePlatforms[i].PlatformName; 
                navItem.FormName = "SelectedPlatformID";
                navItem.FormValue = model.StorePlatforms[i].PlatformID.ToString();
                navItem.FormID = storeFormID;

                platforms.NavItems.Add(navItem);
            }

            navList.Add(platforms);

            NavGrouping deals = new NavGrouping();
            deals.GroupingHeader = "Deals";
            deals.NavItems = new List<NavItem>();

            NavItem weeklyDeals = new NavItem();
            weeklyDeals.IsFormSubmit = true;
            weeklyDeals.FormID = storeFormID;
            weeklyDeals.FormAction = "/Store/Deals/weekly";
            weeklyDeals.DestinationName = "Weekly Deals";

            NavItem dailyDeals = new NavItem();
            dailyDeals.DestinationName = "Daily Deals";
            dailyDeals.IsFormSubmit = true;
            dailyDeals.FormID = storeFormID;
            dailyDeals.FormAction = "/Store/Deals/daily";

            NavItem newestListings = new NavItem();
            newestListings.DestinationName = "New Additions";
            newestListings.IsFormSubmit = true;
            newestListings.FormID = storeFormID;
            newestListings.FormAction = "/Store/Newest/";

            deals.NavItems.Add(weeklyDeals);
            deals.NavItems.Add(dailyDeals);
            deals.NavItems.Add(newestListings);

            navList.Add(deals);

            return navList;
        }
        public List<NavGrouping> CreatePurchaseViewModelNavList()
        {
            List<NavGrouping> grouping = new List<NavGrouping>();

            NavGrouping actions = new NavGrouping();
            actions.GroupingHeader = "Actions";

            NavItem store = new NavItem();
            store.Destination = "/Store";
            store.DestinationName = "Return To Store";

            NavItem account = new NavItem();
            account.DestinationName = "My Account";
            account.Destination = "/Account";

            actions.NavItems.Add(account);
            actions.NavItems.Add(store);

            grouping.Add(actions);

            return grouping;
        }
        public List<NavGrouping> CreateAccountControllerNavList()
        {
            List<NavGrouping> navList = new List<NavGrouping>();

            NavGrouping navGrouping = new NavGrouping();
            navGrouping.GroupingHeader = "My Account";

            navGrouping.NavItems = new List<NavItem>();

            NavItem navItem = new NavItem();
            navItem.Destination = "/Account/";
            navItem.DestinationName = "Account Home";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/Account/Orders/";
            navItem.DestinationName = "My Orders";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/Account/Keys/";
            navItem.DestinationName = "My Keys";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/Objectives/MyObjectives/";
            navItem.DestinationName = "My Objectives";
            navGrouping.NavItems.Add(navItem);
            navItem = new NavItem();
            navItem.Destination = "/Account/Logout/";
            navItem.DestinationName = "Logout";
            navGrouping.NavItems.Add(navItem);

            navList.Add(navGrouping);

            return navList;
        }