/// <summary> /// Event事件类型请求之CLICK /// </summary> public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { log.Debug("Entering Event事件类型请求之CLICK - " + requestMessage.EventKey); string errorMessage; if (!SmartphoneMenuPermissionManager.PermissionCheck(requestMessage.EventKey, requestMessage.FromUserName, requestMessage.AgentID, out errorMessage)) { return(NoPermissionResponse(errorMessage)); } // 记录用户行为 _wr.CallUserBehavior(requestMessage.EventKey, requestMessage.FromUserName, requestMessage.AgentID.ToString(CultureInfo.InvariantCulture), "", "", 4); var objConfig = WeChatCommonService.GetWeChatConfig(requestMessage.AgentID); switch (requestMessage.AgentID) { default: { LogManager.GetLogger(this.GetType()).Debug("Entering default2"); var menu = Infrastructure.Web.Domain.Service.CommonService.lstCategory.FirstOrDefault(a => a.CategoryCode == requestMessage.EventKey); if (menu == null) { return(null); } LogManager.GetLogger(this.GetType()).Debug("menu is ready"); AppMenuView appMenu = new AppMenuView(); appMenu.ButtonReturnType = JsonHelper.FromJson <ButtonReturnType>(menu.Function); if (appMenu == null || appMenu.ButtonReturnType == null || string.IsNullOrEmpty(appMenu.ButtonReturnType.ResponseMsgType)) { LogManager.GetLogger(this.GetType()).Debug("appMenu parsed is NULL"); return(null); } switch (appMenu.ButtonReturnType.ResponseMsgType.ToLower()) { case "text": var textMessage = this.CreateResponseMessage <ResponseMessageText>(); LogManager.GetLogger(this.GetType()).Debug("appMenu.ButtonReturnType = " + appMenu.ButtonReturnType); LogManager.GetLogger(this.GetType()).Debug("appMenu.ButtonReturnType.Content = " + appMenu.ButtonReturnType.Content); textMessage.Content = appMenu.ButtonReturnType.Content; return(textMessage); case "news": LogManager.GetLogger(this.GetType()).Debug("appMenu.ButtonReturnType.NewsPushNumber= " + appMenu.ButtonReturnType.NewsPushNumber); var articles = (appMenu.ButtonReturnType.NewsPushNumber != null && appMenu.ButtonReturnType.NewsPushNumber != 0) ? GetPushArticles(requestMessage.EventKey, appMenu.ButtonReturnType.NewsPushNumber) : GetPushArticles(requestMessage.EventKey); return(CreateResponse(articles, objConfig.WXHost, "/News/ArticleInfo/wxdetail/")); } break; } } return(DefaultResponseMessage(requestMessage)); }
public int UpdateOrAdd(AppMenuView menu) { menu.Function = menu.ButtonReturnType == null ? null : JsonHelper.ToJson(menu.ButtonReturnType); //menu.Role = menu.SelecTagItems == null || menu.SelecTagItems.Count == 0 // ? null // : menu.SelecTagItems.Select(x => x.tagname).Join(","); var count = 0; if (!menu.ParentCode.HasValue) { menu.ParentCode = 0; } if (menu.Id == 0) { count = base.InsertView((CategoryView)menu); } else { //删除菜单 if (menu.IsDeleted.HasValue && menu.IsDeleted.Value) { var menuGroup = CommonService.lstCategory.Where(x => x.ParentCode == menu.Id || x.Id == menu.Id).ToList(); using ( var transactionscope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.RepeatableRead })) { menuGroup.ForEach(x => { x.IsDeleted = true; Repository.Update(x); }); transactionscope.Complete(); } } else { count = base.UpdateView((CategoryView)menu, new List <string> { "CategoryCode", "AppId", "CategoryName", "CategoryDesc", "ParentCode", "IsAdmin", "CategoryOrder", "Function", "NoRoleMessage", "Role" }); } } CommonService.RemoveCategoryFromCache(); return(count); }