Ejemplo n.º 1
0
        public void ShouldAddDivisionToSeasonTwoLevelDivision()
        {
            var season = new Season()
            {
                Number = 1,
                Year   = 1,
                Name   = "First Season"
            };

            var league     = new SeasonDivision("League", null, DivisionLevel.League, null, null, null);
            var conference = new SeasonDivision("Conference", null, DivisionLevel.Conference, null, null, null);

            for (int i = 0; i < 10; i++)
            {
                conference.AddTeam(new SeasonTeam()
                {
                    Parent = new Team()
                    {
                        Name = "Team " + i, Id = i
                    }, Id = i * 100, Name = "Team " + i
                });
            }

            season.AddDivision(league);

            Assert.StrictEqual(0, season.Teams.Count);

            season.AddDivision(conference);

            Assert.StrictEqual(10, season.Teams.Count);
        }
Ejemplo n.º 2
0
        public void ShouldAddDivisionToSeasonOnlyTopLevelDivision()
        {
            var season = new Season()
            {
                Number = 1,
                Year   = 1,
                Name   = "First Season"
            };

            var league = new SeasonDivision("League", season, DivisionLevel.League, null, null, null);

            for (int i = 0; i < 10; i++)
            {
                league.AddTeam(new SeasonTeam()
                {
                    Parent = new Team()
                    {
                        Name = "Team " + i, Id = i
                    }, Id = i * 100, Name = "Team " + i
                });
            }

            season.AddDivision(league);

            Assert.StrictEqual(10, season.Teams.Count);

            season.Teams.ToList().ForEach(team =>
            {
                Assert.NotNull(team.Competition);
            });

            Assert.NotNull(league.Season);
        }
Ejemplo n.º 3
0
        public void ShouldGetTeamsWithChildrenAndDoesNotHaveTeams()
        {
            var division = new SeasonDivision()
            {
                Name = "Parent Div"
            };
            var child1 = new SeasonDivision()
            {
                Name = "Child 1"
            };
            var child2 = new SeasonDivision()
            {
                Name = "Child 2"
            };

            child1.AddTeam(new SeasonTeam()
            {
                Name = "Team 1"
            });
            child1.AddTeam(new SeasonTeam()
            {
                Name = "Team 2"
            });
            child1.AddTeam(new SeasonTeam()
            {
                Name = "Team 3"
            });
            child1.AddTeam(new SeasonTeam()
            {
                Name = "Team 4"
            });
            child1.AddTeam(new SeasonTeam()
            {
                Name = "Team 5"
            });
            child2.AddTeam(new SeasonTeam()
            {
                Name = "Team 6"
            });
            child2.AddTeam(new SeasonTeam()
            {
                Name = "Team 7"
            });
            child2.AddTeam(new SeasonTeam()
            {
                Name = "Team 8"
            });


            child1.AddChildDivision(child2);
            division.AddChildDivision(child1);

            Assert.StrictEqual(8, division.Teams.Count);
            Assert.StrictEqual(8, child1.Teams.Count);
            Assert.StrictEqual(3, child2.Teams.Count);
        }
Ejemplo n.º 4
0
        private void CreateSeasonDivisions(Season season)
        {
            var ordered = teams.OrderBy(t => t.Name).ToList();

            var nhl     = new SeasonDivision(season, null, 1, "NHL", 1, 1, null);
            var east    = new SeasonDivision(season, nhl, 1, "East", 2, 1, null);
            var west    = new SeasonDivision(season, nhl, 1, "West", 2, 2, null);
            var central = new SeasonDivision(season, nhl, 1, "Central", 2, 3, null);

            season.Divisions = new List <SeasonDivision>()
            {
                nhl, east, west, central
            };
        }
