public ActionResult UserList(UserQueryParameter para)
        {
            para.IsPage = true;
            var data = _iUserBll.GetUserListbyParameter(para);

            return(View(data));
        }
        public ResourceWrapper GetUsers(UserQueryParameter queryParameter)
        {
            string orderBy      = GetOrderBy(queryParameter);
            var    totalRecords = new SqlParameter("@TotalRecords", System.Data.SqlDbType.Int);

            totalRecords.Direction = System.Data.ParameterDirection.Output;

            string sqlQuery = @"EXEC ADMIN.GET_USER_RIGHT @Query=@Query, 
                                                            @Start=@Start, 
                                                            @DarId=@DarId, 
                                                            @Limit=@Limit, 
                                                            @Order=@Order, 
                                                            @TotalRecords=@TotalRecords OUT";

            var result = SqlQuery <UserRightDto>(sqlQuery, new object[] {
                new SqlParameter("@Query", queryParameter.query ?? string.Empty),
                new SqlParameter("@Start", queryParameter.start),
                new SqlParameter("@Limit", queryParameter.limit),
                new SqlParameter("@Order", orderBy),
                new SqlParameter("@DarId", queryParameter.DarId),
                totalRecords
            });

            ResourceWrapper wrapper = new ResourceWrapper();

            wrapper.Page         = queryParameter.page;
            wrapper.Size         = queryParameter.limit;
            wrapper.Records      = result;
            wrapper.TotalRecords = (int)totalRecords.Value;

            return(wrapper);
        }
Exemple #3
0
        /// <summary>
        /// login
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public ReturnResponse <User> Login(User user)
        {
            var response = new ReturnResponse <User>();
            var para     = new UserQueryParameter()
            {
                UserName = user.UserName, UserPWD = user.UserPWD.Md5Compute32(), Take = 1, IsPage = false
            };
            var res = GetUserListbyParameter(para);

            if (res.IsSuccess && res.Body.Items.Any())
            {
                response.Body = res.Body.Items.FirstOrDefault();
                if (response.Body != null && response.Body.DataStatus == 1)
                {
                    response.ResponseCode = 403;
                    response.Message      = "user has been forbidden";
                }
                else
                {
                    response.ResponseCode = 1;
                    response.Message      = "login success";
                }
            }
            else
            {
                response.ResponseCode = 400;
                response.Message      = "user name or password error";
            }
            return(response);
        }
Exemple #4
0
        /// <summary>
        /// 根据指定的查询参数查询用户句柄。
        /// </summary>
        /// <param name="query">查询参数。</param>
        /// <returns>一个包含了所有满足查询条件的用户句柄的查询结果对象。</returns>
        /// <exception cref="ArgumentNullException"/>
        public ReadOnlyCollection <UserHandle> QueryUsers(UserQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }
            if (query.QueryByOrganization && query.Organization == null)
            {
                throw new ArgumentNullException(nameof(query.Organization));
            }

            bool hasQuery = query.QueryByOrganization || query.QueryByUsergroup;

            if (!hasQuery)
            {
                // 没有查询参数。返回空列表。
                return(new ReadOnlyCollection <UserHandle>(new List <UserHandle>()));
            }
            else
            {
                return(m_factory.WithContext(context =>
                {
                    IQueryable <UserProfileEntity> profiles = context.GetAllUserProfiles();
                    if (query.QueryByOrganization)
                    {
                        profiles = UserDataContext.QueryUserProfileEntitiesByOrganization(profiles, query.Organization);
                    }
                    if (query.QueryBySex)
                    {
                        profiles = UserDataContext.QueryUserProfileEntitiesBySex(profiles, (NativeUserSex)query.Sex);
                    }
                    if (query.QueryByUsergroup)
                    {
                        profiles = UserDataContext.QueryUserProfileEntitiesByUsergroup(profiles,
                                                                                       (NativeUserGroup)query.UserGroup);
                    }

                    // 对查询结果进行排序以准备随时分页。
                    profiles.OrderBy(item => item.Username);

                    if (query.EnablePageQuery)
                    {
                        profiles = profiles.Page(query.PageQuery);
                    }

                    List <UserHandle> handles = new List <UserHandle>();
                    foreach (UserProfileEntity ent in profiles)
                    {
                        handles.Add(UserHandle.FromUserProfileEntity(ent));
                    }

                    return new ReadOnlyCollection <UserHandle>(handles);
                }));
            }
        }
