public JsonResult ApplyForTournament(GroupTeamViewModel groupTeam)
        {
            JsonResult result = null;

            try
            {
                var userId = _currentUserService.GetCurrentUserId();

                if (userId == ANONYM)
                {
                    result = Json(ViewModelResources.NoRights);
                }
                else
                {
                    var tournamentRequest = new TournamentRequest {
                        TeamId  = groupTeam.TeamId,
                        UserId  = userId,
                        GroupId = groupTeam.GroupId
                    };
                    _requestService.Create(tournamentRequest);
                    result = Json(ViewModelResources.SuccessRequest);
                }
            }
            catch (ArgumentException ex)
            {
                result = Json(ex.Message);
            }

            return(result);
        }
Esempio n. 2
0
 /// <summary>
 /// Maps TournamentRequest model.
 /// </summary>
 /// <param name="to">Target of the mapping</param>
 /// <param name="from">Source of the mapping</param>
 public static void Map(TournamentRequestEntity to, TournamentRequest from)
 {
     to.Id      = from.Id;
     to.UserId  = from.UserId;
     to.TeamId  = from.TeamId;
     to.GroupId = from.GroupId;
 }
Esempio n. 3
0
        public IHttpActionResult Post([FromBody] TournamentRequest requestBody)
        {
            var rng     = new Random();
            var details = requestBody ?? new TournamentRequest();

            using (var dataContext = new DataContext())
            {
                var userName = User.Identity.Name;
                var user     = dataContext
                               .Users
                               .Where(u => u.UserName == userName)
                               .FirstOrDefault();

                var tournament = dataContext
                                 .Tournaments
                                 .Add(new Tournament
                {
                    Key        = Guid.NewGuid(),
                    Name       = details.name,
                    Seed       = rng.Next(),
                    Players    = new List <Player>(),
                    Organizers = new[] { user },
                });

                dataContext.SaveChanges();

                return(CreatedAtRoute(
                           "tournament-get",
                           new { tournamentKey = tournament.Key },
                           TournamentResponseProvider.Create(tournament)
                           ));
            }
        }
 public TournamentRequestBuilder()
 {
     _tournamentRequest = new TournamentRequest
     {
         TeamId  = 1,
         GroupId = 1,
         UserId  = 1,
     };
 }
Esempio n. 5
0
        /// <summary>
        /// Adds new tournament request.
        /// </summary>
        /// <param name="newEntity">Tournament request to add.</param>
        public void Add(TournamentRequest newEntity)
        {
            var newRequestEntity = new TournamentRequestEntity();

            DomainToDal.Map(newRequestEntity, newEntity);
            _dalRequest.Add(newRequestEntity);
            _unitOfWork.Commit();
            newEntity.Id = newRequestEntity.Id;
        }
Esempio n. 6
0
        /// <summary>
        /// Updates specified tournament request.
        /// </summary>
        /// <param name="updatedEntity">Updated request.</param>
        public void Update(TournamentRequest updatedEntity)
        {
            var requestToUpdate = _dalRequest.SingleOrDefault(t => t.Id == updatedEntity.Id);

            if (requestToUpdate == null)
            {
                throw new ConcurrencyException();
            }

            DomainToDal.Map(requestToUpdate, updatedEntity);
        }
Esempio n. 7
0
        public TournamentRequest CreateTournamentRequest(int idTournament, string email)
        {
            var tournamentRequest = new TournamentRequest
            {
                Id_champ = idTournament,
                Email    = email
            };

            _context.TournamentRequests.InsertOnSubmit(tournamentRequest);
            _context.SubmitChanges();
            return(tournamentRequest);
        }
 private void VerifyCreateTournamentRequest(
     TournamentRequest request,
     Times times,
     string message)
 {
     _tournamentRequestRepositoryMock
     .Verify(
         tr => tr.Add(
             It.Is <TournamentRequest>(p => TournamentRequestAreEquals(p, request))),
         times,
         message);
     _unitOfWorkMock.Verify(uow => uow.Commit(), times);
 }
        /// <summary>
        /// Create a new request
        /// </summary>
        /// <param name="tournamentRequest">Contains Team Id, Group Id, User Id</param>
        public void Create(TournamentRequest tournamentRequest)
        {
            var existCurrentUserTournamentRequest = _getTournamentRequestByAllQuery.Execute(
                new FindByTeamTournamentCriteria {
                GroupId = tournamentRequest.GroupId, TeamId = tournamentRequest.TeamId
            });

            if (existCurrentUserTournamentRequest == null)
            {
                _tournamentRequestRepository.Add(tournamentRequest);
                _tournamentRequestRepository.UnitOfWork.Commit();
                NotifyAdmins(tournamentRequest);
            }
        }
