From 33f1769d66b378002f173d9480e23645ef5ae268 Mon Sep 17 00:00:00 2001 From: "chris.watts90@outlook.com" Date: Thu, 16 Mar 2017 23:05:52 +0000 Subject: [PATCH] implement sql to get the AssignedUserCounts from the db. change UpdateGroup to convert Group object to GroupDb for database update. #30 --- .../SQLiteRepository/SQLiteRepository.cs | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs b/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs index 19a136a..19abb0a 100644 --- a/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs +++ b/DataCenter_Windows/WindowsDataCenter/SQLiteRepository/SQLiteRepository.cs @@ -442,7 +442,12 @@ namespace SQLiteRepository List query; if (userId == -1) { - query = _connection.Query("select * from GroupDb"); + query = _connection.Query("select gp.GroupId, gp.GroupName, " + + "sum(case when gp.GroupId = ujdb.GroupId_FK then 1 else 0 end) as AssignedUserCount " + + "from GroupDb gp " + + "left join UserGroupJoinDb ujdb " + + "on ujdb.GroupId_FK = gp.GroupId " + + "group by gp.GroupId"); } else { @@ -453,10 +458,7 @@ namespace SQLiteRepository " from GroupDb gdb"+ " left join UserGroupJoinDb ujdb"+ " on gdb.GroupId = ujdb.GroupId_FK"+ - //"left join UserIdentity ui"+ - //"on ujdb.UserId_FK = ui.Id"+ " where ujdb.UserId_FK = ?", - //"select * from GroupDb gdb left join UserGroupJoinDb ujdb on gdb.GroupId=ujdb.GroupId_FK where ujdb.UserId_FK = ?", userId); } foreach (var group in query) @@ -465,7 +467,7 @@ namespace SQLiteRepository { Id=group.GroupId, Name = group.GroupName, - UserCount = 0 + UserCount = int.Parse(group.AssignedUserCount??"0") }); } return ret; @@ -474,7 +476,13 @@ namespace SQLiteRepository public OperationResponse UpdateGroup(Group group) { //TODO: I would probably prefer to do this manually.... - var resp = _connection.Update(group); + var groupDb = new GroupDb + { + GroupId = group.Id, + GroupName = group.Name + }; + var resp = _connection.Query("update GroupDb set GroupName=? where GroupId=?", group.Name, group.Id); + //var resp = _connection.Update(groupDb); return OperationResponse.UPDATED; }