Exemple #5
0
        /// <summary>
        /// 获取查询结果
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public Pager <User> QueryUsersByParameter(UserQueryParameter para)
        {
            var dataList = new Lazy <Pager <User> >();
            var sqlText  = new StringBuilder();

            #region sql
            sqlText.Append(
                @"SELECT  [Id]
                  ,[UserName]
                  ,[UserPWD]
                  ,[Email]
                  ,[CreateDateTime]   
                  ,[Mobile] FROM [USER]  WHERE 1 = 1  ");
            var conditions = para.GenerateByOperate(GenerateOperate.Condition); //string.Empty.GenerateCondition(para);
            sqlText.Append(conditions);
            sqlText.Append(" ORDER BY Id DESC  OFFSET  ");
            sqlText.Append(((para.Skip) * para.Take).ToString());
            sqlText.Append(" ROWS  FETCH NEXT ");
            sqlText.Append(para.Take.ToString());
            sqlText.Append(" ROWS ONLY;");
            if (para.IsPage)
            {
                sqlText.Append(" SELECT  COUNT(1) AS Total ,CEILING((COUNT(1)+0.0)/")
                .Append(para.Take.ToString())
                .Append(") AS Pages FROM [USER] WHERE 1 =1  ")
                .Append(conditions + ";");
            }
            #endregion
            using (IDbConnection conn = SqlServerDB.GetSqlConnection())
            {
                var grid = conn.QueryMultiple(sqlText.ToString(), para);
                dataList.Value.Items = grid.Read <User>().ToArray();
                if (para.IsPage)
                {
                    var pageInfo = grid.Read().FirstOrDefault();
                    if (pageInfo == null)
                    {
                        return(dataList.Value);
                    }
                    dataList.Value.Total = (int)pageInfo.Total;
                    dataList.Value.Pages = (int)pageInfo.Pages;
                }
                else
                {
                    return(dataList.Value);
                }
            }

            return(dataList.Value);
        }
        public async Task <IPaged <User> > PagedAsync(UserQueryParameter param, int pageIndex, int pageSize)
        {
            Expression <Func <User, bool> > query = null;

            if (param != null && !string.IsNullOrWhiteSpace(param.Key))
            {
                query = e => e.Username.Contains(param.Key) || e.Email.Contains(param.Key) || e.Mobile.Contains(param.Key) || e.RealName.Contains(param.Key);
            }
            else
            {
                query = e => true;
            }

            var result = await base.PagedAsync(query, pageIndex, pageSize);

            return(result);
        }
        public async Task <List <User> > SelectAsync(UserQueryParameter param)
        {
            Expression <Func <User, bool> > query = null;

            if (param != null && !string.IsNullOrWhiteSpace(param.Key))
            {
                query = e => e.Username.Contains(param.Key) || e.Email.Contains(param.Key) || e.Mobile.Contains(param.Key) || e.RealName.Contains(param.Key);
            }
            else
            {
                query = e => true;
            }

            var list = (await base.SelectAsync(query)).ToList();

            return(list);
        }
        public string GetOrderBy(UserQueryParameter queryParameter)
        {
            string order = string.Empty;

            var sorts = queryParameter.GetSorts();

            if (sorts == null || sorts.Count() == 0)
            {
                return(string.Empty);
            }

            sorts.Each((p) => {
                order += string.Format("{0} {1},", p.Property, p.Direction);
            });

            if (order.Length > 0)
            {
                order = order.Substring(0, order.Length - 1);
            }

            return(string.Format("ORDER BY {0}", order));
        }
Exemple #9
0
        public ReturnResponse <Pager <User> > GetUserListbyParameter(UserQueryParameter para)
        {
            para.Take = para.PageSize;
            return(new ReturnResponse <Pager <User> >
            {
                Body = _iUserDal.QueryUsersByParameter(para),
                ResponseCode = 1,
                Message = "Success"
            });

            #region get from redis

            //if (para != null && !para.IsLogin)
            //    using (var client = RedisManager.GetClient())
            //    {
            //        var dataList = client.Get<Pager<User>>("UsersDataPager_" + para.PageIndex);
            //        if (dataList != null && dataList.Items.Any())
            //        {
            //            response.Body = dataList;
            //            response.ResponseCode = 1;
            //            response.Message = "Success";
            //            return response;
            //        }
            //    }

            #endregion

            //_IContainer.Resolve<IUserDAL>().QueryUsersByParameter(para);

            #region set redis

            //if (para != null && !para.IsLogin)
            //    using (var redisClient = RedisManager.GetClient())
            //    {
            //        redisClient.Set("UsersDataPager_" + para.PageIndex, data);
            //    }

            #endregion
        }
Exemple #10
0
        public async void LoginAsync(User user)
        {
            Func <Task <ReturnResponse <User> > > taskFunc = () =>
            {
                return(Task.Run(() =>
                {
                    var response = new ReturnResponse <User>();
                    var paras = new UserQueryParameter()
                    {
                        UserName = user.UserName, UserPWD = user.UserPWD.Md5Compute32()
                    };
                    var res = GetUserListbyParameter(paras);
                    if (res.IsSuccess && res.Body.Items.Any())
                    {
                        response.Body = res.Body.Items.FirstOrDefault();
                        if (response.Body != null && response.Body.DataStatus == 1)
                        {
                            response.ResponseCode = 403;
                            response.Message = "user has been forbidden";
                        }
                        else
                        {
                            response.ResponseCode = 1;
                            response.Message = "login success";
                        }
                    }
                    else
                    {
                        response.ResponseCode = 400;
                        response.Message = "user name or password error";
                    }
                    return response;
                }));
            };

            await taskFunc();
        }
Exemple #11
0
 public ResourceWrapper GetUsers(UserQueryParameter queryParameter)
 {
     return(_Repository.GetUsers(queryParameter));
 }
Exemple #12
0
 public async void LoginAsync(User user)
 {
     Func<Task<ReturnResponse<User>>> taskFunc = () =>
     {
         return Task.Run(() =>
             {
                 var response = new ReturnResponse<User>();
                 var paras = new UserQueryParameter() { UserName = user.UserName, UserPWD = user.UserPWD.Md5Compute32() };
                 var res = GetUserListbyParameter(paras);
                 if (res.IsSuccess && res.Body.Items.Any())
                 {
                     response.Body = res.Body.Items.FirstOrDefault();
                     if (response.Body != null && response.Body.DataStatus == 1)
                     {
                         response.ResponseCode = 403;
                         response.Message = "user has been forbidden";
                     }
                     else
                     {
                         response.ResponseCode = 1;
                         response.Message = "login success";
                     }
                 }
                 else
                 {
                     response.ResponseCode = 400;
                     response.Message = "user name or password error";
                 }
                 return response;
             });
     };
     await taskFunc();
 }
Exemple #13
0
 public IHttpActionResult GetUsers([FromUri] UserQueryParameter queryParameter)
 {
     return(Ok(_Service.GetUsers(queryParameter)));
 }
Exemple #14
0
        public ReturnResponse<Pager<User>> GetUserListbyParameter(UserQueryParameter para)
        {
            para.Take = para.PageSize;
            return new ReturnResponse<Pager<User>>
            {
                Body = _iUserDal.QueryUsersByParameter(para),
                ResponseCode = 1,
                Message = "Success"
            };

            #region get from redis

            //if (para != null && !para.IsLogin)
            //    using (var client = RedisManager.GetClient())
            //    {
            //        var dataList = client.Get<Pager<User>>("UsersDataPager_" + para.PageIndex);
            //        if (dataList != null && dataList.Items.Any())
            //        {
            //            response.Body = dataList;
            //            response.ResponseCode = 1;
            //            response.Message = "Success";
            //            return response;
            //        }
            //    }

            #endregion

            //_IContainer.Resolve<IUserDAL>().QueryUsersByParameter(para);

            #region set redis

            //if (para != null && !para.IsLogin)
            //    using (var redisClient = RedisManager.GetClient())
            //    {
            //        redisClient.Set("UsersDataPager_" + para.PageIndex, data);
            //    }

            #endregion

        }
        /// <summary>
        /// 根据指定的查询参数查询用户句柄。
        /// </summary>
        /// <param name="query">查询参数。</param>
        /// <returns>一个列表,列表中包含了所有满足查询条件的用户句柄。</returns>
        /// <exception cref="ArgumentNullException"/>
        public IList <UserHandle> QueryUsers(UserQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }
            if (query.QueryByUsername && query.Username == null)
            {
                throw new ArgumentNullException(nameof(query.Username));
            }
            if (query.QueryByOrganization && query.Organization == null)
            {
                throw new ArgumentNullException(nameof(query.Organization));
            }

            if (query.QueryByUsername)
            {
                // 从用户名开始查找。
                // 由于满足条件的实体对象至多一个,做特殊化处理。
                UserProfileEntity profile = m_context.QueryUserProfileEntity(query.Username);
                if (profile == null)
                {
                    // 未找到符合要求的实体对象。
                    return(new List <UserHandle>());
                }
                else
                {
                    // 检查其他条件是否满足。
                    if (query.QueryByOrganization && string.Compare(query.Organization, profile.Organization, false) != 0)
                    {
                        return(new List <UserHandle>());
                    }

                    if (query.QueryByUsergroup && profile.UserGroup != (NativeUserGroup)query.UserGroup)
                    {
                        return(new List <UserHandle>());
                    }

                    // 唯一的用户信息实体对象满足条件。
                    return(new List <UserHandle>()
                    {
                        UserHandle.FromUserProfileEntity(profile)
                    });
                }
            }
            else    // query.QueryByUsername == false
            {
                bool hasQuery = query.QueryByOrganization || query.QueryByUsergroup;
                if (!hasQuery)
                {
                    // 没有查询参数。返回空列表。
                    return(new List <UserHandle>());
                }
                else
                {
                    IQueryable <UserProfileEntity> profiles = m_context.GetAllUserProfiles();
                    if (query.QueryByOrganization)
                    {
                        profiles = UserDataContext.QueryUserProfileEntitiesByOrganization(profiles, query.Organization);
                    }
                    if (query.QueryByUsergroup)
                    {
                        profiles = UserDataContext.QueryUserProfileEntitiesByUsergroup(profiles,
                                                                                       (NativeUserGroup)query.UserGroup);
                    }

                    List <UserHandle> handles = new List <UserHandle>();
                    foreach (UserProfileEntity entity in profiles)
                    {
                        handles.Add(UserHandle.FromUserProfileEntity(entity));
                    }

                    return(handles);
                }
            }
        }
Exemple #16
0
 public FakeUser RetrieveAlone(UserQueryParameter param)
 {
     throw new NotImplementedException();
 }
Exemple #17
0
 /// <summary>
 /// login
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public ReturnResponse<User> Login(User user)
 {
     var response = new ReturnResponse<User>();
     var para = new UserQueryParameter() { UserName = user.UserName, UserPWD = user.UserPWD.Md5Compute32(), Take = 1, IsPage = false };
     var res = GetUserListbyParameter(para);
     if (res.IsSuccess && res.Body.Items.Any())
     {
         response.Body = res.Body.Items.FirstOrDefault();
         if (response.Body != null && response.Body.DataStatus == 1)
         {
             response.ResponseCode = 403;
             response.Message = "user has been forbidden";
         }
         else
         {
             response.ResponseCode = 1;
             response.Message = "login success";
         }
     }
     else
     {
         response.ResponseCode = 400;
         response.Message = "user name or password error";
     }
     return response;
 }