//更新导航 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); } } } }