/** KKT VARŽYBŲ PIRMAS REZULTATŲ SKAIČIAVIMO ALGORITMAS*/ public List <ResultModel> ResultsKKT1(int compId, int resultType, string group) { List <ResultModel> results = new List <ResultModel>(); List <CompetitorsKKTModel> compTeam = CompetitionDB.TblCompetitorsKKT.ToArray().Where(x => x.CompetitionId == compId && x.Group == group).Select(x => new CompetitorsKKTModel(x)).ToList(); List <RouteKKTModel> routes = CompetitionDB.TblRoutesKKT.ToArray().Where(x => x.CompetitionId == compId && x.Type == group).Select(x => new RouteKKTModel(x)).ToList(); foreach (var ct in compTeam) { ResultModel result = new ResultModel(); int teamId = ct.TeamId; result.TeamName = CompetitionDB.TblTeams.Find(teamId).Name.ToString(); List <JudgesPaperKKTModel> judgesPapers = new List <JudgesPaperKKTModel>(); int sumTime = 0; foreach (var r in routes) { JudgesPaperKKTModel jp = CompetitionDB.TblJudgesPapersKKT.ToArray().Where(x => x.RouteId == r.Id && x.TeamId == teamId).Select(x => new JudgesPaperKKTModel(x)).FirstOrDefault(); jp.RouteName = r.Name; if (TimeCompare(MaxTimeRoute(r.Id), jp.Time) && jp.Time != "00:00:00") { jp.Points = r.Points; int penaltySum = PointsFromPenalties(jp.Id); jp.PenaltySum = penaltySum; int routeTimeFromJP = TimeToSec(jp.Time); sumTime += (penaltySum * 30) + routeTimeFromJP; if (penaltySum == 0) { jp.TimewithPenalty = jp.Time; } else { jp.TimewithPenalty = SecToTime((penaltySum * 30) + routeTimeFromJP); } result.PlusPoints(r.Points); } else { jp.Time = "00:00:00"; jp.TimewithPenalty = "00:00:00"; } judgesPapers.Add(jp); } result.JudgesPapers = judgesPapers; result.TimeSum = SecToTime(sumTime); results.Add(result); } List <ResultModel> resultsOrder = results.OrderByDescending(x => x.PointsSum).ThenBy(x => x.TimeSum).ToList(); int i = 1; foreach (ResultModel res in resultsOrder) { res.Place = i; i++; } return(resultsOrder); }
public HttpResponseMessage Get(int routeId, int teamId) { if (CompetitionDB.TblJudgesPapersKKT.FirstOrDefault(x => x.TeamId == teamId && x.RouteId == routeId) != null) { JudgesPaperKKTModel paper = CompetitionDB.TblJudgesPapersKKT.ToArray().Where(x => x.TeamId == teamId && x.RouteId == routeId).Select(x => new JudgesPaperKKTModel(x)).FirstOrDefault(); List <PenaltyQuantityModel> quantity = CompetitionDB.TblPenaltyQuantities.ToArray().Where(x => x.JudgesPaperId == paper.Id).Select(x => new PenaltyQuantityModel(x)).ToList(); foreach (var q in quantity) { q.PenaltyName = CompetitionDB.TblPenalties.FirstOrDefault(x => x.Id == q.PenaltyId).Name.ToString(); } paper.Penalties = quantity; paper.TeamName = CompetitionDB.TblTeams.FirstOrDefault(x => x.Id == paper.TeamId).Name.ToString(); paper.RouteName = CompetitionDB.TblRoutesKKT.FirstOrDefault(x => x.Id == paper.RouteId).Name.ToString(); paper.PenaltySum = PointsFromPenalties(paper.Id, quantity); /** Kaip padaryti dėl skaičiavimo. Baudos verčiamos į laiką ar minusiuojamos nuo taškų*/ /***paper.TimeWithPenalty(SecToTime((TimeToSec(paper.Time)) + (paper.PenaltySum * 30)));*/ return(ToJsonOK(paper)); } return(ToJsonNotFound("Objektas nerastas.")); }