Exemplo n.º 1
0
        /// <summary>
        /// 登录操作队列处理
        /// </summary>
        private void LoginQueueWork()
        {
            while (true)
            {
                //出队
                var item = QueueLogin.DeQueue();

                if (null != item)
                {
                    UserLoginRecords records = new UserLoginRecords
                    {
                        AreaID         = item.AreaID,
                        AreaName       = item.AreaName,
                        Latitude       = item.Latitude,
                        LoginTime      = item.LoginTime.ToDateTime(),
                        Longitude      = item.Longitude,
                        RecordID       = IDProvider.NewId(),
                        TerminalDevice = item.TerminalDevice,
                        UserID         = item.UserID
                    };

                    //更新用户信息
                    ServicesProvider.Items.UserService.UpdateLastInfo(item.UserID, item.UserName, item.UserType, item.AreaName, item.LoginTime.ToDateTime());

                    //记录登录操作信息
                    ServicesProvider.Items.UserLoginRecordService.AddRecord(records);
                }

                //避免无数据操作时CPU空转
                Thread.Sleep(100);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 记录登录信息
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        public async Task <int> AddRecord(UserLoginRecords record)
        {
            using (var db = new DbContext())
            {
                db.UserLoginRecords.Add(record);

                return(await db.SaveChangesAsync());
            }
        }