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); }
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)); } }