Exemple #1
0
        private void CheckSportEncounterModeAndTeamCount(Encounter encounter)
        {
            Sport sport = sportBL.GetById(encounter.SportId);

            if (sport.EncounterMode == EncounterMode.Double && encounter.Teams.Count() > 2)
            {
                throw new SportDoesNotSupportMultipleTeamsEncountersException();
            }
        }
        public ICollection <Score> GeneratePositionTableForSport(int sportId)
        {
            ICollection <Score> positions = new List <Score>();
            Sport       sport             = sportBL.GetById(sportId);
            List <Team> teams             = sport.Teams.ToList();

            foreach (Team team in teams)
            {
                List <Encounter> encounters = encounterBL.GetAllEncountersOfTeam(team.Id).ToList();
                Score            position   = new Score()
                {
                    Team = team
                };
                foreach (Encounter encounter in encounters)
                {
                    if (encounter.Results.Count > 0)
                    {
                        int teamPosition = encounter.Results.FirstOrDefault(t => t.TeamId == team.Id).Position;
                        if (sport.EncounterMode == EncounterMode.Double)
                        {
                            if (teamPosition == 2)
                            {
                                position.Points += 3;
                            }
                            else if (teamPosition == 1)
                            {
                                position.Points += 1;
                            }
                        }
                        else if (sport.EncounterMode == EncounterMode.Multiple)
                        {
                            if (teamPosition == 1)
                            {
                                position.Points += 3;
                            }
                            else if (teamPosition == 2)
                            {
                                position.Points += 2;
                            }
                            else if (teamPosition == 3)
                            {
                                position.Points += 1;
                            }
                        }
                    }
                }
                positions.Add(position);
            }
            return(positions);
        }
Exemple #3
0
        public ActionResult <SportDTO> GetSport(int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var sport = mapper.Map <SportDTO>(sportBusinessLogic.GetById(id));
                return(Ok(sport));
            }
            catch (SportDoesNotExistException e)
            {
                return(NotFound(e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
        public ActionResult <ICollection <FixtureEncounterDTO> > GenerateFixture([FromBody] FixtureDTO data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                fixtureSelector.CreateInstance(data.AlgorithmName, encounterBL);
                var teams      = sportBL.GetById(data.SportId).Teams;
                var encounters = mapper.Map <FixtureEncounterDTO[]>(fixtureSelector.GenerateFixture(teams, data.Date));
                var response   = Ok(encounters);
                return(Ok(encounters));
            }
            catch (SportDoesNotExistException e)
            {
                return(NotFound(e.Message));
            }
            catch (FixtureGeneratorAlgorithmDoesNotExistException e)
            {
                return(NotFound(e.Message));
            }
            catch (NotEnoughTeamsForEncounterException e)
            {
                return(NotFound(e.Message));
            }
            catch (AlgorithmDoesNotExistException e)
            {
                return(NotFound(e.Message));
            }
            catch (ThereAreNoAlgorithmsException e)
            {
                return(NotFound(e.Message));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }