implement sql to get the AssignedUserCounts from the db.

change UpdateGroup to convert Group object to GroupDb for database update.
#30
This commit is contained in:
chris.watts90@outlook.com 2017-03-16 23:05:52 +00:00
parent 7564127c18
commit 33f1769d66

View File

@ -442,7 +442,12 @@ namespace SQLiteRepository
List<GroupDb> query; List<GroupDb> query;
if (userId == -1) if (userId == -1)
{ {
query = _connection.Query<GroupDb>("select * from GroupDb"); query = _connection.Query<GroupDb>("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 else
{ {
@ -453,10 +458,7 @@ namespace SQLiteRepository
" from GroupDb gdb"+ " from GroupDb gdb"+
" left join UserGroupJoinDb ujdb"+ " left join UserGroupJoinDb ujdb"+
" on gdb.GroupId = ujdb.GroupId_FK"+ " on gdb.GroupId = ujdb.GroupId_FK"+
//"left join UserIdentity ui"+
//"on ujdb.UserId_FK = ui.Id"+
" where ujdb.UserId_FK = ?", " where ujdb.UserId_FK = ?",
//"select * from GroupDb gdb left join UserGroupJoinDb ujdb on gdb.GroupId=ujdb.GroupId_FK where ujdb.UserId_FK = ?",
userId); userId);
} }
foreach (var group in query) foreach (var group in query)
@ -465,7 +467,7 @@ namespace SQLiteRepository
{ {
Id=group.GroupId, Id=group.GroupId,
Name = group.GroupName, Name = group.GroupName,
UserCount = 0 UserCount = int.Parse(group.AssignedUserCount??"0")
}); });
} }
return ret; return ret;
@ -474,7 +476,13 @@ namespace SQLiteRepository
public OperationResponse UpdateGroup(Group group) public OperationResponse UpdateGroup(Group group)
{ {
//TODO: I would probably prefer to do this manually.... //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<GroupDb>("update GroupDb set GroupName=? where GroupId=?", group.Name, group.Id);
//var resp = _connection.Update(groupDb);
return OperationResponse.UPDATED; return OperationResponse.UPDATED;
} }