public ActionResult Create(CreateDivisionViewModel viewModel)
        {
            if (!ModelState.IsValid) {
            return View(viewModel);
              }
              DateTime startingDate;
              if (!DateTime.TryParse(viewModel.StartingDate, out startingDate)) {
            ModelState.AddModelErrorFor<CreateDivisionViewModel>(m => m.StartingDate, "Enter a valid date");
            return View(viewModel);
              }

              Season season = repository.Get<Season>(viewModel.SeasonId);
              if (null == season) {
            TempData[GlobalViewDataProperty.PageErrorMessage] = "Invalid/missing season, cannot create division";
            return View(viewModel);
              }

              if (season.DivisionNameIsInUse(viewModel.Name)) {
            ModelState.AddModelErrorFor<CreateDivisionViewModel>(m => m.Name, "This name is already in use");
            return View(viewModel);
              }

              Division division = new Division(viewModel.Name, startingDate, season);
              repository.SaveOrUpdate(division);
              season.AddDivision(division);
              repository.SaveChanges();

              // I hate doing this here because theoretically /divisions/create could be called
              // from anywhere, but I don't know what else to do now. Same comment applies for all
              // redirects in this controller
              return RedirectToAction("Details", "Seasons", new { id = season.Id });
        }
Exemple #2
0
 public override void Given()
 {
     var season = new Season("temp", GameType.EightBall);
       season.SetIdTo(1);
       division = new Division("temp", DateTime.Now, season);
       season.AddDivision(division);
       division.SetIdTo(1);
       repository.Setup(r => r.Get<Division>(division.Id)).Returns(division);
 }
Exemple #3
0
        public virtual void AddDivision(Division division)
        {
            Arg.NotNull(division, "division");

              if (!Divisions.Contains(division)) {
            Divisions.Add(division);
            division.Season = this;
              }
        }
Exemple #4
0
        public override void Given()
        {
            var division = new Division(divisionName, DateTime.Now, new Season("temp", GameType.EightBall));
              division.SetIdTo(divisionId);
              repository.Setup(r => r.Get<Division>(divisionId)).Returns(division);

              users = DomainModelHelper.GetUsers(5);
              repository.Setup(r => r.SqlQuery<User>(It.IsAny<string>(), division.Season.Id)).Returns(users.AsQueryable());
        }
Exemple #5
0
        public Team(string name, Division division)
            : this()
        {
            Arg.NotNull(name, "name");
              Arg.NotNull(division, "division");

              Name = name;
              Division = division;
        }
Exemple #6
0
 public EditDivisionViewModel CreateEditDivisionViewModel(Division division)
 {
     var model = new EditDivisionViewModel() {
     Id = division.Id,
     Version = division.EncodedVersion,
     SeasonName = division.Season.Name,
     Name = division.Name,
     StartingDate = division.StartingDate.ToShortDateString()
       };
       return model;
 }
 private DivisionScheduleViewModel CreateDivisionScheduleViewModel(Division division, User user)
 {
     var model = new DivisionScheduleViewModel();
       model.Id = division.Id;
       model.Name = division.Name;
       if (division.Meets.Count() > 0) {
     model.HasSchedule = true;
     var team = division.Teams.Where(t => t.Players.Contains(user)).SingleOrDefault();
     model.Schedule = new ScheduleViewModel(division.Meets, division.StartingDate, team);
       }
       else {
     model.HasSchedule = false;
       }
       return model;
 }
Exemple #8
0
 public override void Given()
 {
     var user = new User("Test", "test", "test", "test", "test");
       user.SetIdTo(id);
       authService.MockPrincipal.User = user;
       var season = new Season("Test", GameType.EightBall);
       season.SetIdTo(id);
       season.IsActive = true;
       var seasons = new List<Season>();
       seasons.Add(season);
       repository.Setup(r => r.All<Season>()).Returns(seasons.AsQueryable());
       var division = new Division("Test", DateTime.Now, season);
       var team = new Team("Test", division);
       team.SetIdTo(id);
       team.AddPlayer(user);
       repository.Init<Team>(new List<Team> { team }.AsQueryable());
 }
 private void DeleteDivisionTeams(Division division)
 {
     var teamsToDelete = repository.All<Team>().Where(t => t.Division.Id == division.Id);
       foreach (var team in teamsToDelete) {
     repository.Delete(team);
       }
 }
 private void DeleteDivisionMeets(Division division)
 {
     var meetsToDelete = repository.All<Meet>().Where(m => m.Division.Id == division.Id).ToList();
       foreach (var meet in meetsToDelete) {
     repository.Delete(meet);
       }
 }
 private void DeleteDivision(Division division)
 {
     DeleteDivisionMeets(division);
       DeleteDivisionTeams(division);
       repository.Delete(division);
 }
Exemple #12
0
        public override void EstablishContext()
        {
            player = new User("test", "test", "test", "test", "test");
              opponent = new User("opponent", "opponent", "opponent", "opponent", "opponent");
              var season = new Season("test", GameType.EightBall);
              var division = new Division("test", DateTime.Parse("1/1/2011"), season);
              playerTeam = new Team("team1", division);
              opponentTeam = new Team("team2", division);
              playerTeam.AddPlayer(player);
              opponentTeam.AddPlayer(opponent);
              meet = new Meet(playerTeam, opponentTeam, 1);

              repository = new Mock<IRepository>();
              results = new List<MatchResult>();
              repository.Setup(r => r.All<MatchResult>()).Returns(() => results.AsQueryable());
        }
Exemple #13
0
        public virtual void RemoveDivision(Division division)
        {
            Arg.NotNull(division, "division");

              if (Divisions.Contains(division)) {
            Divisions.Remove(division);
            division.Season = null;
              }
        }