Esempio n. 10
0
 /// <summary>
 /// Maps domain entity to presentation
 /// </summary>
 /// <param name="request"><see cref="TournamentRequest"/> domain entity.</param>
 /// <param name="team">Team to bind</param>
 /// <param name="user"> User who connects.</param>
 /// <param name="tournament">Tournament to bind</param>
 /// <returns> View model object</returns>
 public static TournamentRequestViewModel Map(
     TournamentRequest request,
     Team team,
     User user,
     Tournament tournament)
 {
     return(new TournamentRequestViewModel {
         Id = request.Id,
         PersonId = request.UserId,
         TeamId = request.TeamId,
         PersonName = user.PersonName,
         TeamTitle = team.Name,
         TournamentId = tournament.Id,
         TournamentTitle = tournament.Name
     });
 }
Esempio n. 11
0
        // POST: api/Tournament
        public void Post(TournamentRequest request)
        {
            var tournament = new Tournament();

            tournament.Active  = true;
            tournament.Title   = request.Title;
            tournament.Matches = new List <Match>();

            if (request.Competitors == 2)
            {
                CreateBrackets(1, tournament.Matches);
            }
            else if (request.Competitors <= 4)
            {
                CreateBrackets(2, tournament.Matches);
            }
            else if (request.Competitors <= 8)
            {
                CreateBrackets(3, tournament.Matches);
            }
            else if (request.Competitors <= 16)
            {
                CreateBrackets(4, tournament.Matches);
            }
            else if (request.Competitors <= 32)
            {
                CreateBrackets(5, tournament.Matches);
            }
            else if (request.Competitors <= 64)
            {
                CreateBrackets(6, tournament.Matches);
            }
            else
            {
                throw new Exception("Too many competitors");
            }

            using (var context = new TournamentContext())
            {
                context.Tournaments.Add(tournament);
                context.SaveChanges();
            }
        }
        private void NotifyAdmins(TournamentRequest request)
        {
            var subject = string.Format(
                Properties.Resources.TournamentRequestEmailSubjectToAdmins,
                request.Id);

            var body = string.Format(
                Properties.Resources.TournamentRequestEmailBodyToAdmins,
                request.Id,
                request.UserId,
                request.TournamentId,
                request.TeamId);
            var adminList = _userService.GetAdminsList();

            foreach (var admin in adminList)
            {
                var emailMessage = new EmailMessage(admin.Email, subject, body);
                _mailService.Send(emailMessage);
            }
        }
Esempio n. 13
0
        public IHttpActionResult Put(Guid tournamentKey, [FromBody] TournamentRequest requestBody)
        {
            if (requestBody == null)
            {
                return(BadRequest("No request body provided."));
            }

            using (var dataContext = new DataContext())
            {
                var tournament = dataContext.GetTournament(tournamentKey);

                if (tournament == null)
                {
                    return(NotFound());
                }

                tournament.Name = requestBody.name;
                dataContext.SaveChanges();

                return(Ok(TournamentResponseProvider.Create(tournament)));
            }
        }
 private void MockGetRequestByIdQuery(TournamentRequest request)
 {
     _getRequestByIdQueryMock.Setup(tr => tr.Execute(It.IsAny <FindByIdCriteria>())).Returns(request);
 }
 private void MockGetAllTournamentRequestQuery(TournamentRequest testData)
 {
     _getRequestByAllQueryMock.Setup(tr => tr.Execute(It.IsAny <FindByTeamTournamentCriteria>())).Returns(testData);
 }
 private bool TournamentRequestAreEquals(TournamentRequest x, TournamentRequest y)
 {
     return(new TournamentRequestComparer().Compare(x, y) == 0);
 }
 /// <summary>
 /// Add tournament request to collection.
 /// </summary>
 /// <param name="newTournamentRequest">Request to add</param>
 /// <returns>Builder object with collection of requests.</returns>
 public TournamentRequestServiceTestFixture AddTeam(
     TournamentRequest newTournamentRequest)
 {
     _request.Add(newTournamentRequest);
     return(this);
 }