add code in to handle group filtering.

if a groupId is present, then get the user list by the group Id.
#64
This commit is contained in:
chris.watts90@outlook.com 2017-03-17 23:53:02 +00:00
parent 290cad75c5
commit eb239d0458

View File

@ -27,13 +27,20 @@ namespace WindowsDataCenter
[HttpGet] [HttpGet]
[Route("")] [Route("")]
[CacheControl(MaxAge = 0)] [CacheControl(MaxAge = 0)]
public IHttpActionResult GetUsers([FromUri] string query = "",[FromUri] int pageSize = -1, [FromUri] int pageNumber =-1) public IHttpActionResult GetUsers([FromUri] string query = ""
, [FromUri] int pageSize = -1
, [FromUri] int pageNumber = -1
, [FromUri] int groupId = -1)
{ {
_logger.Trace("GetUsers called with arguments >> query: {0}, pageSize: {1}, pageNumber: {2}", query, pageSize, pageNumber); _logger.Trace("GetUsers called with arguments >> query: {0}, pageSize: {1}, pageNumber: {2}, groupFilter: {3}", query, pageSize, pageNumber, groupId);
pageNumber = pageNumber == -1 ? 1 : pageNumber; pageNumber = pageNumber == -1 ? 1 : pageNumber;
pageSize = GetPageSize(pageSize); pageSize = GetPageSize(pageSize);
var userList = query == string.Empty ? _repo.GetUsers(pageNumber, pageSize) : _repo.Search(query); var userList = query != string.Empty
? _repo.Search(query)
: groupId != -1
? _repo.GetUsers(groupId: groupId)
: _repo.GetUsers(pageNumber, pageSize);
_logger.Trace("Got UserList from Repository, UserCount: {0}", userList.UserCount); _logger.Trace("Got UserList from Repository, UserCount: {0}", userList.UserCount);
if (query != string.Empty) if (query != string.Empty)
{ {
@ -43,6 +50,10 @@ namespace WindowsDataCenter
} }
else else
userList.Query = null; userList.Query = null;
if (groupId != -1)
{
userList.GroupFilter = _repo.GetGroup(groupId);
}
userList.PageNumber = pageNumber; userList.PageNumber = pageNumber;
userList.PageSize = pageSize; userList.PageSize = pageSize;