コード例 #1
0
        public IActionResult CreateView()
        {
            ViewBag.TeamName = new SelectList(_context.Teams, "TeamId", "Name");
            AddMatchDto newMatch = new AddMatchDto();

            ViewBag.Match = newMatch;
            return(View());
        }
コード例 #2
0
        public async Task <IActionResult> Create(AddMatchDto newMatch)
        {
            ServiceResponse <List <GetMatchDto> > response = await _matchService.AddMatch(newMatch);

            if (response.Success == false)
            {
                return(BadRequest(response));
            }
            return(Ok(response));
        }
コード例 #3
0
        public async Task <ServiceResponse <List <GetMatchDto> > > AddMatch(AddMatchDto newMatch)
        {
            ServiceResponse <List <GetMatchDto> > response = new ServiceResponse <List <GetMatchDto> >();
            string newMatchDate = newMatch.MatchTime.ToString("MM/dd/yyyy");

            if (newMatch.HostTeam.ToLower().Equals(newMatch.GuestTeam.ToLower()))
            {
                response.Success = false;
                response.Message = "Guest team and host team can't be the same.";
            }
            else if (DateTime.Compare(DateTime.UtcNow, newMatch.MatchTime) > 0)
            {
                response.Success = false;
                response.Message = "Start time of the match can't be in past.";
            }
            else if (newMatch.HostTeamPlayers.Count() < 6)
            {
                response.Success = false;
                response.Message = "You must pick at least 6 players from host team.";
            }
            else if (newMatch.GuestTeamPlayers.Count() < 6)
            {
                response.Success = false;
                response.Message = "You must pick at least 6 players from guest team.";
            }
            else if (checkTeamDates(newMatch.HostTeam, newMatchDate) || checkTeamDates(newMatch.GuestTeam, newMatchDate))
            {
                response.Success = false;
                response.Message = "Teams can't have two mathes at the same day.";
            }
            else if (checkChosenPlayers(newMatch.HostTeam, newMatch.HostTeamPlayers) != null)
            {
                response.Success = false;
                response.Message = $"Player {checkChosenPlayers(newMatch.HostTeam, newMatch.HostTeamPlayers)} doesn't play in {newMatch.HostTeam}.";
            }
            else if (checkChosenPlayers(newMatch.GuestTeam, newMatch.GuestTeamPlayers) != null)
            {
                response.Success = false;
                response.Message = $"Player {checkChosenPlayers(newMatch.GuestTeam, newMatch.GuestTeamPlayers)} doesn't play in {newMatch.GuestTeam}.";
            }
            else
            {
                Match newMatchDb = new Match();
                newMatchDb.HostTeam   = newMatch.HostTeam;
                newMatchDb.GuestTeam  = newMatch.GuestTeam;
                newMatchDb.MatchTime  = newMatch.MatchTime;
                newMatchDb.MatchPlace = newMatch.MatchPlace;
                newMatchDb.Result     = "0:0";

                await _context.Matches.AddAsync(newMatchDb);

                await _context.SaveChangesAsync();

                foreach (var guestTeamPlayer in newMatch.GuestTeamPlayers)
                {
                    Player playerDb1 = await _context.Players.FirstOrDefaultAsync(p => p.Name.Equals(guestTeamPlayer));

                    playerDb1.Matches = playerDb1.Matches + 1;

                    _context.Players.Update(playerDb1);
                    await _context.SaveChangesAsync();
                }
                foreach (var hostTeamPlayer in newMatch.HostTeamPlayers)
                {
                    Player playerDb2 = await _context.Players.FirstOrDefaultAsync(p => p.Name.ToLower().Equals(hostTeamPlayer.ToLower()));

                    playerDb2.Matches = playerDb2.Matches + 1;

                    _context.Players.Update(playerDb2);
                    await _context.SaveChangesAsync();
                }
                response.Data = (_context.Matches.Select(a => _mapper.Map <GetMatchDto>(a))).ToList();
            }
            return(response);
        }