예제 #1
0
        public async Task <ActionResult> CheckInMember([FromRoute] int memberId)
        {
            //  we need to grab the current user
            var currentUserName = User.Identity.Name;
            // get the current user from the database
            var currentUser = _context.Users.FirstOrDefault(u => u.UserName == currentUserName);

            // see if the member exists
            var exists = await _context.Members.AnyAsync(member => member.Id == memberId);

            if (!exists)
            {
                return(NotFound());
            }
            else
            {
                var checkIn = new MemberCheckIn
                {
                    MemberId = memberId,
                    UserId   = currentUser.Id
                };
                await _context.MemberCheckIns.AddAsync(checkIn);

                await _context.SaveChangesAsync();

                return(Ok());
            }
        }
예제 #2
0
        public string CheckIn(EntertainMember entertainMember)
        {
            try {
                string output = "";
                random = new Random();
                int rnum = random.Next(100) + 1;

                DateTime dateNow      = DateTime.Now;
                DateTime startOfToday = DateTime.Now;
                DateTime endOfToday   = DateTime.Now;

                DateTime date  = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 5, 0, 0);
                DateTime today = DateTime.UtcNow.AddHours(8);
                if (today.TimeOfDay < date.TimeOfDay)
                {
                    startOfToday = today.Date.AddHours(-19);
                    endOfToday   = today.Date.AddDays(1).AddTicks(-1).AddHours(-19);
                }
                else
                {
                    startOfToday = today.Date.AddHours(5);
                    endOfToday   = today.Date.AddDays(1).AddTicks(-1).AddHours(5);
                }

                if (entertainMember.checkinList == null)
                {
                    entertainMember.checkinList = new List <MemberCheckIn>();
                }
                MemberCheckIn record = entertainMember.checkinList.Where(s => s.time <= endOfToday && s.time >= startOfToday).FirstOrDefault();

                if (today > entertainMember.subscribedDate)
                {
                    entertainMember.subscribed = false;
                }
                if (record == null)
                {
                    MemberCheckIn newRecord = new MemberCheckIn();
                    newRecord.time      = DateTime.UtcNow.AddHours(8);
                    newRecord.luckPoint = rnum;
                    entertainMember.checkinList.Add(newRecord);
                    entertainMember.gold += 500;
                    output += "\n你已成功签到,获得 500 钻石!";
                    if (entertainMember.subscribed)
                    {
                        entertainMember.gold += 500;
                        output += "\n哦豁,你是尊贵的月卡玩家?额外获得 500 钻石!";
                    }
                }
                else
                {
                    return("\n?你今天签到过了!");
                }
                output += "\n你的钻石余量为 " + entertainMember.gold.ToString();
                LogMemberDetails(entertainMember);
                return(output);
            } catch (Exception e) {
                return("错误!" + e.ToString());
            }
        }
예제 #3
0
        private bool NeedFace(string id)
        {
            if (IsNeedFaceAgain(id))
            {
                return(false);
            }
            MemberCheckIn memberCheckIn = MemberCheckInSingletonService.Instance.membercheckinlist.SingleOrDefault(m => m._id == id);

            return(memberCheckIn.result == "needface");
        }
예제 #4
0
        private bool IsSomeoneWaiting(string id)
        {
            if (IsCheckInAgain(id))
            {
                return(false);
            }
            MemberCheckIn memberCheckIn = MemberCheckInSingletonService.Instance.membercheckinlist.SingleOrDefault(m => m._id == id);

            return((memberCheckIn == null || memberCheckIn.result != "needface") && MemberCheckInSingletonService.Instance.membercheckinlist.Count(m => m.status == CheckInStatus.Waiting && m.needChecked == NeeChecked.Need) > 0);
        }
예제 #5
0
        public string CheckLuckyPoint(EntertainMember entertainMember)
        {
            try
            {
                int      luck         = 0;
                string   output       = "";
                DateTime dateNow      = DateTime.Now;
                DateTime startOfToday = DateTime.Now;
                DateTime endOfToday   = DateTime.Now;

                DateTime date  = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 5, 0, 0);
                DateTime today = DateTime.UtcNow.AddHours(8);
                if (today.TimeOfDay < date.TimeOfDay)
                {
                    startOfToday = today.Date.AddHours(-19);
                    endOfToday   = today.Date.AddDays(1).AddTicks(-1).AddHours(-19);
                }
                else
                {
                    startOfToday = today.Date.AddHours(5);
                    endOfToday   = today.Date.AddDays(1).AddTicks(-1).AddHours(5);
                }
                MemberCheckIn record = entertainMember.checkinList.Where(s => s.time <= endOfToday && s.time >= startOfToday).FirstOrDefault();
                if (record == null)
                {
                    return("\n你害没签到,就想看运势?");
                }
                luck = record.luckPoint;
                if (luck < 2)
                {
                    output = "\n?!见鬼,是大凶兆!!";
                }
                else if (luck < 6)
                {
                    output = "\n你今天的运气似乎卜太星啊,凶!";
                }
                else if (luck < 50)
                {
                    output = "\n运气不错,吉!";
                }
                else if (luck < 90)
                {
                    output = "\n运气很棒,中吉!";
                }
                else if (luck <= 100)
                {
                    output = "\n?!大吉!!是大吉啊!!";
                }
                return(output);
            }
            catch (Exception e)
            {
                return("错误!" + e.ToString());
            }
        }
예제 #6
0
 private void btnMemberLogin_Click(object sender, EventArgs e)
 {
     //input validation
     if (comboBoxMemberLogin.SelectedIndex > -1)
     {
         var member        = (member)comboBoxMemberLogin.SelectedItem;
         var membercheckin = new MemberCheckIn(this, tabControl1, member);
         membercheckin.ShowDialog();
         populateAttendaceList();
         comboBoxMemberLogin.SelectedIndex = -1;
     }
     else
     {
         lblMemberLoginFailed.ForeColor = System.Drawing.Color.Red;
         lblMemberLoginFailed.Text      = "Neispravan unos!";
     }
 }
