public async Task <bool> AddToTeamAsync(Guid vmId, Guid teamId, CancellationToken ct) { var vm = await _context.Vms.SingleOrDefaultAsync(v => v.Id == vmId, ct); if (vm == null) { throw new EntityNotFoundException <Vm>(); } if (!(await _playerService.CanManageTeamAsync(teamId, ct))) { throw new ForbiddenException(); } if (!(await _permissionsService.CanWrite(new[] { teamId }, ct))) { throw new ForbiddenException(); } var team = await _context.Teams.SingleOrDefaultAsync(t => t.Id == teamId, ct); if (team == null) { Domain.Models.Team te = new Domain.Models.Team { Id = teamId }; _context.Teams.Add(te); } var vmteam = await _context.VmTeams.SingleOrDefaultAsync(vt => vt.VmId == vmId && vt.TeamId == teamId); if (vmteam != null) { return(true); } Domain.Models.VmTeam entity = new Domain.Models.VmTeam { VmId = vmId, TeamId = teamId }; _context.VmTeams.Add(entity); await _context.SaveChangesAsync(ct); return(true); }
public IHttpActionResult AddTeam([FromBody] AddTeamVM model) { var date = DateTime.Now; var team = new Domain.Models.Team() { Name = model.TeamName, DateCreated = date }; var ut = new Domain.Models.UserTeam() { UserId = model.UserId, DateJoined = date, IsLeader = true, TeamId = team.TeamId }; _userTeamRepo.AddTeamAndUserTeam(team, ut); _userTeamRepo.SaveChanges(); return(Ok(team)); }