void PlayerAssignDeveloperToTrainingSession(Communication com) { Company player = game.Companies.FirstOrDefault(c => c.CompanyId == com.PlayerId); TrainingSession trainingSession = game.Schools.SelectMany(s => s.SchoolTrainingSessions).FirstOrDefault(ts => ts.TrainingSessionId == com.TrainingSessionId); Developer developer = game.Developers.FirstOrDefault(d => d.DeveloperId == com.DeveloperId); UpdateGameDatas(com); ThreadPool.QueueUserWorkItem(delegate { Context.Post(delegate { GSI.DisplayPlayerAssignDeveloperToTrainingSession(trainingSession, developer, player); }, null); }); }