public ActionResult EditGoalKeeper(int managerId, int[] teamIds, int[] teamSubs) { if (teamSubs == null) { teamSubs = new int[0]; } var manager = db.Managers.Include(x => x.GoalKeepers).Where(x => x.ManagerId == managerId).FirstOrDefault(); if (manager != null) { var selectedTeams = new HashSet <int>(teamIds.Where(x => x != 0)); var currentTeams = new HashSet <int>(manager.GoalKeepers.Select(x => x.TeamId)); foreach (var currentTeam in currentTeams) { if (!selectedTeams.Contains(currentTeam)) { db.ManagerGoalKeepers.Remove(manager.GoalKeepers.Where(x => x.TeamId == currentTeam).FirstOrDefault()); } } foreach (var selectedTeam in selectedTeams) { if (!currentTeams.Contains(selectedTeam)) { ManagerGoalKeeper managerGoalKeeper = new ManagerGoalKeeper(selectedTeam, managerId); db.ManagerGoalKeepers.Add(managerGoalKeeper); } } var selectedSubs = new HashSet <int>(teamSubs.Where(x => x != 0)); var currentSubs = new HashSet <int>(manager.GoalKeepers.Where(x => x.Substitute).Select(x => x.TeamId)); foreach (var currentSub in currentSubs) { if (!selectedSubs.Contains(currentSub)) { ManagerGoalKeeper managerGoalKeeper = manager.GoalKeepers.Where(x => x.TeamId == currentSub).FirstOrDefault(); managerGoalKeeper.ToggleSubstitute(); } } foreach (var selectedSub in selectedSubs) { if (!currentSubs.Contains(selectedSub)) { ManagerGoalKeeper managerGoalKeeper = manager.GoalKeepers.Where(x => x.TeamId == selectedSub).FirstOrDefault(); managerGoalKeeper.ToggleSubstitute(); } } } db.SaveChanges(); return(Content("Ok")); }
public ResultsSheetGoalKeeper(ManagerGoalKeeper goalKeeper) { GoalKeeper = goalKeeper; }