/// <summary> /// 保存微信菜单信息到DB /// </summary> /// <param name="strName"></param> /// <param name="parentCode"></param> /// <param name="strCode"></param> /// <param name="iOrder"></param> /// <param name="btn"></param> /// <param name="strUrl"></param> /// <param name="iAppId"></param> /// <returns></returns> private int SaveMenu(string strName, int parentCode, string strCode, int iOrder, BaseButton btn, string strUrl, int iAppId) { var strType = ""; if (btn is SingleButton) { var button = btn as SingleButton; strType = button.type; switch (button.type) { case "view": strUrl = (btn as SingleViewButton).url; break; case "pic_weixin": default: dynamic dd = button; strCode = dd.key; break; } } var bt = new ButtonReturnType() { ResponseMsgType = "News", Content = "", Button = new MenuButton() { key = strCode, name = strName, type = strType, url = strUrl } }; var entity = new Category() { AppId = iAppId, CategoryCode = strCode, CategoryName = strName, CategoryOrder = iOrder, ParentCode = parentCode, Function = Newtonsoft.Json.JsonConvert.SerializeObject(bt), CategoryDesc = strUrl, IsAdmin = false, IsDeleted = false }; _categoryService.Repository.Insert(entity); return(entity.Id); }
public void Update() { var service = new CategoryService(); var categories = service.Repository.Entities.AsEnumerable().Where(x => x.Id != 57 && !x.Function.IsNullOrEmpty() && x.AppId != 18).ToList(); categories.ForEach(category => { var btn = JsonHelper.FromJson <MenuButton>(category.Function); var buttonReturnType = new ButtonReturnType { Button = btn, Content = null, ResponseMsgType = null }; category.Function = JsonConvert.SerializeObject(buttonReturnType, Formatting.Indented); service.Repository.Update(category); }); Assert.IsTrue(categories.Count > 0); }
private int DoInsertCategory(CategoryButtonView btn, int appId, int order, int parentId = 0) { bool hasChildren = btn.children != null && btn.children.Count > 0; AppMenuView btnView = new AppMenuView(); if (btn.Id != 0) { btnView = (AppMenuView)btnView.ConvertAPIModel(_BaseService.Repository.GetByKey(btn.Id)); } btnView.Id = btn.Id; btnView.AppId = appId; btnView.ParentCode = parentId; btnView.CategoryName = btn.name; btnView.CategoryOrder = order + 1; btnView.CreatedDate = DateTime.Now; btnView.CreatedUserID = User.Identity.Name; ButtonReturnType btnFunc = new ButtonReturnType() { Button = new MenuButton() { name = btn.name, type = hasChildren ? string.Empty : btn.type, url = hasChildren ? string.Empty : btn.url, } }; if ("click".Equals(btnFunc.Button.type)) { var key = btn.key; if (!string.IsNullOrEmpty(btn.key)) { key = btn.key.Split(':')[0]; } btnView.CategoryCode = string.Format("{0}:::{1}", key, btn.name); btnView.CategoryDesc = btnView.CategoryCode; btnFunc.Button.key = btnView.CategoryCode; } else { btnView.CategoryCode = string.Empty; btnView.CategoryDesc = btn.url; } btnView.ButtonReturnType = btnFunc; btnView.Function = JsonHelper.ToJson(btnFunc); if (btnView.Id != 0) { _BaseService.UpdateView(btnView); } else { _BaseService.InsertView(btnView); } //跳转到新闻列表需要后台手动创建url,其本质是view,在同步至微信服务器时转换为view if ("view-news-list".Equals(btn.type)) { btnView.ButtonReturnType.Button.url = CommonService.GetSysConfig("WeChatUrl", "http://wechat.innoprise.cn/").Trim('/') + "/News/ArticleInfo/List?wechatid=" + appId + "&strSubCate=" + btnView.Id; var obj = _menuService.Repository.GetByKey(btnView.Id); obj.Function = JsonHelper.ToJson(btnView.ButtonReturnType); btnView.CategoryDesc = btnView.ButtonReturnType.Button.url; _menuService.Repository.Update(obj, new List <string>() { "Function", "CategoryDesc" }); } return(btnView.Id); }