Ejemplo n.º 5
0
        public SeasonDivision CreateAndAddDivision(Season season, SeasonDivision parent, IList <SeasonDivision> masterList, SeasonDivisionRule rule)
        {
            var newDiv = new SeasonDivision(rule.Name, season, rule.Level, parent);


            rule.Children.ToList().ForEach(cdr =>
            {
                newDiv.AddChildDivision(CreateAndAddDivision(season, newDiv, masterList, cdr));
            });

            masterList.Add(newDiv);

            return(newDiv);
        }
            public async Task <Unit> Handle(UpdateSeasonCommand request, CancellationToken cancellationToken)
            {
                var newSeasonDivisions = new List <SeasonDivision>();

                var entity = await _context.Season
                             .SingleOrDefaultAsync(x => x.Id == request.Id, cancellationToken);

                if (entity == null)
                {
                    throw new NotFoundException(nameof(Season), request.Id);
                }

                entity.Name      = request.Name ?? entity.Name;
                entity.StartDate = request.StartDate ?? entity.StartDate;
                entity.EndDate   = request.EndDate ?? entity.EndDate;

                if (request.DivisionsId.Any())
                {
                    var seasonDivisionsInDb = _context.SeasonDivision.Where(x => x.SeasonId == entity.Id).Select(x => x.DivisionId).ToList();

                    foreach (var divisionId in request.DivisionsId)
                    {
                        var seasonDivision = new SeasonDivision
                        {
                            SeasonId   = entity.Id,
                            DivisionId = divisionId,
                        };


                        newSeasonDivisions.Add(seasonDivision);
                    }

                    newSeasonDivisions.RemoveAll(x => seasonDivisionsInDb.Contains(x.DivisionId));

                    _context.SeasonDivision.AddRange(newSeasonDivisions);
                }


                var success = await _context.SaveChangesAsync(cancellationToken) > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving changes");
            }
Ejemplo n.º 7
0
            public async Task <Unit> Handle(CreateTeamSeasonCommand request, CancellationToken cancellationToken)
            {
                var seasonDivision = await _context.SeasonDivision.FirstOrDefaultAsync(
                    x => x.SeasonId == request.SeasonId && x.DivisionId == request.DivisionId, cancellationToken);

                if (seasonDivision == null)
                {
                    seasonDivision = new SeasonDivision
                    {
                        DivisionId = request.DivisionId, SeasonId = request.SeasonId
                    };
                }

                var entity = new TeamSeason
                {
                    TeamId         = request.TeamId,
                    SeasonDivision = seasonDivision,
                    CoachId        = request.CoachId,
                    CapitainId     = request.CapitainId,
                    //RankingPoints = request.RankingPoints,
                    //Fg3a = request.Fg3a,
                    //Fg3m = request.Fg3m,
                    //Fg2a = request.Fg2a,
                    //Fg2m = request.Fg2m,
                    //Fta = request.Fta,
                    //Ftm = request.Ftm,
                    //Orb = request.Orb,
                    //Drb = request.Drb,
                    //Ast = request.Ast,
                    //Stl = request.Stl,
                    //Blk = request.Blk,
                    //Tov = request.Tov,
                    //Fouls = request.Fouls,
                    //OffFouls = request.OffFouls
                };

                _context.TeamSeason.Add(entity);

                var success = await _context.SaveChangesAsync(cancellationToken) > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving changes");
            }
Ejemplo n.º 8
0
        public void ShouldGetTeamsWhenChildrenNullAndHasTeams()
        {
            var division = new SeasonDivision()
            {
                Name = "Test Div"
            };

            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 1"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 2"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 3"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 4"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 5"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 6"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 7"
            });
            division.AddTeam(new SeasonTeam()
            {
                Name = "Team 8"
            });

            Assert.StrictEqual(8, division.Teams.Count);
        }
Ejemplo n.º 9
0
            public async Task <Unit> Handle(CreateSeasonDivisionCommand request, CancellationToken cancellationToken)
            {
                var entity = new SeasonDivision
                {
                    SeasonId   = request.SeasonId,
                    DivisionId = request.DivisionId,
                    WinnerSeasonDivisionTeamId = request.WinnerSeasonDivisionTeamId
                };

                _context.SeasonDivision.Add(entity);

                var success = await _context.SaveChangesAsync(cancellationToken) > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving changes");
            }
Ejemplo n.º 10
0
            public async Task <int> Handle(CreateSeasonCommand request, CancellationToken cancellationToken)
            {
                var newSeasonDivisions = new List <SeasonDivision>();

                var season = new Season
                {
                    Name      = request.Name,
                    StartDate = request.StartDate,
                    EndDate   = request.EndDate
                };

                if (request.DivisionsId.Any())
                {
                    foreach (var divisionId in request.DivisionsId)
                    {
                        var seasonDivision = new SeasonDivision
                        {
                            Season     = season,
                            DivisionId = divisionId,
                        };

                        newSeasonDivisions.Add(seasonDivision);
                    }
                    _context.SeasonDivision.AddRange(newSeasonDivisions);
                }
                else
                {
                    _context.Season.Add(season);
                }


                var success = await _context.SaveChangesAsync(cancellationToken) > 0;

                if (success)
                {
                    return(season.Id);
                }

                throw new Exception("Problem saving changes");
            }