Exemple #14
0
        public override void EstablishContext()
        {
            var repository = new Mock<IRepository>();
              authenticationService = AuthHelper.CreateMockAuthenticationService();
              controller = new MeetsController(repository.Object, authenticationService);

              loggedInUser = new User("test", "test", "test", "test", "test");
              loggedInUser.SetIdTo(99);
              authenticationService.MockPrincipal.MockIdentity.IsAuthenticated = true;
              authenticationService.MockPrincipal.MockIdentity.Name = loggedInUser.Username;

              // set up a meet
              var season = new Season("s1", GameType.EightBall);
              var division = new Division("d1", DateTime.Now, season);
              var team1 = new Team("team1", division);
              team1.AddPlayer(new User("t1p1", "pass", "a", "b", "e"));
              team1.AddPlayer(new User("t1p2", "pass", "c", "d", "e"));
              var team2 = new Team("team2", division);
              team2.AddPlayer(new User("t2p1", "pass", "e", "f", "e"));
              team2.AddPlayer(new User("t2p2", "pass", "e", "f", "e"));
              meet = new Meet(team1, team2, 0);
              meet.SetIdTo(1);
              repository.Setup(r => r.Get<Meet>(meet.Id)).Returns(meet);

              var users = team1.Players.Concat(team2.Players).Concat(new List<User> { loggedInUser });
              repository.Init<User>(users.AsQueryable());
        }
 private DivisionViewModel CreateDivisionViewModel(Division division)
 {
     var model = new DivisionViewModel();
       model.Id = division.Id;
       model.Name = division.Name;
       model.StartingDate = division.StartingDate;
       model.CanDelete = division.CanDelete();
       if (division.Meets.Any()) {
     model.Schedule = new ScheduleViewModel(division.Meets, division.StartingDate);
     model.HasSchedule = true;
     if (division.Meets.Where(m => m.Matches.Where(match => match.IsComplete).Any()).Any()) {
       model.HasCompletedMatches = true;
     }
       }
       model.Teams = division.Teams.Select(t => CreateTeamViewModel(t)).ToList();
       if (model.Teams.Count() > 1) {
     model.HasEnoughTeamsForSchedule = true;
       }
       else {
     model.HasEnoughTeamsForSchedule = false;
       }
       return model;
 }
Exemple #16
0
        public override void EstablishContext()
        {
            var repository = new Mock<IRepository>();
              authService = AuthHelper.CreateMockAuthenticationService();
              controller = new UpdateMatchController(repository.Object, authService);

              loggedInUser = new User("admin", "pass", "first", "last", "email");
              loggedInUser.SetIdTo(3);
              loggedInUser.AddRole(new Role(Roles.Administrators));
              authService.MockPrincipal.MockIdentity.IsAuthenticated = true;
              authService.MockPrincipal.MockIdentity.Name = loggedInUser.Username;

              var season = new Season("test", GameType.EightBall);
              var division = new Division("test", DateTime.Parse("1/1/2011"), season);
              season.AddDivision(division);
              var team1 = new Team("team1", division);
              division.AddTeam(team1);
              player1 = new User("player1", "test", "player1", "test", "test");
              player1.SetIdTo(1);
              team1.AddPlayer(player1);
              var team2 = new Team("team2", division);
              division.AddTeam(team2);
              player2 = new User("player2", "test", "player2", "test", "test");
              player2.SetIdTo(2);
              team2.AddPlayer(player2);
              var meet = new Meet(team1, team2, 1);
              division.Meets.Add(meet);
              match = new Web.Models.Match(meet, new MatchPlayer(player1, team1), new MatchPlayer(player2, team2));
              match.SetIdTo(1);

              repository.Setup(r => r.Get<Web.Models.Match>(match.Id)).Returns(match);
              repository.Setup(r => r.Get<User>(player1.Id)).Returns(player1);
              repository.Setup(r => r.Get<User>(player2.Id)).Returns(player2);

              var player1Results = new List<MatchResult>();
              var player2Results = new List<MatchResult>();
              for (int i = 0; i < 4; i++) {
            var tempMatch = new Web.Models.Match(meet, new MatchPlayer(player1, team1), new MatchPlayer(player2, team2));
            meet.AddMatch(tempMatch);
            tempMatch.DatePlayed = DateTime.Parse("8/1/2010").AddDays(i);
            tempMatch.IsComplete = true;
            var matchResult = new MatchResult(player1, 30, 0, 3);
            player1Results.Add(matchResult);
            tempMatch.AddResult(matchResult);
            matchResult = new MatchResult(player2, 30, 0, 3);
            player2Results.Add(matchResult);
            tempMatch.AddResult(matchResult);
              }
              repository.InitAll(new List<User> { player1, player2, loggedInUser }.AsQueryable(),
            loggedInUser.Roles.AsQueryable(),
            new List<Season> { season }.AsQueryable());
              player1.UpdateSkillLevel(GameType.EightBall, repository.Object);
              player1SkillLevel = player1.SkillLevels.Where(sl => sl.GameType == GameType.EightBall).First().Value;
              player2.UpdateSkillLevel(GameType.EightBall, repository.Object);
              player2SkillLevel = player2.SkillLevels.Where(sl => sl.GameType == GameType.EightBall).First().Value;

              viewModel = new UpdateMatchViewModel() {
            Id = match.Id,
            IsForfeit = false,
            Player1Id = player1.Id,
            Player1Innings = 2,
            Player1DefensiveShots = 1,
            Player1Wins = 4,
            Player2Id = player2.Id,
            Player2Innings = 2,
            Player2DefensiveShots = 1,
            Player2Wins = 4,
            Winner = player1.Id,
            Date = "1/1/2011",
            Time = "06:00 PM"
              };
        }