private void SetBattingStat(BattingStat battingStat, Batting lastBattingStat) { lastBattingStat.Innings++; if (lastBattingStat.Dismissals == 0) lastBattingStat.AverageDec = Convert.ToDecimal(lastBattingStat.Runs); if (battingStat.HowOut.Name != "Not Out") { lastBattingStat.Dismissals++; lastBattingStat.AverageDec = Convert.ToDecimal(lastBattingStat.Runs) / lastBattingStat.Dismissals; } }
public bool AddStats(List<DLStat> statsList) { using (var session = NHibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { try { var bwccXmlDoc = new XmlDocument(); bwccXmlDoc.Load( HttpContext.Current.Server.MapPath( "~/Modules/ivNet.Club/App_Data/MySql/members.xml")); var memberType = session.CreateCriteria(typeof (MemberType)) .List<MemberType>().FirstOrDefault(x => x.Name.Equals("Player")); foreach (var dlStat in statsList) { // HowOut var howout = session.CreateCriteria(typeof (HowOut)) .List<HowOut>().FirstOrDefault(x => x.Name.Equals(dlStat.HowOut)) ?? new HowOut(); if (howout.Id == 0) { howout.Name = dlStat.HowOut; SetAudit(howout); session.Save(howout); } // Fixture var fixture = session.CreateCriteria(typeof (Fixture)) .List<Fixture>().FirstOrDefault(x => x.FixtureKey.Equals(dlStat.FixtureKey)) ?? new Fixture(); // Player var player = session.CreateCriteria(typeof (Player)) .List<Player>().FirstOrDefault(x => x.Member.MemberKey.Equals(dlStat.MemberKey)) ?? new Player(); if (player.Id == 0) { // Member var member = session.CreateCriteria(typeof (Member)) .List<Member>().FirstOrDefault(x => x.MemberKey.Equals(dlStat.MemberKey)) ?? new Member(); if (member.Id != 0) { member.AddMemberType(memberType); SetAudit(member); session.SaveOrUpdate(member); player = new Player { Member = member }; player.Init(); SetTypeNickname(player, bwccXmlDoc, member.LegacyId); SetAudit(player); session.SaveOrUpdate(player); } //else //{ // var cakes = ""; //} } //if (fixture.Id == 0) //{ // var zozo = ""; //} if (howout.Name != "DNB") { var battingStat = new BattingStat { Position = dlStat.Position, Runs = dlStat.RunsScored, Player = player, Fixture = fixture, HowOut = howout }; SetAudit(battingStat); session.SaveOrUpdate(battingStat); } if (dlStat.OversBowled>0) { var bowlingStat = new BowlingStat { Overs = dlStat.OversBowled, Maidens = dlStat.Maidens, Wickets = dlStat.Wickets, Runs = dlStat.RunsConceeded, Player = player, Fixture = fixture }; SetAudit(bowlingStat); session.SaveOrUpdate(bowlingStat); } if (dlStat.Catches + dlStat.Stumpings > 0) { var fieldingStat = new FieldingStat { Catches = dlStat.Catches, Stumpings = dlStat.Stumpings, Player = player, Fixture = fixture }; SetAudit(fieldingStat); session.SaveOrUpdate(fieldingStat); } var team = session.CreateCriteria(typeof(Team)) .List<Team>().FirstOrDefault(x => x.Fixture.Id.Equals(fixture.Id)); if (team == null) { team = new Team(); team.Init(); team.Fixture = fixture; SetAudit(team); } team.AddPlayer(player); session.SaveOrUpdate(team); if (fixture.Team == null) { fixture.Team = team; session.SaveOrUpdate(fixture); } } transaction.Commit(); return true; } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, string.Empty, null); transaction.Rollback(); return false; } } } }
private void CalculateBattingStat(Batting lastBattingStat, BattingStat battingStat) { if (battingStat.Runs > lastBattingStat.Highest) lastBattingStat.Highest = battingStat.Runs; lastBattingStat.Runs += battingStat.Runs; SetBattingStat(battingStat, lastBattingStat); }
public void UpdateFixtureStats(int id, dynamic fixtureStats) { using (var session = NHibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { try { var sqlQuery = string.Empty; // fixture details var fixture = id > 0 ? session.CreateCriteria(typeof (Fixture)) .List<Fixture>() .FirstOrDefault(x => x.Id.Equals(id)) : new Fixture(); if (fixture == null) return; if (id == 0) { fixture.HomeTeam = session.CreateCriteria(typeof (TeamName)) .List<TeamName>().FirstOrDefault(x => x.Name.Equals((string) fixtureStats["Team"])); fixture.Opposition = session.CreateCriteria(typeof (TeamName)) .List<TeamName>() .FirstOrDefault(x => x.Name.Equals((string) fixtureStats["Opposition"])); fixture.DatePlayed = DateTime.Parse((string) fixtureStats["Date"]); fixture.FixtureKey = CustomStringHelper.BuildKey(new[] { fixture.HomeTeam.Name, fixture.DatePlayed.ToShortDateString() }); } var strResultType = (string) fixtureStats["ResultType"]; var strResult = (string) fixtureStats["Result"]; var resultType = session.CreateCriteria(typeof (ResultType)) .List<ResultType>() .FirstOrDefault(x => x.Name.Equals(strResultType)); fixture.ResultType = resultType; fixture.Result = strResult; SetAudit(fixture); session.SaveOrUpdate(fixture); // batting stats var battingStats = (IEnumerable) fixtureStats["Batting"]; if (battingStats != null) { sqlQuery = string.Format("DELETE FROM ivNetBattingStat WHERE FixtureID = {0}", id); session.CreateSQLQuery(sqlQuery) .ExecuteUpdate(); foreach (dynamic battingStat in battingStats) { var memberKey = CustomStringHelper.BuildKey(new[] {(string) battingStat["Name"]}); var player = session.CreateCriteria(typeof (Player)) .List<Player>() .FirstOrDefault(x => x.Member.MemberKey.Equals(memberKey)); var howOut = session.CreateCriteria(typeof (HowOut)) .List<HowOut>() .FirstOrDefault(x => x.Name.Equals((string) battingStat["HowOut"])); var newBattingStat = new BattingStat { Player = player, Fixture = fixture, Position = Convert.ToInt32((string) battingStat["Position"]), Runs = Convert.ToInt32((string) battingStat["Runs"]), Overs = Convert.ToDecimal((string) battingStat["Overs"]), HowOut = howOut }; SetAudit(newBattingStat); session.SaveOrUpdate(newBattingStat); } } // bowling stats var bowlingStats = (IEnumerable) fixtureStats["Bowling"]; if (bowlingStats != null) { sqlQuery = string.Format("DELETE FROM ivNetBowlingStat WHERE FixtureID = {0}", id); session.CreateSQLQuery(sqlQuery) .ExecuteUpdate(); foreach (dynamic bowlingStat in bowlingStats) { var memberKey = CustomStringHelper.BuildKey(new[] {(string) bowlingStat["Name"]}); var player = session.CreateCriteria(typeof (Player)) .List<Player>() .FirstOrDefault(x => x.Member.MemberKey.Equals(memberKey)); var newBowlingStat = new BowlingStat { Player = player, Fixture = fixture, Wickets = Convert.ToInt32((string) bowlingStat["Wickets"]), Runs = Convert.ToInt32((string) bowlingStat["Runs"]), Overs = Convert.ToDecimal((string) bowlingStat["Overs"]), Maidens = Convert.ToInt32((string) bowlingStat["Maidens"]) }; SetAudit(newBowlingStat); session.SaveOrUpdate(newBowlingStat); } } // fielding stats var fieldingStats = (IEnumerable) fixtureStats["Fielding"]; if (fieldingStats != null) { sqlQuery = string.Format("DELETE FROM ivNetFieldingStat WHERE FixtureID = {0}", id); session.CreateSQLQuery(sqlQuery) .ExecuteUpdate(); foreach (dynamic fieldingStat in fieldingStats) { var memberKey = CustomStringHelper.BuildKey(new[] {(string) fieldingStat["Name"]}); var player = session.CreateCriteria(typeof (Player)) .List<Player>() .FirstOrDefault(x => x.Member.MemberKey.Equals(memberKey)); var newFieldingStat = new FieldingStat { Player = player, Fixture = fixture, Catches = Convert.ToInt32((string) fieldingStat["Catches"]), Stumpings = Convert.ToInt32((string) fieldingStat["Stumpings"]) }; SetAudit(newFieldingStat); session.SaveOrUpdate(newFieldingStat); } } transaction.Commit(); } catch (Exception ex) { Logger.Log(LogLevel.Error, ex, string.Empty, null); transaction.Rollback(); } } } }