示例#1
0
 public IEnumerable <Series> Search(string searchText, StringComparison comparison
                                    = StringComparison.InvariantCultureIgnoreCase)
 {
     return(this.GetAll().Where(x => x.TeamIds.Any
                                    (y => y != Guid.Empty && DomainService.FindTeamById(y).Name.ToString().Contains(searchText, comparison) ||
                                    x.SeriesName.ToString().Contains(searchText, comparison))));
 }
示例#2
0
        public IEnumerable <TeamStats> GetLeagueTablePlacement(Guid seriesId)
        {
            var series         = this.FindById(seriesId);
            var teamIdsOfSerie = series.TeamIds;
            var teamsOfSerie   = teamIdsOfSerie.Select(teamId => DomainService.FindTeamById(teamId)).ToList();
            var teamStats      = new List <TeamStats>();

            foreach (var team in teamsOfSerie)
            {
                try
                {
                    teamStats.Add(team.AggregatedStats[seriesId]);
                }
                catch (SeriesMissingException)
                {
                }
            }

            var orderTeamStats = teamStats.OrderByDescending(x => x.Points)
                                 .ThenByDescending(x => x.GoalDifference)
                                 .ThenByDescending(x => x.GoalsFor).ToList();

            for (int i = 0; i < orderTeamStats.Count; i++)
            {
                var teamStat = orderTeamStats.ElementAt(i);
                teamStat.Ranking = i + 1;
            }
            return(orderTeamStats);
        }
示例#3
0
        //public IEnumerable<Game> SearchGame(string searchText, StringComparison comp)
        //{
        //    return this.GetAll().Where(g => g.ToString().Contains(searchText, comp));
        //}

        public void AddGoalToGame(Guid gameId, Guid playerId, int matchMinute)
        {
            var game = this.FindById(gameId);
            var goal = new Goal(new MatchMinute(matchMinute), DomainService.FindPlayerById(playerId).TeamId, playerId);

            game.Protocol.Goals.Add(goal);
        }
示例#4
0
 public void RemoveMatch(Guid matchId)
 {
     if (matchId != Guid.Empty)
     {
         this.repository.RemoveMatch(DomainService.FindMatchById(matchId));
     }
 }
示例#5
0
 public void RemoveGame(Guid gameId)
 {
     if (gameId != Guid.Empty)
     {
         this.repository.RemoveGame(DomainService.FindGameById(gameId));
     }
 }
示例#6
0
        public IEnumerable <IExposableTeam> GetTeamsOfSerie(Guid sereisId)
        {
            var series       = DomainService.FindSeriesById(sereisId);
            var teamsOfSerie = series.TeamIds;

            return(teamsOfSerie.Select(teamId => DomainService.FindTeamById(teamId)).ToList());
        }
示例#7
0
        public void AddYellowCardToGame(Guid gameId, Guid playerId, int matchMinute)
        {
            var game = this.FindById(gameId);
            var card = new Card(new MatchMinute(matchMinute), DomainService.FindPlayerById(playerId).TeamId, playerId, CardType.Yellow);

            game.Protocol.Cards.Add(card);
        }
示例#8
0
        public void AddAssistToGame(Guid gameId, Guid playerId, int matchMinute)
        {
            var game   = this.FindById(gameId);
            var assist = new Assist(new MatchMinute(matchMinute), DomainService.FindPlayerById(playerId).TeamId, playerId);

            game.Protocol.Assists.Add(assist);
        }
示例#9
0
        public void ScheduleGenerator(Guid seriesId)
        {
            var schedule = new Schedule();
            var series   = DomainService.FindSeriesById(seriesId);

            schedule.GenerateSchedule(series);
            DomainService.AddMatches(series.Schedule);
            repository.SaveData();
        }
示例#10
0
        public void AssignPlayerToTeam(IExposablePlayer exposablePlayer, Guid teamId)
        {
            var player = (Player)exposablePlayer;
            var team   = DomainService.FindTeamById(teamId);

            player.UpdateTeamAffiliation(team);
            team.UpdatePlayerIds();
            this.repository.SaveData();
        }
