diff --git a/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs b/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs index 19abb0a..ef49892 100644 --- a/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs +++ b/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs @@ -35,22 +35,30 @@ namespace SQLiteRepository _logger.Trace("Initialised SQLite Repository"); } - public UserList GetUsers(int pageNumber = -1, int pageSize = -1) + public UserList GetUsers(int pageNumber = -1, int pageSize = -1, int groupId = -1) { var ret = new UserList(); List users; int userCount; - if (pageNumber == -1 && pageSize == -1) - { - users = _connection.Query(SQLiteProcedures.GET_ALL_USERS); - userCount = users.Count; - } - else + if (pageNumber != -1 && pageSize != -1) { users = _connection.Query(SQLiteProcedures.GET_ALL_USERS_PAGINATE, pageSize, (pageNumber - 1) * pageSize); userCount = _connection.ExecuteScalar(SQLiteProcedures.GET_TOTAL_USER_COUNT); } + else if (groupId != -1) + { + users = + _connection.Query( + "select u.Id, u.FirstName, u.LastName, u.HoursPerWeek, u.IsContractor from UserIdentity u left join UserGroupJoinDb ugj on ugj.UserId_FK = u.Id where ugj.GroupId_FK=?", + groupId); + userCount = users.Count; + } + else + { + users = _connection.Query(SQLiteProcedures.GET_ALL_USERS); + userCount = users.Count; + } if (!users.Any()) { @@ -473,6 +481,22 @@ namespace SQLiteRepository return ret; } + public Group GetGroup(int groupId) + { + var query = _connection.Query("select * from GroupDb where GroupId = ?", groupId); + if (query.Any()) + { + var group = query.First(); + return new Group + { + Id = group.GroupId, + Name = group.GroupName, + UserCount = 0 + }; + } + return new Group(); + } + public OperationResponse UpdateGroup(Group group) { //TODO: I would probably prefer to do this manually....