public IEnumerable <Jump> GetAllForAthlete(int idAthlete) { ICompetitionRepository competitionRepository = new CompetitionRepository(context: _context); IEliminationRepository eliminationRepository = new EliminationRepository(_context); IContestRepository contestRepository = new ContestRepository(_context); var competitions = competitionRepository.GetAllForAthlete(idAthlete); List <Jump> result = new List <Jump>(); foreach (var competition in competitions) { var elimination = eliminationRepository.GetEliminationByCompetitionID(competition.IdCompetition); var contest = contestRepository.GetContestByCompetitionID(competition.IdCompetition); if (elimination != null) { var jumps = GetAllForElimination(elimination.IdElimination).ToList(); result = result.Concat(second: jumps).ToList(); } if (contest != null) { var jumps = GetAllForContest(contest.IdContest).ToList(); result = result.Concat(second: jumps).ToList(); } } return(result); }
private IEnumerable <JumpChartDTO> GetJumpsForChart(DateTime beginDate, DateTime endDate, int id) { ICompetitionRepository competitionRepository = new CompetitionRepository(context: _context); IEliminationRepository eliminationRepository = new EliminationRepository(_context); IContestRepository contestRepository = new ContestRepository(_context); List <JumpChartDTO> result = new List <JumpChartDTO>(); var competitions = competitionRepository.GetAllForAthlete(id).Where(x => x.BeginDate >= beginDate && x.EndDate <= endDate).ToList(); foreach (var competition in competitions) { var elimination = eliminationRepository.GetEliminationByCompetitionID(competition.IdCompetition); var contest = contestRepository.GetContestByCompetitionID(competition.IdCompetition); if (elimination != null) { var jump = GetAllForElimination(elimination.IdElimination).Where(x => x.IdJumpStatus1 == 1 || x.IdJumpStatus2 == 1 || x.IdJumpStatus3 == 1).OrderByDescending(x => x.Height).FirstOrDefault(); if (jump != null) { result.Add(new JumpChartDTO() { DateOfCompetition = elimination.EliminationDate, MaxHeight = jump.Height }); } } if (contest != null) { var jump = GetAllForContest(contest.IdContest).Where(x => x.IdJumpStatus1 == 1 || x.IdJumpStatus2 == 1 || x.IdJumpStatus3 == 1).OrderByDescending(x => x.Height).FirstOrDefault(); if (jump != null) { result.Add(new JumpChartDTO() { DateOfCompetition = contest.ContestDate, MaxHeight = jump.Height }); } } } return(result); }
public JumpDTO GetBestResultForAthlete(int idAthlete) { ICompetitionRepository competitionRepository = new CompetitionRepository(context: _context); IEliminationRepository eliminationRepository = new EliminationRepository(_context); IContestRepository contestRepository = new ContestRepository(_context); JumpDTO jump = new JumpDTO(); var jumps = GetAllForAthlete(idAthlete).OrderByDescending(x => x.Height); var onlyGoodJumps = jumps.Where(x => x.IdJumpStatus1 == 1 || x.IdJumpStatus2 == 1 || x.IdJumpStatus3 == 1).FirstOrDefault(); if (onlyGoodJumps == null) { return(null); } jump.Height = onlyGoodJumps.Height; if (onlyGoodJumps.IdContest != null) { jump.IsContest = true; jump.IsElimination = false; var contest = contestRepository.FindById(onlyGoodJumps.IdContest.Value); var competition = competitionRepository.GetAllForAthlete(idAthlete).Where(x => x.IdCompetition == contest.IdCompetition).FirstOrDefault(); jump.DateOfRecord = contest.ContestDate; jump.CompetitionName = competition.Name; } else if (onlyGoodJumps.IdElimination != null) { jump.IsContest = false; jump.IsElimination = true; var elimination = eliminationRepository.FindById(onlyGoodJumps.IdElimination.Value); var competition = competitionRepository.GetAllForAthlete(idAthlete).Where(x => x.IdCompetition == elimination.IdCompetition).FirstOrDefault(); jump.DateOfRecord = elimination.EliminationDate; jump.CompetitionName = competition.Name; } return(jump); }