示例#1
0
        public virtual ActionResult EditTournament(long tournamentId)
        {
            var tournament = TournamentService.GetTournamentGuarded(tournamentId);
            var model      = new EditTournamentViewModel(tournament);

            return(View(model));
        }
        public void SaveTournament_DeletesRound_ReordersIndicies()
        {
            var updatedTournament = new Tournament();

            updatedTournament.InitializeDefaults();

            var dbMock = DatabaseFaker.GetFake();
            var db     = dbMock.Object;

            updatedTournament.Rounds.First().RoundNo = 2;
            int firstRoundNo = 2;

            dbMock.Setup(p => p.GetTournament(It.IsAny <long>())).Returns(updatedTournament);
            dbMock.Setup(p => p.UpdateTournamentAndRounds(It.IsAny <Tournament>())).Callback <Tournament>(
                (tournament) =>
            {
                firstRoundNo = tournament.Rounds.First().RoundNo;
            });

            var target = new TournamentAdminController(db, null, new Mock <NaHub>().Object);
            var updatedTouranmentModel = new EditTournamentViewModel(updatedTournament);

            target.SaveTournament(updatedTouranmentModel);

            Assert.AreEqual(1, firstRoundNo);
        }
        public ActionResult Update(int TournamentID = -1)
        {
            logger.Debug("User " + WebSecurity.GetUserId(User.Identity.Name) +
                         " \"" + User.Identity.Name + "\" visited TournamentsManagement/Tournament/Update");

            Tournament tournament = repository.Tournaments.Where(t => t.TournamentID == TournamentID).FirstOrDefault();

            if (tournament == null)
            {
                logger.Warn("Tournament with id = " + TournamentID + " not found");
                throw new HttpException(404, "Tournament not found");
            }

            EditTournamentViewModel viewModel = new EditTournamentViewModel()
            {
                TournamentID            = tournament.TournamentID,
                Name                    = tournament.Name,
                TournamentTypesListID   = (int)tournament.Type,
                TournamentFormatsListID = (int)tournament.Format,

                ShowSolutionSendingTime = tournament.ShowSolutionSendingTime,
                ShowTimer = tournament.ShowTimer,

                StartDate = tournament.StartDate,
                StartTime = tournament.StartDate,
                EndDate   = tournament.EndDate,
                EndTime   = tournament.EndDate,
                Problems  = tournament.Problems.Select(p => p.Name)
            };

            return(View(viewModel));
        }
        public ActionResult EditTournament(EditTournamentViewModel viewModel)
        {
            var tour = new SAP.DAL.Tables.Tournament
            {
                Id          = viewModel.Id,
                Title       = viewModel.Title,
                Description = viewModel.Description,
                StartDate   = viewModel.StartDate.Add(viewModel.StartTime),
                EndDate     = viewModel.EndDate.Add(viewModel.EndTime),
                MaxUsers    = viewModel.MaxUsers
            };

            bool result = _tournamentManager.EditTournament(tour);

            if (result)
            {
                TempData["Alert"] = SetAlert.Set("Poprawnie zmodfyfikowano turniej " + viewModel.Title, "Sukces", AlertType.Success);
            }
            else
            {
                TempData["Alert"] = SetAlert.Set("Wystąpił błąd, prosimy spróbować później", "Błąd", AlertType.Danger);
            }

            return(RedirectToAction("Index"));
        }
示例#5
0
        public virtual ActionResult SaveTournament(EditTournamentViewModel model)
        {
            var tourney = TournamentService.GetTournamentGuarded(model.Tournament.Id);

            model.IndexToRoundNo();
            model.Tournament.Rounds = model.RoundList;
            TournamentService.UpdateTournamentAndRounds(model.Tournament);
            return(this.RedirectToAction(MVC.Admin.TournamentAdmin.EditTournament(tourney.Id)));
        }
示例#6
0
        // Called from javascript
        public virtual ActionResult EditTournamentRound(int id)
        {
            var model = new EditTournamentViewModel(); // Dummy container object

            model.RoundIx    = id;
            model.RoundList  = new List <Round>(id + 1);
            model.RoundCount = id + 1;
            for (int i = 0; i < id + 1; i++)
            {
                model.RoundList.Add(new Round());
            }
            return(PartialView(model));
        }
