Esempio n. 1
0
        public async Task Initialize(string competitionId)
        {
            var competitionResponses = await _awsJsInterop.GraphQlAsync <CompetitionResponses>(Queries.GET_COMPETITION,
                                                                                               new
            {
                id    = competitionId,
                owner = _awsHelper.User.Username
            });

            Competition = competitionResponses.GetCompetition;

            _createResult = !Competition.Results.Items.Any();

            Matches = Competition.Matches.Items;

            foreach (var match in Matches)
            {
                var bet      = match.Bets.Items.FirstOrDefault();
                var betScore = new BetScore
                {
                    Id        = bet?.Id,
                    MatchId   = match.Id,
                    HomeValue = bet?.Scores.FirstOrDefault(s => s.IsHome)?.Value,
                    AwayValue = bet?.Scores.FirstOrDefault(s => !s.IsHome)?.Value
                };
                betScore.ValueChanged = false;
                match.Bet             = betScore;
                match.BeginAtLocal    = await _browserDateTime.ToBrowerTime(match.BeginAt);
            }

            MatchGroup = Matches
                         .OrderBy(m => m.BeginAt)
                         .GroupBy(m => m.BeginAt.Date);
        }
Esempio n. 2
0
        public async Task SaveBet(BetScore bet)
        {
            var match = Matches.First(m => m.Id == bet.MatchId);

            if (match.BeginAt < DateTime.Now)
            {
                return;
            }

            await _awsJsInterop.GraphQlAsync <object>(bet.Id == null?Mutations.CREATE_BET : Mutations.UPDATE_BET, new
            {
                input = new
                {
                    id               = bet.Id,
                    owner            = _awsHelper.User.Username,
                    userName         = _awsHelper.UserName,
                    betCompetitionId = Competition.Id,
                    betMatchId       = bet.MatchId,
                    scores           = new object[]
                    {
                        new
                        {
                            isHome = true,
                            value  = bet.HomeValue
                        },
                        new
                        {
                            isHome = false,
                            value  = bet.AwayValue
                        }
                    }
                }
            });

            if (_createResult)
            {
                await _awsJsInterop.GraphQlAsync <ResultResponses>(Mutations.CREATE_RESULT, new
                {
                    input = new
                    {
                        owner               = _awsHelper.User.Username,
                        userName            = _awsHelper.UserName,
                        resultCompetitionId = Competition.Id,
                        value               = 0
                    }
                });

                _createResult = false;
            }

            bet.ValueChanged = false;
            bet.Saved        = true;
        }
Esempio n. 3
0
        protected async Task SaveBet(BetScore bet)
        {
            await CompetitionService.SaveBet(bet);

            StateHasChanged();
        }