public async Task <bool> SearchForMatch(int userId)
        {
            var userToMatch = await _userRepository.GetUserById(userId);

            var awaitingMatch = await GetAwaitingMatchToMatchWithUser(userToMatch);

            if (awaitingMatch == null)
            {
                return(false);
            }

            var isUserToMatchAndAwaitingMatchAlreadyMatched = await IsMatchUnique(userId, awaitingMatch.UserId);

            if (isUserToMatchAndAwaitingMatchAlreadyMatched)
            {
                return(false);
            }

            awaitingMatch.IsMatched = true;

            var userMatches = CreateUserMatches(userToMatch, awaitingMatch);

            var match = new Match
            {
                UserMatches = userMatches
            };

            await _matchRepository.UpdateAwaitingMatch(awaitingMatch);

            await _matchRepository.AddMatch(match);

            return(true);
        }
        public async Task <IActionResult> CreateMatch(AdministrationViewModel model)
        {
            await matchRepository.AddMatch(new Match
            {
                MatchDateTime = model.MatchDateTime,
                ClubHomeName  = model.ClubHomeName,
                ClubAwayName  = model.ClubAwayName,
                LeagueId      = model.LeagueId
            });

            return(await CreateViewModel());
        }
Example #3
0
        public async Task<IActionResult> AddMatch(MatchResource matchResource)
        {
            if (!ModelState.IsValid)
            {
                var matchRes = new MatchResource();
                matchRes.Date = DateTime.Now;
                matchRes.Teams = await teamRepository.GetTeams();

                return View("Match", matchRes);
                
            }
            await matchRepository.AddMatch(matchResource);

            return RedirectToAction("Index", "Home");
        }
Example #4
0
        public Task <Unit> Handle(AddMatchCommand command, CancellationToken cancellationToken)
        {
            if (!command.IsValid())
            {
                NotifyValidationErrors(command);
                return(Unit.Task);
            }


            var user = new Match(command.UsuarioCurtiu, command.UsuarioCurtido);

            _matchRepository.AddMatch(user);

            if (Commit())
            {
                // raise event
            }

            return(Unit.Task);
        }
Example #5
0
 public IActionResult AddMatch([FromBody] Match match)
 {
     _matchRepository.AddMatch(match);
     return(Ok(null));
 }
Example #6
0
        public async Task CallWebApiAsunc(string webApiUrl, string accessToken, int teamId)
        {
            try
            {
                if (!string.IsNullOrEmpty(accessToken))
                {
                    HttpRequestHeaders defaultRequestHeaders = HttpClient.DefaultRequestHeaders;
                    if (defaultRequestHeaders.Accept == null || !defaultRequestHeaders.Accept.Any(m => m.MediaType == "application/json"))
                    {
                        HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        defaultRequestHeaders.Add("x-auth-token", accessToken);
                        HttpClient.Timeout = TimeSpan.FromMinutes(15);
                    }

                    HttpResponseMessage response = await HttpClient.GetAsync(webApiUrl);

                    if (response.IsSuccessStatusCode)
                    {
                        //удаляю записи из БД в которых TeamId равен обновляемому TeamId
                        foreach (var match in _matchRepository.GetAllMatches().Where(m => m.TeamId == teamId))
                        {
                            _matchRepository.RemoveMatch(match.Id);
                        }

                        string json = await response.Content.ReadAsStringAsync();

                        Games games = JsonSerializer.Deserialize <Games>(json);

                        foreach (var game in games.matches)
                        {
                            string winner = "";

                            if (game.score.winner == "HOME_TEAM")
                            {
                                winner = game.homeTeam.name;
                            }
                            else if (game.score.winner == "AWAY_TEAM")
                            {
                                winner = game.awayTeam.name;
                            }
                            else
                            {
                                winner = game.score.winner;
                            }

                            _matchRepository.AddMatch(new Match
                            {
                                HomeTeam      = game.homeTeam.name,
                                AwayTeam      = game.awayTeam.name,
                                HomeTeamGoals = game.score.fullTime.homeTeam ?? default(int),
                                AwayTeamGoals = game.score.fullTime.awayTeam ?? default(int),
                                LocalDate     = game.utcDate.ToLocalTime(),
                                TeamWinner    = winner,
                                TeamId        = teamId
                            });
                        }
                    }
                    else
                    {
                        //здесь можно было бы еще выкидывать Exception, но я не стал заморачиваться...
                        string jsonErr = await response.Content.ReadAsStringAsync();

                        Console.WriteLine($"Error: {response.StatusCode}");
                        Console.WriteLine(jsonErr);
                    }
                }
            }
            catch (Exception ex)
            {
                throw; //Console.WriteLine($"Error: {ex.Message}");
            }
        }