示例#11
0
        public void DismissPlayerFromTeam(IExposablePlayer exposablePlayer)
        {
            var player  = (Player)exposablePlayer;
            var oldTeam = exposablePlayer.TeamId != Guid.Empty ?
                          DomainService.FindTeamById(exposablePlayer.TeamId) : null;

            player.UpdateTeamAffiliation(null);
            oldTeam?.UpdatePlayerIds();
            this.repository.SaveData();
        }
示例#12
0
 public IEnumerable <IExposableTeam> Search(string searchText, StringComparison comparison
                                            = StringComparison.InvariantCultureIgnoreCase)
 {
     return(this.GetAllTeams().Where(x =>
                                     x.Name.ToString().Contains(searchText, comparison) ||
                                     x.ArenaName.ToString().Contains(searchText, comparison) ||
                                     x.Email.Value.Contains(searchText, comparison) ||
                                     x.PlayerIds.Any(y => y != Guid.Empty &&
                                                     DomainService.FindPlayerById(y).Name.ToString().Contains(searchText, comparison))));
 }
示例#13
0
 public IEnumerable <Match> Search(string searchText, StringComparison comparison
                                   = StringComparison.InvariantCultureIgnoreCase)
 {
     return(this.GetAll().Where(x =>
                                x.Id != Guid.Empty && x.SeriesId != Guid.Empty &&
                                x.HomeTeamId != Guid.Empty && x.AwayTeamId != Guid.Empty
                                &&
                                (DomainService.FindSeriesById(x.SeriesId).SeriesName.ToString().Contains(searchText, comparison) ||
                                 DomainService.FindTeamById(x.HomeTeamId).Name.ToString().Contains(searchText, comparison) ||
                                 DomainService.FindTeamById(x.AwayTeamId).Name.ToString().Contains(searchText, comparison) ||
                                 x.Location.ToString().Contains(searchText, comparison) ||
                                 x.MatchDate.ToString().Contains(searchText, comparison))));
 }
示例#14
0
        public void RemoveTeamFromSeries(Guid seriesId, Guid teamId)
        {
            var series = DomainService.FindSeriesById(seriesId);

            if (series.TeamIds.Contains(teamId))
            {
                series.TeamIds.Remove(teamId);
            }
            else
            {
                throw new ArgumentException($"Can not remove team \"{DomainService.FindTeamById(teamId)}\"."
                                            + $" Team doesn't exist in series \"{DomainService.FindSeriesById(seriesId)}\".");
            }
        }
示例#15
0
        public Guid Add(Guid matchId)
        {
            var match = DomainService.FindMatchById(matchId);

            if (match != null)
            {
                var game = new Game(match);
                this.repository.Add(game);
                return(game.Id);
            }
            else
            {
                throw new ArgumentException("Invalid matchId");
            }
        }
示例#16
0
        public void AddTeamToSeries(Guid seriesId, Guid teamId)
        {
            var series = this.FindById(seriesId);

            if (!(series.TeamIds.Contains(teamId)))
            {
                series.TeamIds.Add(teamId);
                var team = DomainService.FindTeamById(teamId);
                team.AddSeries(series);
                DomainService.AddSeriesToPlayers(series, team);
            }
            else
            {
                throw new ArgumentException($"Series already contains team {DomainService.FindTeamById(teamId)}");
            }
        }
示例#17
0
        public IEnumerable <Guid> AddList(IEnumerable <Guid> matchIds)
        {
            var gameIds = new List <Guid>();

            foreach (var matchId in matchIds)
            {
                var match = DomainService.FindMatchById(matchId);
                if (match != null)
                {
                    var game = new Game(match);
                    this.repository.Add(game);
                    gameIds.Add(game.Id);
                }
                else
                {
                    throw new ArgumentException("Invalid matchId");
                }
            }
            return(gameIds);
        }
示例#18
0
        public void AddPenaltyToGame(Guid gameId, Guid playerId, int matchMinute, bool isGoal)
        {
            var game = this.FindById(gameId);

            var penalty = new Penalty(new MatchMinute(matchMinute), playerId, isGoal, game, DomainService.FindPlayerById(playerId).TeamId);

            game.Protocol.Penalties.Add(penalty);
        }
示例#19
0
 public void DeleteSeries(Guid seriesId)
 {
     DomainService.RemoveGameAndMatchesFromSeries(seriesId);
     this.repository.DeleteSeries(seriesId);
     DomainService.SaveAll();
 }