Example #1
0
        public async Task <bool> DeleteStartListMember(int raceId, int skierId, int runNo)
        {
            return(await Task.Run(() =>
            {
                var startlistAdo = new AdoStartListDao(connectionFactory);
                var raceDataAdo = new AdoRaceDataDao(connectionFactory);
                var racedata = raceDataAdo.FindAllBySkierId(skierId).FirstOrDefault(rd => rd.RaceId == raceId);
                if (!raceDataAdo.Delete(racedata))
                {
                    return false;
                }
                var race = new Race
                {
                    Id = raceId
                };
                var startList = new StartListMember
                {
                    Race = race,
                    SkierId = skierId,
                    RunNo = runNo
                };

                return startlistAdo.Delete(startList);
            }));
        }
Example #2
0
        public StartListController(ILogger <StartListController> logger)
        {
            _logger = logger;
            var connectionFactory = ConnectionFactoryHolder.getInstace().getConnectionFactory();

            _adoStartListDao = new AdoStartListDao(connectionFactory);
            _adoRaceDataDao  = new AdoRaceDataDao(connectionFactory);
            _adoSkierDao     = new AdoSkierDao(connectionFactory);
        }
Example #3
0
 public async Task <bool> IsStartListMemberInStartList(int raceId, int skierId, int runNo)
 {
     return(await Task.Run(() => {
         var startListAdo = new AdoStartListDao(connectionFactory);
         StartListMember startListMemberMember = startListAdo.FindByIds(raceId, skierId, runNo);
         if (startListMemberMember != null)
         {
             return true;
         }
         return false;
     }));
 }
Example #4
0
        public async Task <StartListModel> GetStartListForRaceId(int raceId, int runNo)
        {
            return(await Task.Run(() => {
                StartList = new StartListModel();
                StartList.raceId = raceId;
                StartList.StartListMembers = new ObservableCollection <StartListMemberModel>();

                IEnumerable <Skier> skiers = new AdoSkierDao(connectionFactory).FindAll();
                IEnumerable <RaceData> racedata = new AdoRaceDataDao(connectionFactory).FindAllByRaceId(raceId);

                if (skiers == null)
                {
                    throw new NullReferenceException("No skiers found");
                }

                IEnumerable <StartListMember> startListMembers =
                    new AdoStartListDao(connectionFactory)
                    .FindAllByRaceIdAndRunNo(raceId, runNo)
                    .OrderBy(startListMember => startListMember.StartPos);


                foreach (var startListMember in startListMembers)
                {
                    var skierdata = racedata.FirstOrDefault(data => data.SkierId == startListMember.SkierId);

                    StartList.StartListMembers.Add(
                        new StartListMemberModel()
                    {
                        Skier = new SkierModel(skiers.FirstOrDefault(skier => skier.Id == startListMember.SkierId)),
                        Startposition = startListMember.StartPos,
                        RunNo = startListMember.RunNo,
                        Blocked = skierdata != null && skierdata.Blocked,
                        Disqualified = skierdata != null && skierdata.Disqualified,
                        Finished = skierdata != null && skierdata.Finished,
                        Running = skierdata != null && skierdata.Running,
                        RaceDataId = skierdata?.Id ?? 0
                    }
                        );
                }

                return StartList;
            }));
        }
Example #5
0
        private IEnumerable <RaceData> GenerateRaceDatas()
        {
            var startLists = AdoStartListDao.FindAll();
            var raceDatas  = new List <RaceData>();

            if (startLists.Count() == 0)
            {
                throw new Exception("No StartListMember data in database to generate RaceData");
            }

            foreach (var startList in startLists)
            {
                raceDatas.Add(new RaceData {
                    RaceId       = startList.Race.Id,
                    SkierId      = startList.SkierId,
                    Disqualified = decideIfDisqualifiedByPercentage(DISQUALIFIED_PERCENTAGE)
                });
            }
            return(raceDatas);
        }
Example #6
0
        public async Task <bool> UpdateStartListMemberStartPosition(int raceId, int skierId, int runNo, int startPosition)
        {
            return(await Task.Run(() =>
            {
                var startlistAdo = new AdoStartListDao(connectionFactory);
                var race = new Race
                {
                    Id = raceId
                };
                var startList = new StartListMember
                {
                    Race = race,
                    SkierId = skierId,
                    RunNo = runNo,
                    StartPos = startPosition
                };

                var result = startlistAdo.Update(startList);

                return result;
            }));
        }
Example #7
0
        public async Task <bool> InsertStartListMember(int raceId, int skierId, int runNo, int startPosition)
        {
            return(await Task.Run(() =>
            {
                var startListAdo = new AdoStartListDao(connectionFactory);
                var raceDataAdo = new AdoRaceDataDao(connectionFactory);
                var oldRaceData = raceDataAdo.FindAllBySkierId(skierId).FirstOrDefault(rd => rd.RaceId == raceId);
                if (oldRaceData != null)
                {
                    raceDataAdo.Delete(oldRaceData);
                }
                var newRaceData = new RaceData()
                {
                    RaceId = raceId,
                    SkierId = skierId,
                    Blocked = true,
                    Disqualified = false,
                    Finished = false,
                    Running = false
                };
                if (raceDataAdo.Insert(newRaceData) == 0)
                {
                    return false;
                }

                var race = new Race
                {
                    Id = raceId
                };
                var startListMember = new StartListMember
                {
                    Race = race,
                    SkierId = skierId,
                    RunNo = runNo,
                    StartPos = startPosition
                };
                return startListAdo.Insert(startListMember) != 0;
            }));
        }
Example #8
0
 public void Setup()
 {
     configuration     = ConfigurationUtil.GetConfiguration();
     connectionFactory = DefaultConnectionFactory.FromConfiguration(configuration, "HuraceDbConnection");
     startlistDao      = new AdoStartListDao(connectionFactory);
 }
Example #9
0
 public RaceDataImporter(IConnectionFactory connectionFactory)
 {
     AdoRaceDataDao  = new AdoRaceDataDao(connectionFactory);
     AdoStartListDao = new AdoStartListDao(connectionFactory);
 }
Example #10
0
 public StartListsImporter(IConnectionFactory connectionFactory)
 {
     adoRaceDao      = new AdoRaceDao(connectionFactory);
     adoSkierDao     = new AdoSkierDao(connectionFactory);
     adoStartListDao = new AdoStartListDao(connectionFactory);
 }