Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
        /// <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
            }));
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 向客户端发签到消息
        /// </summary>
        /// <param name="record"></param>
        public void SendSignInRecordToClient(SignInRecord record)
        {
            string str = JsonHelper.Set(record);

            Clients.All.sendSignInRecordToClient(str);
        }