internal Group GetById(int groupId) { Group foundGroup = _repo.GetById(groupId); if (foundGroup == null) { throw new System.Exception("Bad Id Sport"); } return(foundGroup); }
public async Task <BaseResponse> Join([FromBody] GroupJoinRequest request) { var response = new BaseResponse(); if (request == null || !ModelState.IsValid) { HttpContext.Response.StatusCode = StatusCodes.Status400BadRequest; response.Message = "Invalid input(s)."; return(response); } try { var targetGroup = await _groupsRepository.GetById(request.Group_Id); var usersInGroup = await _groupsRepository.GetUsersInGroup(request.Group_Id); if (usersInGroup.Count() < targetGroup.Size) { if (targetGroup.Private) { // TODO: handle checking for invite } else { if (await _groupsRepository.AddUser(HttpContext.User.GetUserId(), request.Group_Id)) { response.Message = "Successfully joined group!"; response.Success = true; } } } else { response.Message = "Join unsuccessful. Group is full."; response.Success = false; } } catch (Exception ex) { Console.WriteLine(ex.Message); HttpContext.Response.StatusCode = StatusCodes.Status500InternalServerError; response.Message = "Failed to join group."; } return(response); }
// public IEnumerable<Group> GetGroupsByGardenId(int GardenId, string userId) // { // return _repo.GetGroupsByGardenId(GardenId, userId); // } public Group GetById(int GroupId, string UserId) { return(_repo.GetById(GroupId, UserId)); }