예제 #1
0
        public void CreateTournament_PrizeLessThanUserCurrency_Test()
        {
            //Arrange
            TournamentManager tournament    = new TournamentManager("Test");
            TournamentDTO     tournamentDTO = new TournamentDTO()
            {
                ID             = "",
                Name           = "Test Tournament",
                OrganisationID = "null",
                UserID         = "021d968c-b151-4399-903e-19d867f08e5a",
                Size           = 32,
                Prize          = 9,
                BuyIn          = 0,
                Game           = Games.CounterStrike,
                StartTime      = new DateTime(2021, 2, 1, 12, 00, 00),
                Status         = TourneyStatus.Planned,
                TeamSize       = 1
            };

            //Act
            var result = tournament.CreateTournament(tournamentDTO);

            //Assert
            Assert.AreEqual(TournamentManagerErrorCodes.NoError, result);
        }
예제 #2
0
        public void CreateTournament_NoHost_Test()
        {
            //Arrange
            TournamentManager tournament    = new TournamentManager("Test");
            TournamentDTO     tournamentDTO = new TournamentDTO()
            {
                ID             = "",
                Name           = "Test Tournament",
                OrganisationID = "null",
                UserID         = "null",
                Size           = 32,
                Prize          = 0,
                BuyIn          = 0,
                Game           = Games.CounterStrike,
                StartTime      = new DateTime(2021, 2, 1, 12, 00, 00),
                Status         = TourneyStatus.Planned,
                TeamSize       = 1
            };

            //Act
            var result = tournament.CreateTournament(tournamentDTO);

            //Assert
            Assert.AreEqual(TournamentManagerErrorCodes.NoHost, result);
        }
예제 #3
0
        public async Task <IActionResult> CreateTournament(CreateTournamentViewModel model)
        {
            var currentUser = await userManager.GetUserAsync(User);

            TournamentDTO tournamentDTO = new TournamentDTO()
            {
                Name           = model.Name,
                OrganisationID = model.OrganisationID,
                UserID         = currentUser.Id,
                Size           = model.Size,
                Prize          = model.Prize,
                BuyIn          = model.BuyIn,
                Game           = model.Game,
                StartTime      = model.StartTime,
                TeamSize       = model.TeamSize
            };
            var result = tournamentManager.CreateTournament(tournamentDTO);

            ViewData["Creator"]  = model.OrganisationID == "null" ? "User" : "Org";
            ViewData["OrgName"]  = model.OrganisationID == "null" ? null : organisationManager.GetOrganisationByID(model.OrganisationID).Name;
            ViewData["UserName"] = currentUser.UserName;
            switch (result)
            {
            case TournamentManagerErrorCodes.NoError:
                return(RedirectToAction("Index"));

            case TournamentManagerErrorCodes.BuyInMoreOrEqualToPrize:
                ModelState.AddModelError("BuyIn", "Buy In can't be less or equal to prize!");
                return(View(model));

            case TournamentManagerErrorCodes.NoHost:
                return(RedirectToAction("Error", "Home", new { errorMessage = "There was no Host assigned to the tournament!", errorDate = DateTime.Now }));

            case TournamentManagerErrorCodes.NotEnoughMoney:
                ModelState.AddModelError("Prize", "You don't have enough currency to create a tournament with such a prize pool!");
                return(View(model));

            case TournamentManagerErrorCodes.UnexpectedError:
            default:
                return(RedirectToAction("Error", "Home", new { errorMessage = "An Unknown error occured while creating a tournament", errorDate = DateTime.Now }));
            }
        }