public ActionResult Index()
        {
            List <Models.OurMenu> OurMenus = Helpers.MenuHelper.GetMenus();

            ASPNETMVCNavigationMenu.Models.MenuModel menuModel = new Models.MenuModel();
            menuModel.menus = OurMenus;

            return(View("Index", menuModel));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获得父级菜单的子节点
        /// </summary>
        /// <param name="model"></param>
        /// <param name="source"></param>
        /// <returns></returns>
        private Models.MenuModel GetMenusChildsTreeData(Models.MenuModel model, List <Models.MenuModel> source)
        {
            var childs = source.Where(s => s.ParentId == model.Id);

            if (childs.Count() > 0)
            {
                model.Children = new List <Models.MenuModel>();
                childs.Each(t =>
                {
                    t.Level = model.Level + 1;
                    model.Children.Add(GetMenusChildsTreeData(t, source));
                });
            }
            return(model);
        }
Ejemplo n.º 3
0
		public ActionResult Menu()
		{
			Models.MenuModel options = new Models.MenuModel();
			
			return View(options);
		}
        public ActionResult AddNewMenu(FormCollection frmc)
        {
            List <string> firstLevelArray = new List <string>();

            //iterate through all keys
            int linkOrderFirstRow  = 0;
            int linkOrderSecondRow = 0;

            int linkorderInlineListSecondRow = 1;

            //grid no margin isnerted scope identity
            string newlyInsertedGridNoMarginFirstRowID = "";

            //inline list inserted scope identity
            string newlyInsertedInlineListFirstRowID  = "";
            string newlyInsertedInlineListSecondRowID = "";

            string newlyInsertedGridNoMarginSecondRowTitle = "";
            string newlyInsertedGridNoMarginLinkWithText   = "";


            int inintlistfirstrowcounter = 0;

            for (int firstLevel = 0; firstLevel < frmc.Keys.Count; firstLevel++)
            {
                if (frmc.Keys[firstLevel].ToString().Contains("grid-no-margin-first-row-text"))
                {
                    //compose SQL insert first row menu item
                    string SQL = "INSERT INTO[dbo].[NavigationMenu]([LinkLevel],[Linktype],[ParentLink],[LinkOrder],[LinkText],[HasChildren],[Class]) VALUES(1,'LINK',0," + linkOrderFirstRow + ",'" + frmc[firstLevel].ToString() + "','True','4|grid no-margin'); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]";


                    //Insert new first level
                    using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
                    {
                        using (var dbcm = new SqlCommand(SQL, dbconn))
                        {
                            dbconn.Open();
                            newlyInsertedGridNoMarginFirstRowID = dbcm.ExecuteScalar().ToString();
                        }
                    }
                }
                if (frmc.Keys[firstLevel].ToString().Contains("grid-no-margin-second-row-header-title"))
                {
                    //compose SQL insert second row title
                    string SQL = "INSERT INTO[dbo].[NavigationMenu]([LinkLevel],[Linktype],[ParentLink],[LinkOrder],[LinkText],[HasChildren],[Class]) VALUES(2,'TITLE'," + newlyInsertedGridNoMarginFirstRowID + "," + linkOrderFirstRow + ",'" + frmc[firstLevel].ToString() + "','True','text-shadow'); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]";


                    //Insert second tow title
                    using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
                    {
                        using (var dbcm = new SqlCommand(SQL, dbconn))
                        {
                            dbconn.Open();
                            newlyInsertedGridNoMarginSecondRowTitle = dbcm.ExecuteScalar().ToString();
                        }
                    }
                }
                if (frmc.Keys[firstLevel].ToString().Contains("linkGridNoMarginTEXT") && frmc.Keys[firstLevel + 1].ToString().Contains("linkGridNoMarginLINK"))
                {
                    var temp = frmc[firstLevel + 1].ToString();

                    //compose SQL insert second row title
                    string SQL = "INSERT INTO[dbo].[NavigationMenu]([LinkLevel],[Linktype],[ParentLink],[LinkOrder],[LinkText],[HasChildren],[Class]) VALUES(2,'" + frmc[firstLevel + 1].ToString() + "'," + newlyInsertedGridNoMarginFirstRowID + "," + linkOrderFirstRow + ",'" + frmc[firstLevel].ToString() + "','True','#'); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]";


                    //Insert second tow title
                    using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
                    {
                        using (var dbcm = new SqlCommand(SQL, dbconn))
                        {
                            dbconn.Open();
                            newlyInsertedGridNoMarginLinkWithText = dbcm.ExecuteScalar().ToString();
                        }
                    }
                }

                ////////////////////////////////////////  INLINE LIST GENERATION  /////////////////////////////////////////


                if (frmc.Keys[firstLevel].ToString().Contains("inline-list-first-row-text"))
                {
                    inintlistfirstrowcounter = inintlistfirstrowcounter + 1;

                    //compose SQL insert first row menu item
                    string SQL = "INSERT INTO[dbo].[NavigationMenu]([LinkLevel],[Linktype],[ParentLink],[LinkOrder],[LinkText],[HasChildren],[Class]) VALUES(1,'LINK',0," + linkOrderFirstRow + ",'" + frmc[firstLevel].ToString() + "','True','0|inline-list'); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]";
                    linkOrderFirstRow = linkOrderFirstRow + 1;

                    //Insert new first level
                    using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
                    {
                        using (var dbcm = new SqlCommand(SQL, dbconn))
                        {
                            dbconn.Open();
                            newlyInsertedInlineListFirstRowID = dbcm.ExecuteScalar().ToString();
                        }
                    }
                }



                if (frmc.Keys[firstLevel].ToString().Contains("linkInlineSecondRowListTEXT") && frmc.Keys[firstLevel + 1].ToString().Contains("linkInlineSecondRowListLINK"))
                {
                    if (inintlistfirstrowcounter > 1)
                    {
                        inintlistfirstrowcounter     = 0;
                        linkorderInlineListSecondRow = 0;
                    }

                    //compose SQL insert first row menu item
                    string SQL = "INSERT INTO[dbo].[NavigationMenu]([LinkLevel],[Linktype],[ParentLink],[LinkOrder],[LinkText],[HasChildren],[Class]) VALUES(2,'" + frmc[firstLevel + 1].ToString() + "'," + newlyInsertedInlineListFirstRowID + "," + linkorderInlineListSecondRow + ",'" + frmc[firstLevel].ToString() + "','True','#'); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]";

                    linkorderInlineListSecondRow = linkorderInlineListSecondRow + 1;

                    //Insert new first level
                    using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
                    {
                        using (var dbcm = new SqlCommand(SQL, dbconn))
                        {
                            dbconn.Open();
                            newlyInsertedInlineListSecondRowID = dbcm.ExecuteScalar().ToString();
                        }
                    }
                }
            }
            using (var dbconn = new SqlConnection("data source=(localdb)\\LocalInstance;initial catalog=NavMenuDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"))
            {
                dbconn.Open();
                using (DbDataAdapter adapter = new SqlDataAdapter())
                {
                    adapter.SelectCommand             = dbconn.CreateCommand();
                    adapter.SelectCommand.CommandText = "SELECT * FROM [NavigationMenu]";
                    DataTable table = new DataTable();
                    adapter.Fill(table);

                    int pkid        = 0;
                    int tempCounter = 0;
                    for (int row = 0; row < table.Rows.Count; row++)
                    {
                        if (table.Rows[row]["Class"].ToString().Contains("inline-list"))
                        {
                            pkid = Convert.ToInt32(table.Rows[row]["LinkId"]);
                            var sids = (from t in table.AsEnumerable()
                                        where t.Field <Int64>("ParentLink") == pkid
                                        select t).ToList();
                            tempCounter = sids.Count();

                            string SQLUpdate = "UPDATE [NavMenuDB].[dbo].[NavigationMenu] SET Class = '" + tempCounter + "|inline-list' WHERE LinkId = " + pkid.ToString() + "";
                            using (var dbcm = new SqlCommand(SQLUpdate, dbconn))
                            {
                                int e = dbcm.ExecuteNonQuery();
                            }
                        }
                    }
                }
                dbconn.Close();
            }

            List <Models.OurMenu> OurMenus = Helpers.MenuHelper.GetMenus();

            ASPNETMVCNavigationMenu.Models.MenuModel menuModel = new Models.MenuModel();
            menuModel.menus = OurMenus;

            return(View("Index", menuModel));
        }