示例#1
0
文件: Add.ashx.cs 项目: uvbs/mmp
        //更新导航
        public static void UpdateToolbar(string toolbars)
        {
            BLLCompanyWebSite bllToolbar  = new BLLCompanyWebSite();
            List <toolbar>    listToolbar = JsonConvert.DeserializeObject <List <toolbar> >(toolbars);
            List <string>     listType    = new List <string>();

            if (listToolbar.Count > 0)
            {
                listType = listToolbar.Select(p => p.key_type).Distinct().Where(g => !string.IsNullOrWhiteSpace(g) && g != "null").ToList();
            }
            foreach (string type in listType)
            {
                List <toolbar> listTypeToolbar = listToolbar.Where(p => p.key_type == type && p.id >= 0).ToList();
                List <CompanyWebsite_ToolBar> listOldToolbar     = bllToolbar.GetToolBarList(int.MaxValue, 1, bllToolbar.WebsiteOwner, null, type, true, null);
                List <CompanyWebsite_ToolBar> listOldBaseToolbar = bllToolbar.GetToolBarList(int.MaxValue, 1, null, null, type, true, null, true);

                int i = 0;
                List <CompanyWebsite_ToolBar> listPostToolbar = new List <CompanyWebsite_ToolBar>();
                foreach (toolbar item in listTypeToolbar)
                {
                    i++;
                    CompanyWebsite_ToolBar sli = listOldToolbar.FirstOrDefault(p => item.id > 0 && (p.AutoID == item.id || p.BaseID == item.id));
                    if (sli != null)
                    {
                        sli.ToolBarName      = item.title;
                        sli.ImageUrl         = item.img;
                        sli.ToolBarImage     = item.ico;
                        sli.ActBgColor       = item.active_bg_color;
                        sli.BgColor          = item.bg_color;
                        sli.ActColor         = item.active_color;
                        sli.Color            = item.color;
                        sli.IcoColor         = item.ico_color;
                        sli.ActBgImage       = item.active_bg_img;
                        sli.BgImage          = item.bg_img;
                        sli.ToolBarType      = item.type;
                        sli.ToolBarTypeValue = item.url;
                        sli.Stype            = item.s_type;
                        sli.Stext            = item.s_text;
                        sli.Svalue           = item.s_value;
                        sli.PlayIndex        = i;
                        sli.VisibleSet       = item.visible_set;
                        sli.PermissionGroup  = item.permission_group;
                        sli.RightText        = item.right_text;
                        listPostToolbar.Add(sli);
                    }
                    else
                    {
                        CompanyWebsite_ToolBar bli = listOldBaseToolbar.FirstOrDefault(p => p.AutoID == item.id);
                        sli                  = new CompanyWebsite_ToolBar();
                        sli.ToolBarName      = item.title;
                        sli.ImageUrl         = item.img;
                        sli.ToolBarImage     = item.ico;
                        sli.ActBgColor       = item.active_bg_color;
                        sli.BgColor          = item.bg_color;
                        sli.ActColor         = item.active_color;
                        sli.Color            = item.color;
                        sli.IcoColor         = item.ico_color;
                        sli.ActBgImage       = item.active_bg_img;
                        sli.BgImage          = item.bg_img;
                        sli.ToolBarType      = item.type;
                        sli.ToolBarTypeValue = item.url;
                        sli.PlayIndex        = i;
                        sli.WebsiteOwner     = bllToolbar.WebsiteOwner;
                        sli.KeyType          = item.key_type;
                        sli.UseType          = "nav";
                        sli.IsShow           = "1";
                        sli.Stype            = item.s_type;
                        sli.Stext            = item.s_text;
                        sli.Svalue           = item.s_value;
                        if (bli != null)
                        {
                            sli.BaseID   = bli.AutoID;
                            sli.IsSystem = 1;
                        }
                        sli.VisibleSet      = item.visible_set;
                        sli.PermissionGroup = item.permission_group;
                        sli.RightText       = item.right_text;
                        listPostToolbar.Add(sli);
                    }
                }
                List <CompanyWebsite_ToolBar> listAddBaseToolbar = listOldBaseToolbar.Where(p => !listPostToolbar.Exists(pi => pi.BaseID == p.AutoID) && !listOldToolbar.Exists(po => po.BaseID == p.AutoID)).ToList();
                foreach (CompanyWebsite_ToolBar item in listAddBaseToolbar)
                {
                    i++;
                    item.IsShow       = "0";
                    item.BaseID       = item.AutoID;
                    item.AutoID       = 0;
                    item.IsSystem     = 0;
                    item.WebsiteOwner = bllToolbar.WebsiteOwner;
                    item.PlayIndex    = i;
                    listPostToolbar.Add(item);
                }
                List <CompanyWebsite_ToolBar> listDeleteToolbar = listOldToolbar.Where(p => !listPostToolbar.Exists(pi => pi.AutoID == p.AutoID || (pi.AutoID != 0 && pi.BaseID != 0 && pi.BaseID == p.BaseID)) && p.IsShow == "1").ToList();

                foreach (CompanyWebsite_ToolBar item in listDeleteToolbar)
                {
                    CompanyWebsite_ToolBar bli = listOldBaseToolbar.FirstOrDefault(p => p.AutoID == item.BaseID);
                    if (bli != null)
                    {
                        i++;
                        bli.IsShow       = "0";
                        bli.BaseID       = bli.AutoID;
                        bli.AutoID       = 0;
                        bli.IsSystem     = 0;
                        bli.WebsiteOwner = bllToolbar.WebsiteOwner;
                        bli.PlayIndex    = i;
                        listPostToolbar.Add(bli);
                    }
                    bllToolbar.Delete(item);
                }
                foreach (CompanyWebsite_ToolBar item in listPostToolbar)
                {
                    if (item.AutoID == 0)
                    {
                        bllToolbar.Add(item);
                    }
                    else
                    {
                        bllToolbar.Update(item);
                    }
                }
            }
        }