/// <summary> /// Takes care that the user's participation type gets updated for the given raid. /// </summary> /// <param name="user"></param> /// <param name="raidID"></param> /// <param name="userParticipationType"></param> private void UpdateUserRaidParticipationType(User user, string raidID, UserParticipationType userParticipationType) { DbSet <RaidParticipation> raidParticipationCollection = this.DB.GetCollection <RaidParticipation>(); lock (RaidParticipation.Lock) { RaidParticipation raidParticipation = raidParticipationCollection.Find(rp => rp.PublicID == raidID).First(); UserSettings userSettings = UserSettings.GetOrCreateUserSettings(user, DB.GetCollection <UserSettings>()); UserParticipation userParticipation = raidParticipation.Participants[userSettings.Team].FirstOrDefault(rp => rp.User.ID == user.ID); if (userParticipation != null) { userParticipation.Type = userParticipationType; raidParticipationCollection.Update(raidParticipation); } } }