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))); }
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)); }