public DUOJU_IDENTIFIERS GenerateIdentifier(IdentifierTypes type, DateTime expiresTime, IList <KeyValuePair <string, string> > settings, int operatorId) { DateTime createTime; string identifierNO; while (true) { createTime = DateTime.Now; identifierNO = string.Format( "{0}{1}", ((int)type).ToString().PadLeft(2, '0'), WeChat.ConvertTimeStamp(createTime) ); if (IdentifierRepository.IsIdentifierNOUnique(identifierNO)) { break; } Thread.Sleep(1); } var identifier = new DUOJU_IDENTIFIERS { IDENTIFIER_TYPE = (int)type, IDENTIFIER_NO = identifierNO, EXPIRES_TIME = expiresTime, STATUS = (int)IdentifierStatuses.NEW, CREATE_BY = operatorId, CREATE_TIME = createTime, LAST_UPDATE_BY = operatorId, LAST_UPDATE_TIME = DateTime.Now }; if (settings != null && settings.Count > 0) { foreach (var setting in settings) { identifier.DUOJU_IDENTIFIER_SETTINGS.Add(new DUOJU_IDENTIFIER_SETTINGS { SETTING_CODE = setting.Key, SETTING_VALUE = setting.Value, CREATE_BY = operatorId, CREATE_TIME = DateTime.Now, LAST_UPDATE_BY = operatorId, LAST_UPDATE_TIME = DateTime.Now }); } } IdentifierRepository.AddIdentifier(identifier); IdentifierRepository.SaveChanges(); return(identifier); }
public ActionResult Index() { var receiveModel = WeChat.ConvertReceiveXML(Request.InputStream); logger.Info(JsonHelper.GetJsonWithModel(receiveModel)); var sendModel = new WeChatSendMessageModel { ToUserName = receiveModel.FromUserName, FromUserName = receiveModel.ToUserName, CreateTime = WeChat.ConvertTimeStamp(DateTime.Now) }; switch (receiveModel.MsgType) { case MsgTypes.TEXT: switch (receiveModel.Content) { case "gm": sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = WeChatHelper.WeChat.GetMenu(); break; case "cm": var menuInfo = new WeChatMenuInfo { button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "开始", sub_button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "发布聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/PublishParty/1", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "使用说明", type = MenuItemTypes.CLICK.ToString().ToLower(), key = "key_instruction" } } }, new WeChatMenuItemInfo { name = "个人", sub_button = new List <WeChatMenuItemInfo> { new WeChatMenuItemInfo { name = "发布的聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/MyParties", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "参与的聚会", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/Party/MyParticipateParties", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "个人财产", type = MenuItemTypes.VIEW.ToString().ToLower(), url = WeChatHelper.WeChat.ConvertOAuthUrl("http://wechat.duoju.us/User/MyFinances", OauthScopes.SNSAPI_BASE, null) }, new WeChatMenuItemInfo { name = "点赞支持", type = MenuItemTypes.CLICK.ToString().ToLower(), key = "key_praise", } } } } }; sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = JsonHelper.GetJsonWithModel(WeChatHelper.WeChat.CreateMenu(menuInfo)); break; //case "dm": // sendModel.MsgType = MsgTypes.TEXT; // sendModel.Content = JsonHelper.GetJsonWithModel(WeChatHelper.WeChat.DeleteMenu()); // break; } break; case MsgTypes.EVENT: switch (receiveModel.Event.Value) { case Events.SUBSCRIBE: logger.WarnFormat("user ({0}) subscribe{1}.", receiveModel.FromUserName, string.IsNullOrEmpty(receiveModel.Ticket) ? null : string.Format(" with ticket ({0})", receiveModel.Ticket) ); try { var subscribeUser = WeChatHelper.WeChat.GetWeChatUserInfo(receiveModel.FromUserName); var userid = UserService.AddWeChatUser(subscribeUser); } catch (Exception ex) { logger.Warn(ex); } sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "欢迎关注!"; break; case Events.SCAN: logger.WarnFormat("user ({0}) scan, ticket: {1}.", receiveModel.FromUserName, receiveModel.Ticket ); break; case Events.UNSUBSCRIBE: logger.WarnFormat("user ({0}) unsubscribe.", receiveModel.FromUserName); UserService.WeChatUserUnsubscribe(receiveModel.FromUserName); break; case Events.CLICK: logger.InfoFormat("user click {0}.", receiveModel.EventKey); switch (receiveModel.EventKey) { case "key_instruction": sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "图片版说明weibo:<a href=\"http://www.weibo.com/\">Go</a>\r\n文字版说明qqweibo:<a href=\"http://t.qq.com/\">Go</a>"; break; case "key_praise": logger.WarnFormat("user ({0}) praise.", receiveModel.FromUserName); sendModel.MsgType = MsgTypes.TEXT; sendModel.Content = "感谢您的支持!"; break; } break; case Events.VIEW: logger.InfoFormat("user view {0}.", receiveModel.EventKey); break; } break; } return(Content(WeChat.ConvertSendXML(sendModel))); }