public ActionResult Members(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var community = db.Communities.Find(id);

            if (community == null)
            {
                return(HttpNotFound());
            }

            if (Status(community) != Enums.StatusType.Member && Status(community) != Enums.StatusType.Creator)
            {
                return(RedirectToAction("Index", "Community", new { id = community.Id }));
            }

            var model = new CommunityMembers {
                Members   = db.UserCommunities.Include("User").Where(uc => uc.CommunityId == id).ToList(),
                Community = community,
                CanEdit   = Status(community) == Enums.StatusType.Creator
            };

            return(View(model));
        }
        private void CreateCommunityMember(UserType userType, MemberType memberType, CommunityType communityType)
        {
            var member = new CommunityMember();

            member.Id             = Guid.NewGuid();
            member.Role           = CommunityMember.MembershipRole.Member;
            member.CommunityGroup = CommunityGroups[communityType];
            member.User           = Users[userType];

            PooledBook pooledBook;

            foreach (var ownedBook in Users[userType].OwnedBooks)
            {
                pooledBook = new PooledBook
                {
                    Id              = Guid.NewGuid(),
                    OwnedBook       = ownedBook,
                    CommunityMember = member
                };
                member.PooledBooks.Add(pooledBook);
                PooledBooks.Add(pooledBook);
            }
            CommunityMembers.Add(memberType, member);
            Users[userType].Memberships.Add(member);
            CommunityGroups[communityType].CommunityMembers.Add(member);
        }