/// <summary> /// 유저 리스트를 반환한다. /// </summary> public UserInfo[] GetUserList(string groupType, string sortBy, PagingOrderBy orderBy) { using (var repo = new UserRepository()) { return(repo.SelectUserList(groupType, sortBy, orderBy) .ToArray()); } }
/// <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); } }