示例#7
0
        public virtual ActionResult StartTournament(EditTournamentViewModel model)
        {
            SaveTournament(model);
            var tourney = TournamentService.GetTournamentGuarded(model.Tournament.Id);
            ValidationResultSet result;

            if (!tourney.CanBeStarted(out result))
            {
                FormFeedbackHandler.SetError(HttpContext, result.GetFirstErrorMessage());
            }
            else
            {
                TournamentService.StartTournament(tourney);
            }
            return(this.RedirectToAction(MVC.Admin.TournamentAdmin.EditTournament(tourney.Id)));
        }
        public void StartTournament_SavesAndStarts()
        {
            var dbMock     = DatabaseFaker.GetFake();
            var db         = dbMock.Object;
            var controller = new TournamentAdminController(db, ServiceFaker.GetFakeFormFeedbackHandler(), new Mock <NaHub>().Object);
            var tournament = Factory.CreateInitializedTourney()
                             .WithJudges(1)
                             .WithContestants(4);

            db.AddTournament(tournament);

            var model = new EditTournamentViewModel(tournament);

            model.RoundList[0].ContestantsPerHeat = 3;
            controller.StartTournament(model);

            Assert.AreEqual(3, tournament.GetRoundNo(1).ContestantsPerHeat);
            Assert.AreEqual(TournamentStatus.Running, tournament.Status);
        }
        public void CreateShallowCopyOf_OK()
        {
            var round = new Round()
            {
                Id = 2
            };
            var tournament = new Tournament();

            tournament.Name   = "Roger";
            tournament.Id     = 1;
            tournament.Rounds = new HashSet <Round>();
            tournament.Rounds.Add(round);

            var tmodel = new EditTournamentViewModel(tournament);

            Assert.AreEqual("Roger", tmodel.Tournament.Name);
            Assert.AreEqual(1, tmodel.Tournament.Id);
            Assert.AreSame(tournament.Rounds, tmodel.Tournament.Rounds);
            Assert.AreSame(tournament.Rounds.ToList().FirstOrDefault(), tmodel.Tournament.Rounds.ToList().FirstOrDefault());
            Assert.AreEqual(tournament.Rounds.ToList().FirstOrDefault(), tmodel.RoundList[0]);
        }
        public void EditTournamentPost_AddDeleteAndReplaceOk()
        {
            var dbMock        = DatabaseFaker.GetFake();
            var db            = dbMock.Object;
            var oldTournament = new Tournament();

            oldTournament.Rounds = new HashSet <Round>();
            oldTournament.Rounds.Add(new Round()
            {
                Id = 1
            });
            oldTournament.Rounds.Add(new Round()
            {
                Id = 2
            });
            db.AddTournament(oldTournament);

            var newTournament = new Tournament();

            newTournament.Rounds = new HashSet <Round>();
            var newTournamentModel = new EditTournamentViewModel(newTournament);

            newTournamentModel.RoundList.Add(new Round()
            {
                Id = 1, Title = "Hi"
            });
            newTournamentModel.RoundList.Add(new Round()
            {
                Id = 3
            });

            var target = new TournamentAdminController(db, ServiceFaker.GetFakeFormFeedbackHandler(), new Mock <NaHub>().Object);

            target.SaveTournament(newTournamentModel);

            Assert.IsTrue(oldTournament.Rounds.Any(p => p.Id == 1), "1");
            Assert.IsFalse(oldTournament.Rounds.Any(p => p.Id == 2), "2");
            Assert.IsTrue(oldTournament.Rounds.Any(p => p.Id == 3), "3");
            Assert.AreEqual("Hi", oldTournament.Rounds.FirstOrDefault(p => p.Id == 1).Title);
        }
        public ActionResult EditTournament(int tournamentId)
        {
            var dbModel = _tournamentManager.Tournaments
                          .Where(x => x.Id == tournamentId)
                          .FirstOrDefault();

            var viewModel = new EditTournamentViewModel
            {
                Id           = dbModel.Id,
                Title        = dbModel.Title,
                Description  = dbModel.Description,
                StartDate    = dbModel.StartDate.Date,
                EndDate      = dbModel.EndDate.Date,
                StartTime    = dbModel.StartDate.TimeOfDay,
                EndTime      = dbModel.EndDate.TimeOfDay,
                MaxUsers     = dbModel.MaxUsers,
                IsActive     = dbModel.IsActive,
                IsConfigured = dbModel.IsConfigured
            };

            return(View(viewModel));
        }
        public void SaveTournament_StartedTournament_SavesNewName()
        {
            var updatedTournament = new Tournament();

            updatedTournament.InitializeDefaults();
            updatedTournament.Name = "After";

            var savedTournament = new Tournament();

            savedTournament.InitializeDefaults();
            savedTournament.Name = "Before";

            var dbMock = DatabaseFaker.GetFake();
            var db     = dbMock.Object;

            dbMock.Setup(p => p.GetTournament(It.IsAny <long>())).Returns(savedTournament);

            var target = new TournamentAdminController(db, ServiceFaker.GetFakeFormFeedbackHandler(), new Mock <NaHub>().Object);
            var updatedTouranmentModel = new EditTournamentViewModel(updatedTournament);

            target.SaveTournament(updatedTouranmentModel);

            Assert.AreEqual("After", savedTournament.Name);
        }
示例#13
0
 public EditTournamentView(EditTournamentViewModel vm)
 {
     InitializeComponent();
     vm.CloseAction = this.Close;
     DataContext    = vm;
 }
示例#14
0
        public virtual ActionResult CreateTournament()
        {
            var model = new EditTournamentViewModel(new Tournament());

            return(View(model));
        }