//LongPolling Action 1 - 处理客户端发起的请求 public void LongPollingAsync() { var state = Request["state"]; //计时器,5秒种触发一次Elapsed事件 var timer = new System.Timers.Timer(1000); //告诉ASP.NET接下来将进行一个异步操作 AsyncManager.OutstandingOperations.Increment(); //订阅计时器的Elapsed事件 timer.Elapsed += (sender, e) => { //保存将要传递给LongPollingCompleted的参数 AsyncManager.Parameters["model"] = new LoginLogModel(); if (state != null) { var log = _loginLogService.GetLoginLog(state); if (log != null && log.IsDeleted == false) { //保存将要传递给LongPollingCompleted的参数 AsyncManager.Parameters["model"] = new LoginLogModel { Id = log.Id, CreateTime = log.CreateTime, State = log.State }; } } //告诉ASP.NET异步操作已完成,进行LongPollingCompleted方法的调用 AsyncManager.OutstandingOperations.Decrement(); }; //启动计时器 timer.Start(); }
public object Post(LoginLogModel model) { if (model.WeChatUserModel.OpenId != null) { var wecharuser = _weChatUserService.GetWeChatUser(model.WeChatUserModel.OpenId); if (wecharuser == null) { wecharuser = new WeChatUser { Id = Guid.NewGuid(), OpenId = model.WeChatUserModel.OpenId, NickName = model.WeChatUserModel.NickName, Gender = (Gender)model.WeChatUserModel.Gender, Language = model.WeChatUserModel.Language, City = model.WeChatUserModel.City, Province = model.WeChatUserModel.Province, Headimgurl = model.WeChatUserModel.Headimgurl }; _weChatUserService.Insert(wecharuser); } else { wecharuser.OpenId = model.WeChatUserModel.OpenId; wecharuser.NickName = model.WeChatUserModel.NickName; wecharuser.Gender = (Gender)model.WeChatUserModel.Gender; wecharuser.Language = model.WeChatUserModel.Language; wecharuser.City = model.WeChatUserModel.City; wecharuser.Province = model.WeChatUserModel.Province; wecharuser.Headimgurl = model.WeChatUserModel.Headimgurl; _weChatUserService.Update(); } var loginLogId = Guid.NewGuid(); if (_loginLogService.GetLoginLog(model.State) == null) { _loginLogService.Insert(new LoginLog { Id = loginLogId, State = model.State, CreateTime = DateTime.Now, WeChatUser_Id = wecharuser.Id }); model.CreateTime = DateTime.Now; model.Id = loginLogId; } return(model); } return(null); }