示例#1
0
        public async Task CreateTournamentEndpointShouldFailIfTournamentAlreadyExists()
        {
            using (var httpClient = _factory.CreateClient())
                using (var request1 = new HttpRequestMessage(HttpMethod.Put, "api/tournament/"))
                    using (var request2 = new HttpRequestMessage(HttpMethod.Put, "api/tournament/"))
                    {
                        var model = new TournamentCreateModel
                        {
                            TeamsCount     = 2,
                            TournamentName = Guid.NewGuid().ToString()
                        };

                        request1.Content = new ObjectContent <TournamentCreateModel>(model,
                                                                                     new JsonMediaTypeFormatter(),
                                                                                     MediaTypeNames.Application.Json);

                        request2.Content = new ObjectContent <TournamentCreateModel>(model,
                                                                                     new JsonMediaTypeFormatter(),
                                                                                     MediaTypeNames.Application.Json);

                        using (var response1 = await httpClient.SendAsync(request1))
                            using (var response2 = await httpClient.SendAsync(request2))
                            {
                                response1.StatusCode.ShouldBe(HttpStatusCode.OK);
                                response2.StatusCode.ShouldNotBe(HttpStatusCode.OK);
                            }
                    }
        }
        public async Task <IActionResult> CreateTournament(TournamentCreateModel model)
        {
            var request    = new CreateTournamentRequest(model.TournamentName, model.TeamsCount);
            var tournament = await _mediator.Send(request);

            return(Ok(tournament.Name));
        }
示例#3
0
        public async Task CreateTournamentEndpointShouldCreateItWithALotOfTeams()
        {
            using (var httpClient = _factory.CreateClient())
                using (var request = new HttpRequestMessage(HttpMethod.Put, "api/tournament/?tournamentName=first"))
                {
                    var model = new TournamentCreateModel
                    {
                        TournamentName = Guid.NewGuid().ToString(),
                        TeamsCount     = 4
                    };

                    request.Content = new ObjectContent <TournamentCreateModel>(model,
                                                                                new JsonMediaTypeFormatter(),
                                                                                MediaTypeNames.Application.Json);

                    using (var response = await httpClient.SendAsync(request))
                    {
                        response.StatusCode.ShouldBe(HttpStatusCode.OK);

                        using (var getRequest = new HttpRequestMessage(HttpMethod.Get,
                                                                       $"api/tournament/?tournamentName={model.TournamentName}"))
                            using (var getResponse = await httpClient.SendAsync(getRequest))
                            {
                                response.StatusCode.ShouldBe(HttpStatusCode.OK);

                                var content = await getResponse.Content.ReadAsAsync <TournamentModel>();

                                var homeTeams = content.Rounds.SelectMany(x => x.Games)
                                                .Select(x => x.HomeTeam)
                                                .Distinct()
                                                .ToArray();

                                var guestTeams = content.Rounds.SelectMany(x => x.Games)
                                                 .Select(x => x.HomeTeam)
                                                 .Distinct()
                                                 .ToArray();

                                homeTeams.Length.ShouldBe(guestTeams.Length);
                                homeTeams.Length.ShouldBe(model.TeamsCount);
                            }
                    }
                }
        }
示例#4
0
        public async Task CreateTournamentEndpointShouldCreateItEventWoName()
        {
            using (var httpClient = _factory.CreateClient())
                using (var request = new HttpRequestMessage(HttpMethod.Put, "api/tournament/"))
                {
                    var model = new TournamentCreateModel
                    {
                        TeamsCount = 4
                    };

                    request.Content = new ObjectContent <TournamentCreateModel>(model,
                                                                                new JsonMediaTypeFormatter(),
                                                                                MediaTypeNames.Application.Json);

                    using (var response = await httpClient.SendAsync(request))
                    {
                        response.StatusCode.ShouldBe(HttpStatusCode.OK);
                    }
                }
        }
示例#5
0
        public ActionResult Create()
        {
            var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var roleManager = Request.GetOwinContext().Get <ApplicationRoleManager>();

            var role  = roleManager.Roles.Single(r => r.Name == "Host");
            var hosts = userManager.Users.Where(u => u.Roles.Any(r => r.RoleId == role.Id)).Select(x => new SelectListItem
            {
                Text  = x.UserName,
                Value = x.Id
            }).ToList();

            var userId = User.Identity.GetUserId();

            hosts.Remove(hosts.First(x => x.Value == userId));

            var model = new TournamentCreateModel()
            {
                Year = DateTime.Now.Year, HostsAvailable = hosts
            };

            return(View(model));
        }
示例#6
0
        public ActionResult Create(TournamentCreateModel model, params string[] selectedHost)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var modelBL = _mapper.Map <TournamentBL>(model);

            if (selectedHost == null)
            {
                selectedHost = new string[] { }
            }
            ;

            var userId = User.Identity.GetUserId();

            modelBL.HostsId     = $"{userId};{string.Join(";", selectedHost)}";
            modelBL.DateCreated = DateTime.Now;

            _tournamentService.Create(modelBL);

            return(RedirectToAction("Index"));
        }
 public async Task Create(TournamentCreateModel model)
 {
     var obj = _mapper.Map <Tournament>(model);
     await _repository.CreateAndSaveAsync(obj);
 }
示例#8
0
        //[Authorize(Roles = PlayerRolesConst.MainPlayer)]
        public async Task <IActionResult> Create(TournamentCreateModel model)
        {
            await _tournamentService.Create(model);

            return(Ok());
        }