Example #1
0
 public bool RefreshUserLoginState(string userId, string device = "")
 {
     using (var db = new BC.EnterpriseData.Model.BCEnterpriseContext())
     {
         var _m = db.UserLoginStates.FirstOrDefault(m => m.UserID == userId && (string.IsNullOrEmpty(device) || m.Device == device));
         if (_m != null)
         {
             _m.UpdateTime = DateTime.Now;
         }
         return(db.SaveChanges() > 0);
     }
 }
Example #2
0
 public bool DeleteUserLoginState(string UserID, string Device = "", string reason = "")
 {
     if (string.IsNullOrEmpty(UserID))
     {
         return(false);
     }
     using (var db = new BC.EnterpriseData.Model.BCEnterpriseContext())
     {
         var _m = db.UserLoginStates.Where(m => m.UserID == UserID && (string.IsNullOrEmpty(Device) || m.Device == Device)).FirstOrDefault();
         if (_m != null)
         {
             LoginLogWrite(db, _m, EnterpriseData.Common.LoginStatus.Logout, reason);
             db.UserLoginStates.Remove(_m);
         }
         int i = db.SaveChanges();
         return(i > 0 ? true : false);
     }
 }
Example #3
0
        /// <summary>
        /// 获取一个部门下的所有子部门
        /// </summary>
        /// <param name="DepartmentId">部门id</param>
        /// <param name="db"></param>
        /// <returns></returns>

        public bool DeleteUserLoginState(long UserLoginStateID, string reason = "")
        {
            if (UserLoginStateID <= 0)
            {
                return(false);
            }
            using (var db = new BC.EnterpriseData.Model.BCEnterpriseContext())
            {
                var _m = db.UserLoginStates.Where(m => m.UserLoginStateID == UserLoginStateID).FirstOrDefault();
                if (_m == null)
                {
                    return(true);
                }
                LoginLogWrite(db, _m, EnterpriseData.Common.LoginStatus.Logout, reason);
                db.UserLoginStates.Remove(_m);
                int i = db.SaveChanges();
                return(true);
            }
        }
Example #4
0
        public List <UserLoginStateDto> GetUserLoginStateList(SessionUserDto SNUser, bool ShowAll, string UserName, int pageNumber, int pageSize, out int amount)
        {
            using (var db = new BC.EnterpriseData.Model.BCEnterpriseContext())
            {
                ClearUserLoginState(db);

                string           EnterpriseID = SNUser.EnterpriseID;
                int              DepartmentID = SNUser.DepartmentID == null ? 0 : SNUser.DepartmentID.Value;
                List <FrontUser> FUserList    = new List <FrontUser>();
                List <string>    FUserIds     = new List <string>();
                var              queryfusers  = db.FrontUsers.Where(m => m.EnterpiseID == EnterpriseID);
                if (queryfusers.Count() > 0)
                {
                    FUserList = queryfusers.ToList();//当前企业下的所有用户
                    FUserIds  = FUserList.Select(m => m.UserID).ToList();
                }

                var list = db.UserLoginStates.Where(m => FUserIds.Contains(m.UserID));
                if (!string.IsNullOrEmpty(UserName))
                {
                    list = list.Where(m => m.UserName.Contains(UserName));
                }
                if (ShowAll == false)
                {
                    var        depList   = GetSubDepartmentList(DepartmentID, db);
                    List <int> depIdList = new List <int>();
                    depIdList.Add(DepartmentID);
                    if (depList != null && depList.Count > 0)
                    {
                        depIdList.AddRange(depList.Select(m => m.DepartmentID));//子部门id
                    }

                    var subUsers = FUserList.Where(m => depIdList.Contains(m.DepartmentID.Value));//子部门用户
                    if (subUsers != null && subUsers.Count() > 0)
                    {
                        FUserIds = subUsers.Select(m => m.UserID).ToList();
                        list     = list.Where(m => FUserIds.Contains(m.UserID));
                    }
                    else
                    {
                        amount = 0;
                        return(new List <UserLoginStateDto>());
                    }
                }
                int pagecount;
                amount = list.Count();
                if (pageSize > 0)
                {
                    // 获取总共页数
                    pagecount = (list.Count() + pageSize - 1) / pageSize;
                }
                else
                {
                    pagecount = 0;
                }
                //页码判断,小于1则为1,大于最大页码则为最大页码
                if (pageNumber > pagecount)
                {
                    pageNumber = pagecount;
                }
                if (pageNumber < 1)
                {
                    pageNumber = 1;
                }

                return(list.OrderBy(x => x.UserLoginStateID).Skip(pageSize * (pageNumber - 1)).Take(pageSize).Select(obj => new UserLoginStateDto()
                {
                    UserID = obj.UserID,
                    Device = obj.Device,
                    LoginIP = obj.LoginIP,
                    LoginTime = obj.LoginTime,
                    LoginToken = obj.LoginToken,
                    UserLoginStateID = obj.UserLoginStateID,
                    UserName = obj.UserName
                }).ToList());
            }
        }