/// <summary> /// Send a Sign In (I) record to the specified NJE server. /// </summary> public void SignIn() { SignInRecord siRecord = new SignInRecord(); log.InfoFormat("Sending SignIn record"); siRecord.BufferSize = 32768; siRecord.LocalNode = this.ClientNodeID; siRecord.RemoteNode = this.ServerNodeID; this.FCS[0] = 0x8F; this.FCS[1] = 0xCF; SendNJE(NjeClient.ControlRecord, NjeClient.SignInRecord, siRecord.GetBytes()); }
/// <summary> /// 进行签到 /// </summary> /// <param name="record"></param> /// <returns></returns> public ActionResult ToSignin(SignInRecord record) { //签到 string notify; bool result = _signInService.SignIn(record, out notify); if (result) { //签到上墙 var model = _sigInRecordRespository.Get(DbConfig.DbConnStr, record.Id); ScreenTicker.Instance.SendSignInRecordToClient(model); } return(Json(new DataResult() { Status = result, Notify = notify })); }
/// <summary> /// 签到业务 /// </summary> /// <param name="record"></param> /// <param name="notify"></param> /// <returns></returns> public bool SignIn(SignInRecord record, out string notify) { //1.判断是否超出报名限制 var currentActivity = _activityRespository.Get(DbConfig.DbConnStr, record.ActivityId); if (currentActivity == null || currentActivity.Id <= 0) { notify = "不存在当前活动"; return(false); } if (currentActivity.Status == Core.Enum.ActivityStatusEnum.End) { notify = "活动已停止报名"; return(false); } if (currentActivity.SignInNumber >= currentActivity.LimitNumber) { notify = "报名已满"; return(false); } //2.判断是否签到 if (_sigInRecordRespository.CheckSignIn(record.OpenId, record.ActivityId)) { notify = "您已经签到过"; return(false); } //3.签到 record.Id = Guid.NewGuid().ToString("N"); record.CreateTime = DateTime.Now; bool result = _sigInRecordRespository.SignIn(record); if (!result) { notify = "签到失败"; return(true); } notify = "签到成功"; return(true); }
/// <summary> /// 向客户端发签到消息 /// </summary> /// <param name="record"></param> public void SendSignInRecordToClient(SignInRecord record) { string str = JsonHelper.Set(record); Clients.All.sendSignInRecordToClient(str); }