Exemple #1
0
        public void UpdateTest()
        {
            Race     testRace = raceDao.FindById(3);
            DateTime time     = DateTime.Today;

            testRace.Date = time;
            raceDao.Update(testRace);

            Assert.True(raceDao.FindById(3).Date == time);
        }
Exemple #2
0
        public ActionResult <RunningRunOutDto> Get(int runningRaceId)
        {
            RunningRunOutDto runningRun = null;
            Race             race       = _adoRaceDao.FindById(runningRaceId);

            if (race == null)
            {
                return(NotFound());
            }
            if (race.Status?.Id != 2 || race.Status?.Name != "running")
            {
                return(NotFound());
            }

            for (int i = 0; i < race.Type?.NumberOfRuns; i++)
            {
                var run = _adoRunDao.FindById(race.Id, i + 1);
                if (run.Running == true && run.Finished == false)
                {
                    runningRun = RunningRunOutDto.FromRun(run);
                }
            }

            if (runningRun == null)
            {
                return(NotFound());
            }
            return(Ok(runningRun));
        }
Exemple #3
0
        public ActionResult <IList <RankingSkierOutDto> > Get(int runningRaceId, int runNo)
        {
            IList <RankingSkierOutDto> rankingSkierOutDtos = new List <RankingSkierOutDto>();
            IList <RaceData>           finishedStartListMemberRaceDatas = new List <RaceData>();

            if (runNo < 1 || runNo > 2)
            {
                return(BadRequest());
            }
            Race runningRace = _adoRaceDao.FindById(runningRaceId);

            if (runningRace == null)
            {
                return(NotFound());
            }
            IEnumerable <StartListMember> startListMembers = _adoStartListDao.FindAllByRaceIdAndRunNo(runningRaceId, runNo);

            if (startListMembers == null)
            {
                return(NotFound());
            }
            foreach (var startListMember in startListMembers)
            {
                RaceData raceData = _adoRaceDataDao.FindAllBySkierId(startListMember.SkierId)
                                    .FirstOrDefault(data => data.RaceId == runningRaceId);
                if (raceData != null && (!raceData.Finished && !raceData.Disqualified))
                {
                    finishedStartListMemberRaceDatas.Add(raceData);
                }
            }

            foreach (var finishedStartListMemberRaceData in finishedStartListMemberRaceDatas)
            {
                var lastSplitTime = _adoSplitTimeDao.FindByRaceDataId(finishedStartListMemberRaceData.Id)
                                    .FirstOrDefault(splitTimeEntry => (splitTimeEntry.SplittimeNo == runningRace.Splittimes) &&
                                                    splitTimeEntry.RunNo == runNo);
                if (lastSplitTime == null)
                {
                    continue;
                }
                var skier = _adoSkierDao.FindById(finishedStartListMemberRaceData.SkierId);
                rankingSkierOutDtos.Add(new RankingSkierOutDto()
                {
                    FirstName    = skier.FirstName,
                    LastName     = skier.LastName,
                    Nation       = skier.Nation,
                    ProfileImage = skier.ProfileImage,
                    EndTime      = lastSplitTime.Time
                });
            }
            var orderedRankingSkierOutDtos = rankingSkierOutDtos.OrderBy(dto => dto.EndTime);

            rankingSkierOutDtos = orderedRankingSkierOutDtos.ToList();
            for (int i = 1; i <= rankingSkierOutDtos.Count; i++)
            {
                rankingSkierOutDtos[i - 1].Ranking = i;
            }
            return(Ok(rankingSkierOutDtos));
        }