示例#1
0
 /// <summary>
 /// 유저 리스트를 반환한다.
 /// </summary>
 public UserInfo[] GetUserList(string groupType, string sortBy, PagingOrderBy orderBy)
 {
     using (var repo = new UserRepository())
     {
         return(repo.SelectUserList(groupType, sortBy, orderBy)
                .ToArray());
     }
 }
示例#2
0
        /// <summary>
        /// 유저 리스트를 반환한다.
        /// </summary>
        public IEnumerable <UserInfo> SelectUserList(string groupType, string sortBy, PagingOrderBy orderBy)
        {
            string procCommandName = "up_User_SelectList";

            try
            {
                using (var spParamUserIDList = new DataTable()) // dbo.type_UserIDList
                {
                    var command = Connection.GetStoredProcCommand(procCommandName);
                    Connection.AddInParameter(command, "GroupType", DbType.String, groupType);
                    Connection.AddInParameter(command, "SortBy", DbType.String, sortBy);
                    Connection.AddInParameter(command, "OrderBy", DbType.String, orderBy.ToEnumMemberString());

                    // UserIDs
                    {
                        spParamUserIDList.Columns.Add("UserID", typeof(string));

                        foreach (var userId in UserInfo.AdminAccounts)
                        {
                            spParamUserIDList.Rows.Add(new object[]
                            {
                                userId
                            });
                        }

                        var param = command.Parameters.AddWithValue("SystemUserIDs", spParamUserIDList);
                        param.SqlDbType = SqlDbType.Structured;
                    }

                    using (DataSet ds = Connection.ExecuteDataSet(command))
                    {
                        ValidateTableCount(ds, 1);

                        var result = new List <UserInfo>();

                        // 유저 정보
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            result.Add(UserInfo.ParseFrom(dr));
                        }

                        return(result);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex);
            }
        }