public async Task SaveBetResults(IEnumerable <BetResultEntity> entities)
        {
            foreach (var entity in entities)
            {
                BetResultEntity existingEntity = null;
                existingEntity = await this.betResultsRepository.GetAsync(entity.Id);

                if (existingEntity != null)
                {
                    existingEntity.HitAwayGoals   = entity.HitAwayGoals;
                    existingEntity.HitExactResult = entity.HitExactResult;
                    existingEntity.HitGoalsDif    = entity.HitGoalsDif;
                    existingEntity.HitHomeGoals   = entity.HitHomeGoals;
                    existingEntity.HitPenalties   = entity.HitPenalties;
                    existingEntity.HitResult      = entity.HitResult;
                    existingEntity.Points         = entity.Points;
                    existingEntity.ExtraPoint     = entity.ExtraPoint;
                }
                else
                {
                    existingEntity = entity;
                }

                await this.betResultsRepository.SaveAsync(existingEntity);
            }
        }
 private UserBetResultViewModel ToBetResultViewModel(MatchViewModel match, BetResultEntity betResult, MatchBetEntity bet)
 {
     return(new UserBetResultViewModel
     {
         AwayTeam = match.AwayTeam,
         AwayTeamCode = match.AwayTeamCode,
         AwayTeamGoals = match.AwayTeamGoals.Value,
         AwayTeamPenalties = match.AwayTeamPenalties,
         HomeTeam = match.HomeTeam,
         HomeTeamCode = match.HomeTeamCode,
         HomeTeamGoals = match.HomeTeamGoals.Value,
         HomeTeamPenalties = match.HomeTeamPenalties,
         PenaltiesDefinition = match.PenaltiesDefinition,
         PlayedOn = match.PlayedOn,
         Stage = match.Stage,
         BetAwayTeamGoals = bet.AwayGoals,
         BetAwayTeamPenalties = bet.AwayPenalties,
         BetHomeTeamGoals = bet.HomeGoals,
         BetHomeTeamPenalties = bet.HomePenalties,
         Points = betResult.Points,
         HitResult = betResult.HitResult,
         HitExactResult = betResult.HitExactResult,
         ExtraPoint = betResult.ExtraPoint,
         BetPenalties = match.Stage.SupportPenalties() && bet.AwayGoals == bet.HomeGoals
     });
 }
Beispiel #3
0
        public BetResultEntity GetBetResult(MatchBetEntity bet, MatchResultEntity result)
        {
            var hitPenalties = false;

            if (result.HomePenalties.HasValue && result.AwayPenalties.HasValue)
            {
                hitPenalties = result.HomePenalties.Equals(bet.HomePenalties) && result.AwayPenalties.Equals(bet.AwayPenalties);
            }

            var betResult = new BetResultEntity
            {
                Id             = bet.Id,
                UserId         = bet.UserId,
                MatchId        = bet.MatchId,
                ResultId       = result.Id,
                HitResult      = bet.Result.Equals(result.Result),
                HitHomeGoals   = bet.HomeGoals.Equals(result.HomeGoals),
                HitAwayGoals   = bet.AwayGoals.Equals(result.AwayGoals),
                HitGoalsDif    = bet.HomeGoals - bet.AwayGoals == result.HomeGoals - result.AwayGoals,
                HitExactResult = bet.HomeGoals.Equals(result.HomeGoals) && bet.AwayGoals.Equals(result.AwayGoals),
                HitPenalties   = hitPenalties
            };

            var betPoints = 0;

            betPoints += betResult.HitResult ? BetResultPointsHelper.BetResultPoints["HitResult"] : 0;

            if (betResult.HitPenalties)
            {
                betPoints           += BetResultPointsHelper.BetResultPoints["HitPenalties"];
                betResult.ExtraPoint = true;
            }

            if (betResult.HitExactResult)
            {
                betPoints += BetResultPointsHelper.BetResultPoints["HitExactResult"];
            }
            else
            {
                betPoints           += betResult.HitHomeGoals ? BetResultPointsHelper.BetResultPoints["HitHomeGoals"] : 0;
                betPoints           += betResult.HitAwayGoals ? BetResultPointsHelper.BetResultPoints["HitAwayGoals"] : 0;
                betPoints           += betResult.HitGoalsDif && !bet.HomeGoals.Equals(bet.AwayGoals) ? BetResultPointsHelper.BetResultPoints["HitGoalsDif"] : 0;
                betResult.ExtraPoint = betResult.ExtraPoint || betResult.HitHomeGoals || betResult.HitAwayGoals || (betResult.HitGoalsDif && !bet.HomeGoals.Equals(bet.AwayGoals));
            }

            betResult.Points = betPoints;

            return(betResult);
        }
Beispiel #4
0
        public CloseBetResponse BuilBetResponse(int betId)
        {
            try
            {
                BetResultEntity  objBetResult     = betResultModel.GetOneBetResult(betId);
                CloseBetResponse closeBetResponse = new CloseBetResponse
                {
                    BetResult = new BetResultResponse
                    {
                        Number = objBetResult.Number,
                        Color  = Enum.GetName(typeof(ColorBetEnum), objBetResult.Color)
                    },
                    GamblingResult = cGambling.BuildGamblingResultResponse(betId)
                };

                return(closeBetResponse);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #5
0
        private BetResultEntity GenerateBetResult(List <BetEntity> listBets)
        {
            BetResultEntity result = new BetResultEntity();
            Random          random = new Random();

            result.WinningNumber = random.Next(0, 36);
            result.WinningColor  = result.WinningNumber % 2 == 0 ? "rojo" : "negro";
            List <BetEntity> lstBetW = listBets.Where(x => x.Color.Trim().ToLower().Equals(result.WinningColor)).ToList();

            if (lstBetW.Count > 0)
            {
                result.ListWinners.AddRange(CalculateWinningValues("color", lstBetW));
            }
            lstBetW = listBets.Where(x => x.Color.Trim().ToLower().Equals(result.WinningNumber)).ToList();
            if (lstBetW.Count > 0)
            {
                result.ListWinners.AddRange(CalculateWinningValues("numero", lstBetW));
            }
            result.ListBets = listBets;
            MovementsInDatabase(listBets);

            return(result);
        }