public bool CreateLeagueTeams(Team _teams) { try { using (SPORT_LINK_DBDataContext db = new SPORT_LINK_DBDataContext()) { var query = from team in db.SPORTs where team.Name.ToLower().Equals(_teams.Name.ToLower()) select team; SPORT teams = new SPORT(); LEAGUE leagues = new LEAGUE(); if (query.Count() != 0) { teams = query.Single(); var leagueQuery = from league in db.LEAGUEs where league.Name.ToLower().Equals(_teams.LeagueName.ToLower()) select league; if (leagueQuery.Count() != 0) { leagues = leagueQuery.Single(); var insertQuery = from team in db.SPORT_LEAGUEs where team.League_Id.Equals(leagues.League_Id) && team.Sport_Id.Equals(teams.Sport_Id) select team; if (insertQuery.Count() == 0) //Insert to DB { SPORT_LEAGUE toinsert = new SPORT_LEAGUE(); toinsert.League_Id = leagues.League_Id; toinsert.Sport_Id = teams.Sport_Id; toinsert.LeagueName = leagues.Name; toinsert.TeamName = teams.Name; toinsert.TeamAverage = 0; db.SPORT_LEAGUEs.InsertOnSubmit(toinsert); db.SubmitChanges(); return(true); } else { return(false); } } else { return(false); } } else { return(false); } }; } catch (Exception) { return(false); } }
//Helper Methods //Updating Team Average for each team //Sum of averages per match devided by Number of team appearance in a league public string calcAverage(Game gm) { string status = ""; int T1_NumAppearnce = 0; int T2_NumAppearnce = 0; using (SPORT_LINK_DBDataContext db = new SPORT_LINK_DBDataContext()) { try { //Get Team Names var Name = (from sl in db.GAMEs where sl.Game_Id.Equals(gm.ID) select sl).First(); string TeamOne = Name.Team1; string TeamTwo = Name.Team2; //Get Total Number of team appearance var T1_query = (from game in db.GAMEs where game.Team1.Equals(TeamOne) || game.Team2.Equals(TeamOne) select game).ToList(); T1_NumAppearnce = T1_query.Count(); var T2_query = (from game in db.GAMEs where game.Team1.Equals(TeamTwo) || game.Team2.Equals(TeamTwo) select game).ToList(); T2_NumAppearnce = T2_query.Count(); //SUm of games averages per team decimal sum = 0; foreach (GAME game in T1_query) { sum += Convert.ToDecimal(game.GAME_STATs.Where(p => p.Game_Id.Equals(game.Game_Id)).Sum(p => p.Team1_OveralAverage)); } decimal T2_Sum = 0; foreach (GAME game in T2_query) { T2_Sum += Convert.ToDecimal(game.GAME_STATs.Where(p => p.Game_Id.Equals(game.Game_Id)).Sum(p => p.Team1_OveralAverage)); } //Now Compute The Average decimal T1_Average = sum / T1_NumAppearnce; decimal T2_Average = T2_Sum / T2_NumAppearnce; //Insert Into DB var Team_One = (from tm in db.SPORT_LEAGUEs where tm.TeamName.Equals(TeamOne) select tm).First(); if (Team_One != null) { SPORT_LEAGUE toinsert = Team_One; toinsert.TeamAverage = T1_Average; status = "success: updated t1"; } else { status += "failed: cant update t1"; } var Team_Two = (from tm in db.SPORT_LEAGUEs where tm.TeamName.Equals(TeamTwo) select tm).First(); if (Team_Two != null) { SPORT_LEAGUE toinsert = Team_Two; toinsert.TeamAverage = T2_Average; db.SubmitChanges(); status += "success: updated t2"; } else { status += "failed: cant update t2"; } } catch (Exception) { status += "failed: catched"; } }; return(status); }