Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }