ActivEarth.DAO.GroupDAO.GetGroupFromGroupId C# (CSharp) Метод

GetGroupFromGroupId() публичный статический Метод

Retrieves a Group from the DB based on its ID.
public static GetGroupFromGroupId ( int groupId ) : Group
groupId int Identifier of the Group to retrieve.
Результат ActivEarth.Objects.Groups.Group
        public static Group GetGroupFromGroupId(int groupId)
        {
            using (SqlConnection connection = ConnectionManager.GetConnection())
            {
                var data = new ActivEarthDataProvidersDataContext(connection);

                List<string> hashtags = (from h in data.GroupHashtagDataProviders
                                         where h.group_id == groupId
                                         select
                                             h.hashtag
                                         ).ToList();

                List<int> member_ids = (from u in data.GroupMemberDataProviders
                                      where u.group_id == groupId
                                      select
                                          u.user_id
                                      ).ToList();

                List<User> members = new List<User>();
                foreach (int id in member_ids) {
                    members.Add(UserDAO.GetUserFromUserId(id));
                }

                List<int> contest_ids = ContestDAO.GetContestIdsFromGroupId(groupId);

                List<Contest> contests = new List<Contest>();
                foreach (int id in contest_ids)
                {
                    contests.Add(ContestDAO.GetContestFromContestId(id, true, true));
                }

                Group toReturn = (from g in data.GroupDataProviders
                                  where g.id == groupId
                                  select
                                  new Group
                                  {
                                      ID = g.id,
                                      Name = g.name,
                                      Description = g.description,
                                      GreenScore = g.green_score,
                                      ActivityScore = new ActivityScore(g.badge_score, g.challenge_score, g.contest_score),
                                      Members = members,
                                      HashTags = hashtags,
                                      Contests = contests
                                   }).FirstOrDefault();

                if (toReturn == null)
                {
                    return null;
                }

                toReturn.Owner = UserDAO.GetUserFromUserId(((from g in data.GroupDataProviders
                                                            where g.id == groupId
                                                            select
                                                            g.owner_id).FirstOrDefault()));

                RecentActivityDAO.GetGroupRecentActivity(toReturn);

                return toReturn;
            }
        }