public virtual void OnSetType(CardViz viz) { Element t = GameAssignment.GetResourcesManager().typeElement; CardVizProperties type = viz.GetProperty(t); type.text.text = typeName; }
public void UpdateTeamCoaches(GameContext context, string[] selectedCoaches, Team teamToUpdate) { if (selectedCoaches == null) { teamToUpdate.GameAssignments = new List <GameAssignment>(); return; } var selectedCoachesHS = new HashSet <string>(selectedCoaches); var teamCoaches = new HashSet <int> (teamToUpdate.GameAssignments.Select(c => c.Coach.CoachID)); foreach (var coach in context.Coaches) { if (selectedCoachesHS.Contains(coach.CoachID.ToString())) { if (!teamCoaches.Contains(coach.CoachID)) { teamToUpdate.GameAssignments.Add( new GameAssignment { TeamID = teamToUpdate.ID, CoachID = coach.CoachID }); } } else { if (teamCoaches.Contains(coach.CoachID)) { GameAssignment coachtoremove = teamToUpdate .GameAssignments .SingleOrDefault(i => i.CoachID == coach.CoachID); context.Remove(coachtoremove); } } } }
private static Rotation IdentifyRotation(EventRegistration player, GameAssignment swap) { if (swap.CanAddPlayer()) { return(new Rotation(RotationType.MovePlayer)); } else { foreach (var p in swap.Players) { if (p.PrefersGameOverCurrentAssignment(player.Assignment.Game)) { return(new Rotation(RotationType.TradePlayers) { PlayerTwo = p }); } } } return(Rotation.NoRotation); }
private static void AssignPlayer(List <EventRegistration> players, EventRegistration player, GameAssignment assignment) { assignment.Players.Add(player); player.Assignment = assignment; players.Remove(player); }
private static void FixInvalidGames(List <GameAssignment> assignments) { for (int i = 0; i < assignments.Count; i++) { GameAssignment a = assignments[i]; if (a.Players.Count == 0) { assignments.Remove(a); i--; } } assignments.Sort((x, y) => x.GetTotalSatisfaction().CompareTo(y.GetTotalSatisfaction())); assignments.Reverse(); for (int i = 0; i < assignments.Count; i++) { GameAssignment a = assignments[i]; if (!a.IsValid()) { var unassignedPlayers = new List <EventRegistration>(); Debug.WriteLine("Removing Players from Invalid Assignment: " + a.ToString()); foreach (var p in a.Players) { p.Assignment = null; unassignedPlayers.Add(p); } assignments.Remove(a); i--; for (int j = i; j < assignments.Count; j++) { GameAssignment potentialNewAssignment = assignments[j]; for (int p = 0; p < unassignedPlayers.Count; p++) { EventRegistration unassigned = unassignedPlayers[p]; if (potentialNewAssignment.CanAddPlayer() && unassigned.HasPreferenceForGame(potentialNewAssignment.Game)) { Debug.WriteLine("Moving unassigned player '{0}' to preferred game:{1}", unassigned.User.Name, potentialNewAssignment.Game); potentialNewAssignment.Players.Add(unassigned); unassigned.Assignment = potentialNewAssignment; unassignedPlayers.Remove(unassigned); p--; } } } foreach (EventRegistration p in unassignedPlayers) { foreach (var assignment in assignments) { if (assignment.CanAddPlayer()) { Debug.WriteLine("Moving unsatisfied player '{0}' to game:{1} (sorry!)", p.User.Name, assignment.Game); assignment.Players.Add(p); p.Assignment = assignment; break; } } } } } }
private static bool PerformRotations(List <GameAssignment> assignments, List <EventRegistration> players) { bool result = false; foreach (var player in players) { var higherPrefs = new List <Preference>(); foreach (var pref in player.Preferences) { if (pref.Weight > player.Satisfaction) { higherPrefs.Add(pref); } } if (higherPrefs.Count > 0) { higherPrefs.Sort((x, y) => x.Weight.CompareTo(y.Weight)); foreach (var p in higherPrefs) { bool swapped = false; var potentialSwaps = assignments.Where(a => a.Game.ID == p.Game.ID); foreach (var swap in potentialSwaps) { Rotation rotation = IdentifyRotation(player, swap); result = rotation.RotationType != RotationType.NoRotationPossible; if (rotation.RotationType == RotationType.MovePlayer) { player.Assignment.Players.Remove(player); swap.Players.Add(player); player.Assignment = swap; Debug.WriteLine("Rotation - Moved {0} to Game:{1}", player.User.Name, swap.Game.Name); } else if (rotation.RotationType == RotationType.TradePlayers) { GameAssignment originalAssignment = player.Assignment; player.Assignment.Players.Remove(player); swap.Players.Add(player); player.Assignment = swap; swap.Players.Remove(rotation.PlayerTwo); originalAssignment.Players.Add(rotation.PlayerTwo); rotation.PlayerTwo.Assignment = originalAssignment; Debug.WriteLine("Rotation - Traded {0} to Game:{1} and {2} to Game:{3}", player.User.Name, swap.Game.Name, rotation.PlayerTwo.User.Name, originalAssignment.Game.Name); } } if (swapped) { break; } } } } return(result); }
public void ProcessRequest(HttpContext context) { HttpRequest request = context.Request; string errMsg = ""; string[] qryStr = request.QueryString[0].ToLower().Split('|'); HttpResponse response = context.Response; string _search = request["_search"]; string numberOfRows = request["rows"]; string pageIndex = request["page"]; string sortColumnName = request["sidx"]; string sortOrderBy = request["sord"]; int totalRecords; string output = ""; var client = new EyeWebServiceClient(); switch (qryStr[0].ToLower()) { case "gettherapy": PatientGames patientGame = client.ListGameAssignment(int.Parse(qryStr[1])); List <Dictionary <String, Object> > tableRowsPatientGames = new List <Dictionary <String, Object> >(); foreach (var dr in patientGame.gameAssignments) { var rowPatientGames = new Dictionary <String, Object>(); rowPatientGames["patientId"] = patientGame.patientId; rowPatientGames["gameId"] = dr.game.gameId; rowPatientGames["gameName"] = dr.game.gameName; rowPatientGames["gameDescription"] = dr.game.gameDescription; rowPatientGames["therapyId"] = dr.game.therapy.therapyId; rowPatientGames["therapyName"] = dr.game.therapy.therapyName; rowPatientGames["therapyDescription"] = dr.game.therapy.therapyDescription; rowPatientGames["level"] = dr.level; rowPatientGames["endDate"] = dr.endDate; rowPatientGames["startDate"] = dr.startDate; tableRowsPatientGames.Add(rowPatientGames); } output = new JavaScriptSerializer().Serialize(tableRowsPatientGames); break; case "listtherapies": List <Therapy> therapies = client.ListAllTherapy(); List <Dictionary <String, Object> > tableRowsTherapiesList = new List <Dictionary <String, Object> >(); var defaultTherapy = new Dictionary <String, Object>(); defaultTherapy["therapyId"] = "0"; defaultTherapy["therapyName"] = "Select"; tableRowsTherapiesList.Add(defaultTherapy); foreach (var dr in therapies) { var rowTherapy = new Dictionary <String, Object>(); rowTherapy["therapyId"] = dr.therapyId; rowTherapy["therapyName"] = dr.therapyName; tableRowsTherapiesList.Add(rowTherapy); } output = new JavaScriptSerializer().Serialize(tableRowsTherapiesList); break; case "listgamesfortherapy": List <Dictionary <String, Object> > tableRowsGamesList = new List <Dictionary <String, Object> >(); if (int.Parse(qryStr[1]) == 0) { var rowGame = new Dictionary <String, Object>(); rowGame["gameId"] = "0"; rowGame["gameName"] = "Select"; tableRowsGamesList.Add(rowGame); } else { List <Game> games = client.ListAllGamesForTherapy(int.Parse(qryStr[1])); foreach (var dr in games) { var rowGame = new Dictionary <String, Object>(); rowGame["gameId"] = dr.gameId; rowGame["gameName"] = dr.gameName; tableRowsGamesList.Add(rowGame); } } output = new JavaScriptSerializer().Serialize(tableRowsGamesList); break; case "assigngame": XElement gameAssignmentEntity = new XElement("gameAssignmentEntity"); if (context.Request.RequestType.ToString().ToLower() == "post") { string[] keys = context.Request.Form.AllKeys; for (int i = 0; i < keys.Length; i++) { gameAssignmentEntity.Add(new XElement(keys[i], context.Request.Form[(keys[i])].ToString())); } } PatientGames patientGames = new PatientGames { patientId = (int)gameAssignmentEntity.Element("patientId"), gameAssignments = new List <GameAssignment>() }; if ((string)gameAssignmentEntity.Element("oper") == "del") { GameAssignment gameAssignment = new GameAssignment { level = (int)gameAssignmentEntity.Element("level"), startDate = (string)gameAssignmentEntity.Element("startDate"), endDate = (string)gameAssignmentEntity.Element("endDate"), game = new Game { gameId = (int)gameAssignmentEntity.Element("gameId") } }; patientGames.gameAssignments.Add(gameAssignment); output = client.DeleteGameAssignment(patientGames).ToString(); } else { GameAssignment gameAssignment = new GameAssignment { level = (int)gameAssignmentEntity.Element("level"), startDate = (string)gameAssignmentEntity.Element("startDate"), endDate = (string)gameAssignmentEntity.Element("endDate"), game = new Game { gameId = (int)gameAssignmentEntity.Element("gamesDdl") } }; patientGames.gameAssignments.Add(gameAssignment); output = client.SetGameAssignment(patientGames).ToString(); } break; case "getgamescore": PatientGameScore patientGameScore = new PatientGameScore { patientId = int.Parse(qryStr[1]), level = int.Parse(qryStr[3]), game = new Game { gameId = int.Parse(qryStr[2]) } }; PatientGameScore resPatGameScore = client.ListGameScoresForPatient(patientGameScore); List <Dictionary <String, Object> > tableRowGameScores = new List <Dictionary <String, Object> >(); foreach (var dr in resPatGameScore.gameScoreList) { var rowGameScore = new Dictionary <String, Object>(); rowGameScore["gameName"] = resPatGameScore.game.gameName; rowGameScore["level"] = resPatGameScore.level; rowGameScore["datePlayed"] = dr.datePlayed; rowGameScore["durationInMin"] = dr.durationInMin.TotalMinutes.ToString(); rowGameScore["score"] = dr.score; tableRowGameScores.Add(rowGameScore); } output = new JavaScriptSerializer().Serialize(tableRowGameScores); break; } response.Write(output); }
public void ProcessRequest(HttpContext context) { HttpRequest request = context.Request; string errMsg = ""; string[] qryStr = request.QueryString[0].ToLower().Split('|'); HttpResponse response = context.Response; string _search = request["_search"]; string numberOfRows = request["rows"]; string pageIndex = request["page"]; string sortColumnName = request["sidx"]; string sortOrderBy = request["sord"]; int totalRecords; string output = ""; var client = new EyeWebServiceClient(); switch (qryStr[0].ToLower()) { case "gettherapy": PatientGames patientGame= client.ListGameAssignment(int.Parse(qryStr[1])); List<Dictionary<String, Object>> tableRowsPatientGames = new List<Dictionary<String, Object>>(); foreach (var dr in patientGame.gameAssignments) { var rowPatientGames = new Dictionary<String, Object>(); rowPatientGames["patientId"] = patientGame.patientId; rowPatientGames["gameId"] = dr.game.gameId; rowPatientGames["gameName"] = dr.game.gameName; rowPatientGames["gameDescription"] = dr.game.gameDescription; rowPatientGames["therapyId"] = dr.game.therapy.therapyId; rowPatientGames["therapyName"] = dr.game.therapy.therapyName; rowPatientGames["therapyDescription"] = dr.game.therapy.therapyDescription; rowPatientGames["level"] = dr.level; rowPatientGames["endDate"] = dr.endDate; rowPatientGames["startDate"] = dr.startDate; tableRowsPatientGames.Add(rowPatientGames); } output = new JavaScriptSerializer().Serialize(tableRowsPatientGames); break; case "listtherapies": List<Therapy> therapies = client.ListAllTherapy(); List<Dictionary<String, Object>> tableRowsTherapiesList = new List<Dictionary<String, Object>>(); var defaultTherapy = new Dictionary<String, Object>(); defaultTherapy["therapyId"] = "0"; defaultTherapy["therapyName"] = "Select"; tableRowsTherapiesList.Add(defaultTherapy); foreach (var dr in therapies) { var rowTherapy = new Dictionary<String, Object>(); rowTherapy["therapyId"] = dr.therapyId; rowTherapy["therapyName"] = dr.therapyName; tableRowsTherapiesList.Add(rowTherapy); } output = new JavaScriptSerializer().Serialize(tableRowsTherapiesList); break; case "listgamesfortherapy": List<Dictionary<String, Object>> tableRowsGamesList = new List<Dictionary<String, Object>>(); if (int.Parse(qryStr[1]) == 0) { var rowGame = new Dictionary<String, Object>(); rowGame["gameId"] = "0"; rowGame["gameName"] = "Select"; tableRowsGamesList.Add(rowGame); } else { List<Game> games = client.ListAllGamesForTherapy(int.Parse(qryStr[1])); foreach (var dr in games) { var rowGame = new Dictionary<String, Object>(); rowGame["gameId"] = dr.gameId; rowGame["gameName"] = dr.gameName; tableRowsGamesList.Add(rowGame); } } output = new JavaScriptSerializer().Serialize(tableRowsGamesList); break; case "assigngame": XElement gameAssignmentEntity = new XElement("gameAssignmentEntity"); if (context.Request.RequestType.ToString().ToLower() == "post") { string[] keys = context.Request.Form.AllKeys; for (int i = 0; i < keys.Length; i++) { gameAssignmentEntity.Add(new XElement(keys[i],context.Request.Form[(keys[i])].ToString())); } } PatientGames patientGames = new PatientGames { patientId = (int)gameAssignmentEntity.Element("patientId"), gameAssignments = new List<GameAssignment>() }; if ((string) gameAssignmentEntity.Element("oper") == "del") { GameAssignment gameAssignment = new GameAssignment { level = (int)gameAssignmentEntity.Element("level"), startDate = (string)gameAssignmentEntity.Element("startDate"), endDate = (string)gameAssignmentEntity.Element("endDate"), game = new Game { gameId = (int)gameAssignmentEntity.Element("gameId") } }; patientGames.gameAssignments.Add(gameAssignment); output = client.DeleteGameAssignment(patientGames).ToString(); } else { GameAssignment gameAssignment = new GameAssignment { level = (int) gameAssignmentEntity.Element("level"), startDate = (string) gameAssignmentEntity.Element("startDate"), endDate = (string) gameAssignmentEntity.Element("endDate"), game = new Game { gameId = (int) gameAssignmentEntity.Element("gamesDdl") } }; patientGames.gameAssignments.Add(gameAssignment); output = client.SetGameAssignment(patientGames).ToString(); } break; case "getgamescore": PatientGameScore patientGameScore = new PatientGameScore { patientId = int.Parse(qryStr[1]), level = int.Parse(qryStr[3]), game = new Game { gameId = int.Parse(qryStr[2]) } }; PatientGameScore resPatGameScore = client.ListGameScoresForPatient(patientGameScore); List<Dictionary<String, Object>> tableRowGameScores = new List<Dictionary<String, Object>>(); foreach (var dr in resPatGameScore.gameScoreList) { var rowGameScore = new Dictionary<String, Object>(); rowGameScore["gameName"] = resPatGameScore.game.gameName; rowGameScore["level"] = resPatGameScore.level; rowGameScore["datePlayed"] = dr.datePlayed; rowGameScore["durationInMin"] = dr.durationInMin.TotalMinutes.ToString(); rowGameScore["score"] = dr.score; tableRowGameScores.Add(rowGameScore); } output = new JavaScriptSerializer().Serialize(tableRowGameScores); break; } response.Write(output); }