public User Update(User UserToUpdate) { var userFollower = new List <Follower>(UserToUpdate.Following ?? new List <Follower>()); if (UserToUpdate != null) { _context.Attach(UserToUpdate).State = EntityState.Modified; } var userMatch = new List <UserMatch>(UserToUpdate.Tips ?? new List <UserMatch>()); foreach (var um in userMatch) { _context.Entry(um).State = EntityState.Added; } var followers = _context.Following.Where(f => f.AuthorizedUser.Id == UserToUpdate.Id); foreach (var item in followers) { _context.Remove(item); } //Der er to kald til databasen, fordi det første kald fixer en entity framework bug med unique constraint. _context.SaveChanges(); foreach (var uf in userFollower) { _context.Entry(uf).State = EntityState.Added; } _context.SaveChanges(); UserToUpdate.PasswordHash = UserToUpdate.PasswordSalt = null; return(UserToUpdate); }
public Tournament UpdateTour(Tournament Tour) { _context.Attach(Tour).State = EntityState.Modified; var userTours = new List <UserTour>(Tour.Participants ?? new List <UserTour>()); _context.Participants.RemoveRange( _context.Participants.Where(p => p.TournamentId == Tour.Id) ); foreach (var ut in userTours) { _context.Entry(ut).State = EntityState.Added; } foreach (Round round in Tour.Rounds) { _context.RoundPoints.RemoveRange( _context.RoundPoints.Where(rp => rp.RoundId == round.Id)); foreach (UserTour participant in userTours) { UserRound ur = new UserRound { UserId = participant.UserId, RoundId = round.Id, UserPoints = 0 }; _context.Entry(ur).State = EntityState.Added; } } _context.SaveChanges(); return(Tour); }
public Round Create(Round round) { round = _ctx.Rounds.Add(round).Entity; var listOfParticipants = _ctx.Participants.Where(ut => ut.TournamentId == round.TournamentId) .ToList(); foreach (UserTour participant in listOfParticipants) { UserRound ur = new UserRound { UserId = participant.UserId, RoundId = round.Id, UserPoints = 0 }; _ctx.Entry(ur).State = EntityState.Added; } _ctx.SaveChanges(); return(round); }