Ejemplo n.º 11
0
        public void ShouldGetAllTeamsInDivision()
        {
            var season = new Season();
            var nhl    = new SeasonDivision()
            {
                Season = season, Name = "NHL", Level = 1
            };
            var eastern = new SeasonDivision()
            {
                Season = season, Name = "Eastern", ParentDivision = nhl, Level = 2
            };
            var western = new SeasonDivision()
            {
                Season = season, Name = "Western", ParentDivision = nhl, Level = 2
            };
            var central = new SeasonDivision()
            {
                Season = season, Name = "Central", ParentDivision = nhl, Level = 2
            };
            var east = new SeasonDivision()
            {
                Season = season, Name = "East", ParentDivision = eastern, Level = 3
            };
            var atlantic = new SeasonDivision()
            {
                Season = season, Name = "Atlantic", ParentDivision = eastern, Level = 3
            };
            var west = new SeasonDivision()
            {
                Season = season, Name = "West", ParentDivision = western, Level = 3
            };
            var northwest = new SeasonDivision()
            {
                Season = season, Name = "NorthWest", ParentDivision = west, Level = 4
            };
            var southwest = new SeasonDivision()
            {
                Season = season, Name = "Northeast", ParentDivision = west, Level = 4
            };

            season.Divisions = new List <SeasonDivision>()
            {
                nhl, eastern, western, central, east, atlantic, west, northwest, southwest
            };
            var teamList = new List <SeasonTeam>()
            {
                CreateSeasonTeam(season, 1, "Team 1", nhl),
                CreateSeasonTeam(season, 2, "Team 2", eastern),
                CreateSeasonTeam(season, 3, "Team 3", east),
                CreateSeasonTeam(season, 4, "Team 4", east),
                CreateSeasonTeam(season, 5, "Team 5", east),
                CreateSeasonTeam(season, 6, "Team 6", northwest),
                CreateSeasonTeam(season, 7, "Team 7", northwest),
                CreateSeasonTeam(season, 8, "Team 8", central),
                CreateSeasonTeam(season, 9, "Team 9", central),
                CreateSeasonTeam(season, 10, "Team 10", atlantic),
                CreateSeasonTeam(season, 11, "Team 11", atlantic),
                CreateSeasonTeam(season, 12, "Team 12", atlantic),
                CreateSeasonTeam(season, 13, "Team 13", atlantic),
                CreateSeasonTeam(season, 14, "Team 14", northwest),
                CreateSeasonTeam(season, 15, "Team 15", southwest),
                CreateSeasonTeam(season, 16, "Team 16", southwest)
            };

            StrictEqual(16, season.GetAllTeamsInDivision(nhl).Count);
            StrictEqual(8, season.GetAllTeamsInDivision(eastern).Count);
            StrictEqual(5, season.GetAllTeamsInDivision(western).Count);
            StrictEqual(2, season.GetAllTeamsInDivision(central).Count);
            StrictEqual(4, season.GetAllTeamsInDivision(atlantic).Count);
            StrictEqual(3, season.GetAllTeamsInDivision(east).Count);
            StrictEqual(5, season.GetAllTeamsInDivision(west).Count);
            StrictEqual(3, season.GetAllTeamsInDivision(northwest).Count);
            StrictEqual(2, season.GetAllTeamsInDivision(southwest).Count);
        }
Ejemplo n.º 12
0
        private SeasonTeam CreateSeasonTeam(Competition competition, int id, string name, SeasonDivision division)
        {
            var team = new SeasonTeam(competition, new Team()
            {
                Id = id, Name = name
            }, 1, null, division);

            if (division.Teams == null)
            {
                division.Teams = new List <SeasonTeam>();
            }
            division.Teams.Add(team);

            return(team);
        }
Ejemplo n.º 13
0
        public void ShouldGetTeamsWhenChildrenNullAndNoTeams()
        {
            var division = new SeasonDivision();

            Assert.StrictEqual(0, division.Teams.Count);
        }