public async Task <IActionResult> LeaveTeam([FromBody] AffiliationPost affiliationPost) { var team = await _timelineContext.Teams.Where(x => x.Id == affiliationPost.TeamId) .Include(x => x.TeamMembers).FirstOrDefaultAsync(); var user = await _timelineContext.Users.Where(x => x.Id == affiliationPost.UserId).FirstOrDefaultAsync(); if (team == null) { Console.WriteLine("Can't find team"); return(BadRequest()); } Console.WriteLine($"Leaving team {team.Name}"); var affiliation = team.TeamMembers.FirstOrDefault(x => x.TeamId == affiliationPost.TeamId && x.UserId == affiliationPost.UserId); if (affiliation == null) { Console.WriteLine("Can't find affiliation"); return(BadRequest()); } Audit audit = new Audit { Action = AuditAction.UserLeftTeam, Log = ($"{affiliation.UserId} left {affiliation.TeamId}"), Origin = AuditOrigin.TeamsController, Team = team, TimeStamp = DateTime.Now, User = user }; await _auditService.CreateAudit(audit); team.TeamMembers.Remove(affiliation); await _timelineContext.SaveChangesAsync(); _log.LogInformation("Leaving team {userId} : {TeamId}", affiliation.UserId, affiliation.TeamId); return(Ok(true)); }
public async Task <IActionResult> CreateAffiliation([FromBody] AffiliationPost affiliationPost) { var user = await _timelineContext.Users.Where(x => x.Id == affiliationPost.UserId) .Include(x => x.Affiliations).FirstOrDefaultAsync(); if (user == null) { return(BadRequest()); } var affiliation = new Affiliation { UserId = affiliationPost.UserId, TeamId = affiliationPost.TeamId }; user.Affiliations.Add(affiliation); await _timelineContext.SaveChangesAsync(); Console.WriteLine($"affiliation {affiliation.UserId} : {affiliation.TeamId}"); _log.LogInformation("Creating affiliation {userId} : {TeamId}", affiliation.UserId, affiliation.TeamId); return(Ok()); }