protected override async Task InnerRemove(Entities.League league, TeamLeagueTableLine line, TeamFixture fixture) { var points = await this.CalculatePoints(league, line.Party.ID, fixture); line.Remove(fixture); line.RemovePoints(fixture, points.BonusPoints, points.Points); }
protected Task <TeamLeagueTableLinePoints> CalculateByResultPoints(Entities.League league, EntrantScoreSummary scores) { short points = 0; if (scores.ResultTypeID == ResultType.Win) { points = league.ResultWinPoints.Value; } else if (scores.ResultTypeID == ResultType.Lose) { points = league.ResultLosePoints.Value; } else if (scores.ResultTypeID == ResultType.Draw) { points = league.ResultDrawPoints.Value; } var result = new TeamLeagueTableLinePoints { Points = points, BonusPoints = 0 }; return(Task.FromResult(result)); }
private Entities.League ConvertTo(League league) { var entityLeague = new Entities.League(); entityLeague.LeagueTypeId = league.LeagueTypeId; entityLeague.StartDate = DateTime.Now; var entityLeagueTeams = new List <LeagueTeam>(); foreach (var item in league.Teams) { entityLeagueTeams.Add(new LeagueTeam() { TeamId = item.TeamId }); } entityLeague.LeagueTeams = entityLeagueTeams; var entityMatches = new List <Entities.Match>(); foreach (var item in league.Matches) { entityMatches.Add(new Entities.Match() { Home = entityLeagueTeams.FirstOrDefault(lt => lt.TeamId == item.Home.TeamId), Guest = entityLeagueTeams.FirstOrDefault(lt => lt.TeamId == item.Guest.TeamId), Round = item.Round }); } entityLeague.Matches = entityMatches; return(entityLeague); }
protected override async Task InnerRemove(Entities.League league, TeamLeagueTableLine line, TeamFixture fixture) { var match = fixture.Matches.Single(); var points = await this.CalculatePoints(league, line.Party.ID, match); line.Remove(match); line.RemovePoints(match, points.BonusPoints, points.Points); }
protected Task <TeamLeagueTableLinePoints> CalculateByChalks(Entities.League league, EntrantScoreSummary scores) { var result = new TeamLeagueTableLinePoints { Points = scores.ChalkScore, BonusPoints = 0 }; return(Task.FromResult(result)); }
public async Task Remove(Entities.League league, TeamLeagueTable table, TeamFixture fixture) { this.GuardCheck(fixture); var line1 = table.GetOrCreateLine(fixture.Entrant1); var line2 = table.GetOrCreateLine(fixture.Entrant2); await this.InnerRemove(league, line1, fixture); await this.InnerRemove(league, line2, fixture); }
public async Task Add(Entities.League league, TeamLeagueTable table, TeamFixture fixture) { this.GuardCheck(fixture); var line1 = table.GetOrCreateLine(fixture.Entrant1); var line2 = table.GetOrCreateLine(fixture.Entrant2); await this.InnerAdd(league, line1, fixture); await this.InnerAdd(league, line2, fixture); this.SetLastUpdate(table, fixture); }
private Task <TeamLeagueTableLinePoints> CalculatePoints(Entities.League league, int teamID, TeamFixture fixture) { var entry = fixture.GetScoresSummaryByEntrantID(teamID); switch (league.LeaguePointsModeID) { case LeaguePointsModes.ResultPoints: return(this.CalculateByResultPoints(league, entry)); case LeaguePointsModes.Chalks: return(this.CalculateByChalks(league, entry)); case LeaguePointsModes.GamesAndBonus: return(this.CalculateByGamesAndBonus(league, entry)); default: throw new ArgumentOutOfRangeException(); } }
protected abstract Task InnerRemove(Entities.League league, TeamLeagueTableLine line, TeamFixture fixture);