예제 #7
0
        private async Task BindDataMember()
        {
            this.checkin_address_combox.DataSource = await user.getCheckInAddressList();

            this.checkin_address_combox.DisplayMember = "text";
            this.checkin_address_combox.ValueMember   = "value";

            MemberCheckIn data = await user.getOneMemberById(this.currentID);

            this.weixin_username_txt.Text             = data.nickName;
            this.weixin_number_txt.Text               = data.wechatId;
            this.contact_name_txt.Text                = data.contactName;
            this.contact_telephone_txt.Text           = data.telephone;
            this.checkin_address_combox.SelectedValue = data.locationId;
            this.openId = data.openId;

            this.image_picturebox.Image = await ImageLoader.LoadImage(data.avatarUrl);

            this.base64Str = GetImageBase64(this.image_picturebox.Image);
        }
예제 #8
0
        private void Instance_OnMessage(object sender, CustomEventArgs e)
        {
            Console.WriteLine("Handling SocketService.OnMessage................................");
            Console.WriteLine(JsonConvert.SerializeObject(e.Data));
            //MessageBox.Show(e.Data.op.ToString());
            //this.m_SyncContext.Post((data) =>
            //{
            //    MessageBox.Show(e.Data.op.ToString());
            //}, null);

            this.m_SyncContext.Post((data) =>
            {
                var checkInUrl = GetCheckInLocation()?.url;

                switch (e.Data.op)
                {
                case SocketOp.ACK:
                case SocketOp.PLAIN:
                    this.toolStripProgressBar1.Value      = 0;
                    this.toolStripStatusLabelPercent.Text = "";
                    this.toolStripStatusLabel1.Text       = $"[{e.Data.data.message}]";
                    break;

                case SocketOp.CHECK_IN_CREATED:
                    MemberCheckInSingletonService.createNewMemberCheckInformation(e.Data.data);
                    this.toolStripProgressBar1.Value      = 100;
                    this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                    this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]绑定完成";
                    break;

                case SocketOp.CHECK_IN_STARTED:
                    this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                    this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]开始打卡";
                    break;

                case SocketOp.CHECK_IN_SKIP:
                    if (Mode == CheckInMode.Batch && IsSomeoneWaiting(e.Data.data.id))
                    {
                        this.toolStripProgressBar1.ProgressBar.PerformStep();
                        this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                        this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]跳过";
                        SwitchCheckInMember();
                        var sleepMS = random.Next(lowerTimeSpan, higherTimeSpan);
                        Thread.Sleep(sleepMS);
                        CheckInSingleMember(checkInUrl);
                    }
                    else if (Mode == CheckInMode.Register)
                    {
                        this.toolStripProgressBar1.Value      = 100;
                        this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                        this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]重复绑定";
                    }
                    else if (this.IsWatcher)
                    {
                        this.toolStripProgressBar1.ProgressBar.PerformStep();
                        this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                        this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]跳过";
                    }
                    else
                    {
                        this.toolStripProgressBar1.Value      = 100;
                        this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                        this.toolStripStatusLabel1.Text       = "当前打卡完成";
                    }
                    break;

                case SocketOp.CHECK_IN_UPDATED:
                    Task.Run(async() =>
                    {
                        await MemberCheckInSingletonService.updateMemberCheckInInformation(e.Data.data);
                        if (Mode == CheckInMode.Register)
                        {
                            this.m_SyncContext.Post(context =>
                            {
                                this.toolStripProgressBar1.Value      = 100;
                                this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                                this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]完成注册";
                            }, this);
                        }
                        else if (Mode == CheckInMode.Batch && IsSomeoneWaiting(e.Data.data.id))
                        {
                            this.m_SyncContext.Post(context =>
                            {
                                this.toolStripProgressBar1.PerformStep();
                                this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                                this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]完成打卡";
                            }, this);
                            SwitchCheckInMember();
                            var sleepMS = random.Next(lowerTimeSpan, higherTimeSpan);
                            Thread.Sleep(sleepMS);
                            CheckInSingleMember(checkInUrl);
                        }
                        else if (NeedFace(e.Data.data.id))
                        {
                            this.m_SyncContext.Post(context =>
                            {
                                this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                                this.toolStripStatusLabel1.Text       = $"[{e.Data.data.name}]开始打脸";
                            }, this);

                            if (MemberCheckInSingletonService.Instance.checkedInIds.Contains(e.Data.data.id))
                            {
                                MemberCheckInSingletonService.Instance.checkedInIds.Remove(e.Data.data.id);
                            }
                            MemberCheckIn memberCheckIn = MemberCheckInSingletonService.Instance.membercheckinlist.SingleOrDefault(m => m._id == e.Data.data.id);

                            if (!this.IsWatcher)
                            {
                                MonitorFaceDialog(memberCheckIn.faceList);
                            }
                        }
                        else
                        {
                            this.m_SyncContext.Post(context =>
                            {
                                this.toolStripProgressBar1.Value      = 100;
                                this.toolStripStatusLabelPercent.Text = $"{this.toolStripProgressBar1.Value}%";
                                this.toolStripStatusLabel1.Text       = $"当前打卡完成";
                            }, this);
                        }
                    });
                    break;

                case SocketOp.MEMBER_NEED_CHECK_IN_UPDATED:
                    if (!this.IsWatcher)
                    {
                        // only Watcher need to refresh member list again.
                        RefreshMemberListPassively();
                        return;
                    }
                    break;
                }
            }, this);
        }