public IHttpActionResult AddClub(AddClubDto dto)
        {
            var club = new Club()
            {
                Name            = dto.Name,
                Description     = dto.Description,
                IsRequestToJoin = dto.IsRequestToJoin,
                GroupId         = dto.GroupId,
                OrganizationId  = 1
            };

            var relation = new MM_User_Club();

            relation.Club       = club;
            relation.UserId     = CurrentUser.Id;
            relation.IsAccepted = true;
            relation.IsAdmin    = true;

            db.Clubs.Add(club);
            db.MM_User_Club.Add(relation);

            db.SaveChanges();

            return(Created($"api/clubs/{club.Id}", new ClubDto(club, CurrentUser.Id)));
        }
Example #2
0
 public MemberDto(MM_User_Club dbo)
 {
     Id           = dbo.User.Id;
     Email        = dbo.User.Email;
     First        = dbo.User.First;
     Last         = dbo.User.Last;
     IsGroupAdmin = dbo.IsAdmin;
 }
        public JoinRequestDto(MM_User_Club relation)
        {
            var user = relation.User;

            UserId = user.Id;
            First  = user.First;
            Last   = user.Last;
        }
        public IHttpActionResult JoinClub(int id)
        {
            var club = db.Clubs.Find(id);

            if (club == null)
            {
                return(NotFound());
            }

            bool isInClub  = club.MM_User_Club.Any(m => m.UserId == CurrentUser.Id);
            bool isInGroup = db.MM_User_Club.Any(m => m.UserId == CurrentUser.Id && m.Club.GroupId == club.GroupId && m.ClubId != club.Id);

            if (isInClub)
            {
                return(BadRequest("Already in club"));
            }

            if (isInGroup)
            {
                return(BadRequest("Already in group"));
            }

            var relation = new MM_User_Club()
            {
                UserId     = CurrentUser.Id,
                ClubId     = club.Id,
                IsAdmin    = false,
                IsAccepted = !club.IsRequestToJoin
            };

            db.MM_User_Club.Add(relation);
            db.SaveChanges();

            var message = relation.IsAccepted ? "joined" : "requested";

            return(Ok(message));
        }