Ejemplo n.º 1
0
        public async Task <Response> AddGroupBetAsync(string urlBase, string servicePrefix, string controller, GroupBetRequest groupBetRequest, string tokenType, string accessToken)
        {
            try
            {
                string        request = JsonConvert.SerializeObject(groupBetRequest);
                StringContent content = new StringContent(request, Encoding.UTF8, "application/json");
                HttpClient    client  = new HttpClient
                {
                    BaseAddress = new Uri(urlBase)
                };

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, accessToken);
                string url = $"{servicePrefix}{controller}";
                HttpResponseMessage response = await client.PostAsync(url, content);

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

                if (!response.IsSuccessStatusCode)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = answer
                    });
                }



                GroupBetResponse groupBet = JsonConvert.DeserializeObject <GroupBetResponse>(answer);

                if (response.IsSuccessStatusCode)
                {
                    return(new Response
                    {
                        IsSuccess = true,
                        Message = "Guardado con éxito!",
                        Result = groupBet,
                    });
                }


                Response obj = JsonConvert.DeserializeObject <Response>(answer);
                return(obj);
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = ex.Message
                });
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetGroupBets(EmailRequest emailRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var groupBetsPlayer = await _context.GroupBetPlayers
                                  .Include(p => p.Player)
                                  .ThenInclude(u => u.User)
                                  .ThenInclude(f => f.FavoriteTeam)
                                  .ThenInclude(l => l.League)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(t => t.Tournament)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(p => p.Admin)
                                  .ThenInclude(p => p.User)
                                  .ThenInclude(f => f.FavoriteTeam)
                                  .ThenInclude(l => l.League)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(p => p.GroupBetPlayers)
                                  .ThenInclude(p => p.Player)
                                  .ThenInclude(u => u.User)
                                  .ThenInclude(f => f.FavoriteTeam)
                                  .ThenInclude(l => l.League)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(p => p.GroupBetPlayers)
                                  .ThenInclude(p => p.Player)
                                  .ThenInclude(p => p.Predictions)
                                  .ThenInclude(p => p.Match)
                                  .ThenInclude(p => p.Local)
                                  .ThenInclude(p => p.League)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(p => p.GroupBetPlayers)
                                  .ThenInclude(p => p.Player)
                                  .ThenInclude(p => p.Predictions)
                                  .ThenInclude(p => p.Match)
                                  .ThenInclude(p => p.Visitor)
                                  .ThenInclude(p => p.League)

                                  .Include(g => g.GroupBet)
                                  .ThenInclude(p => p.GroupBetPlayers)
                                  .ThenInclude(p => p.Player)
                                  .ThenInclude(p => p.Predictions)
                                  .ThenInclude(p => p.Match)
                                  .ThenInclude(p => p.Group)
                                  .ThenInclude(p => p.Tournament)

                                  .Where(o => o.Player.User.Email.ToLower() == emailRequest.Email.ToLower() && o.GroupBet.Tournament.IsActive)
                                  .OrderBy(a => a.GroupBet.Name)
                                  .ToListAsync();

            var response = new List <GroupBetResponse>();

            foreach (var groupBetPlayer in groupBetsPlayer)
            {
                var group = new GroupBetResponse
                {
                    Id           = groupBetPlayer.GroupBet.Id,
                    Admin        = _converterHelper.ToPlayerResponse(groupBetPlayer.GroupBet.Admin),
                    CreationDate = groupBetPlayer.GroupBet.CreationDate,
                    LogoPath     = groupBetPlayer.GroupBet.LogoPath,
                    Name         = groupBetPlayer.GroupBet.Name,
                    Tournament   = _converterHelper.ToTournamentResponse(await _context.Tournaments.FirstOrDefaultAsync(a => a.Id == groupBetPlayer.GroupBet.Tournament.Id)),

                    GroupBetPlayers = groupBetPlayer.GroupBet.GroupBetPlayers.Select(p => new GroupBetPlayerResponse
                    {
                        Id         = p.Id,
                        IsAccepted = p.IsAccepted,
                        IsBlocked  = p.IsBlocked,
                        Points     = p.Points,
                        Player     = new PlayerResponse2
                        {
                            FirstName   = p.Player.User.FirstName,
                            LastName    = p.Player.User.LastName,
                            NickName    = p.Player.User.NickName,
                            PicturePath = p.Player.User.Picture,
                            Id          = p.Player.Id,
                            Points      = p.Player.User.Points,
                            Team        = new TeamResponse
                            {
                                Id         = p.Player.User.FavoriteTeam.Id,
                                Initials   = p.Player.User.FavoriteTeam.Initials,
                                LeagueId   = p.Player.User.FavoriteTeam.League.Id,
                                LeagueName = p.Player.User.FavoriteTeam.League.Name,
                                Name       = p.Player.User.FavoriteTeam.Name,
                                LogoPath   = p.Player.User.FavoriteTeam.LogoPath,
                            },
                            UserId      = p.Player.User.Id,
                            Predictions = p.Player.Predictions.Select(h => new PredictionResponse2
                            {
                                Id           = h.Id,
                                GoalsLocal   = h.GoalsLocal,
                                GoalsVisitor = h.GoalsVisitor,
                                Points       = h.Points,
                                MatchId      = h.Match.Id,
                                PlayerId     = h.Player.Id,
                                TournamentId = h.Match.Group.Tournament.Id,
                                NameLocal    = h.Match.Local.Name,
                                NameVisitor  = h.Match.Visitor.Name
                            }).ToList()
                        },
                    }).ToList()
                };

                response.Add(group);
            }

            return(Ok(response));
        }