private async Task <List <GroupViewModel> > GetAllGroups(string userId) { List <GroupViewModel> groupList = new List <GroupViewModel>(); List <GroupMemberViewModel> groupMembers = new List <GroupMemberViewModel>(); var groups = await groupLogic.GetAllGroups(userId); if (groups.Count > 0) { foreach (var g in groups) { if (g.Members != null) { foreach (var gMember in g.Members) { GroupMemberViewModel currentMember = new GroupMemberViewModel { Id = gMember.Id, UserId = gMember.UserId }; if (g.Id == gMember.GroupId) { groupMembers.Add(currentMember); } } GroupViewModel currentGroup = new GroupViewModel { Id = g.Id, GroupTitle = g.GroupTitle, OwnerId = g.OwnerId, MemberIds = groupMembers }; groupList.Add(currentGroup); } else { GroupViewModel currentGroup = new GroupViewModel { Id = g.Id, GroupTitle = g.GroupTitle, OwnerId = g.OwnerId, }; groupList.Add(currentGroup); } } } return(groupList); }