private async Task UpdateUser(PlacedBet firstUserBet, int point, int place, BetUser user)
        {
            var placement = new FinishedBetPlacement
            {
                BetUserId = firstUserBet.BetUserId,
                BetId     = firstUserBet.BetId,
                Place     = place
            };

            if (user.Placements == null)
            {
                user.Placements = new List <FinishedBetPlacement> {
                    placement
                }
            }
            ;
            else
            {
                user.Placements.Add(placement);
            }

            user.Points += point;

            await _userBetRepository.UpdateUser(user);
        }
示例#2
0
        public async Task <bool> Bet(BetUser model)
        {
            var validate = this.ValidateStateRoulette(model.IdRoulette);

            if (validate.Result == 1)
            {
                var totalBet = this.ValidateBetRoulette(model.IdRoulette);
                if ((totalBet.Result + model.MoneyBet) <= 10000)
                {
                    if (model.Number != null && model.Number >= 0 && model.Number <= 36)
                    {
                        model.Color = string.Empty;
                    }
                    else if (model.Color == null || (model.Color.ToUpper() != "NEGRO" && model.Color.ToUpper() != "ROJO"))
                    {
                        return(false);
                    }
                    var result = await _rouletteService.Bet(model);

                    _cacheService.ClearKeysByPattern(string.Format(REDIS_CACHE_LIST_BET_KEY, model.IdRoulette));
                    return(result);
                }
            }
            return(false);
        }
        public async Task UpdateUser(BetUser user)
        {
            var entity = await _set.FindAsync(user.BetUserId);

            if (entity != null)
            {
                _context.Entry(entity).CurrentValues.SetValues(user);
                await _context.SaveChangesAsync();
            }
        }
示例#4
0
        public async Task <ActionResult> Bet([FromHeader] int IdUser, [FromBody] BetUser betUser)
        {
            betUser.IdUser = IdUser;
            var isCreated = await _rouletteManager.Bet(betUser);

            if (!isCreated)
            {
                return(StatusCode(201));
            }
            return(StatusCode(500));
        }
示例#5
0
        public ActionResult <RequestResponse> GenerateBetGameByUserIdAndByRoulette([Bind("rouletteId,userId,betValue,number,color")] BetUser betUser)
        {
            IBetGameBusiness gameBusiness = new BetGameBusiness(_context);
            RequestResponse  response     = gameBusiness.GenerateBetGameByUserIdAndByRoulette(betUser);

            if (response.SuccessFul == false)
            {
                return(BadRequest(error: new { error = response.MessageError }));
            }

            return(Content("Apuesta Generada con Exito"));
        }
        public async Task <bool> Bet(BetUser model)
        {
            List <SqlParameter> _listParameter = new List <SqlParameter>();

            _listParameter.Add(_baseData.GetParameter("idRoulette", model.IdRoulette));
            _listParameter.Add(_baseData.GetParameter("moneyBet", model.MoneyBet));
            _listParameter.Add(_baseData.GetParameter("idUser", model.IdUser));
            _listParameter.Add(_baseData.GetParameter("number", model.Number));
            _listParameter.Add(_baseData.GetParameter("color", model.Color));
            int result = await _baseData.ExcecuteNonQueryAsync("sp_AddBet", _listParameter);

            return(result == 1 ? true : false);
        }
 public async Task AddBetUser(BetUser betUser)
 {
     _set.Add(betUser);
     await _context.SaveChangesAsync();
 }
示例#8
0
        public void Setup()
        {
            FakeRouletteId         = Guid.Parse("8cc32b40-578d-47c1-bb9f-63240737243f");
            FakeNotFoundRouletteId = Guid.Parse("00000000-0000-0000-0000-000000000000");
            FakeOpenRouletteId     = Guid.Parse("b5b1a0c6-efc7-43b4-91b1-024a0268a7cf");
            FakeCloseRouletteId    = Guid.Parse("90e031e0-9db9-4aa2-af94-832c6e13eed4");
            FakeBetId          = Guid.Parse("496929ae-c452-41ea-8b45-67e179b75f36");
            FakeRoulette       = GetRouletteFake(FakeRouletteId, false);
            FakeOpenRoulette   = GetRouletteFake(FakeOpenRouletteId, true);
            FakeCloseRoulette  = GetRouletteFake(FakeCloseRouletteId, false);
            FakeBet            = GetBetFake(FakeBetId, 4, 5000m);
            FakeRouletteResult = GetRouletteResultFake(FakeRouletteId, new List <BetUser>()
            {
                FakeBet
            });

            _rouletteRepositoryMock.Setup(x => x.GetById(It.Is <Guid>(x => x == FakeRouletteId)))
            .Returns(FakeRoulette);
            _rouletteRepositoryMock.Setup(x => x.GetById(It.Is <Guid>(x => x == FakeOpenRouletteId)))
            .Returns(FakeOpenRoulette);
            _rouletteRepositoryMock.Setup(x => x.Get())
            .Returns(new List <dynamic>()
            {
                FakeRoulette, FakeRouletteResult
            });
            _rouletteRepositoryMock.Setup(x => x.Create())
            .Returns(FakeRouletteId);
            _rouletteRepositoryMock.Setup(x => x.OpenBets(It.Is <Guid>(x => x == FakeRouletteId)))
            .Returns(true);
            _rouletteRepositoryMock.Setup(x => x.CloseBets(It.Is <Guid>(x => x == FakeOpenRouletteId)))
            .Returns(FakeRouletteResult);
            _rouletteRepositoryMock.Setup(x => x.Exist(It.Is <Guid>(x => x == FakeRouletteId)))
            .Returns(true);
            _rouletteRepositoryMock.Setup(
                x => x.MakeBet(
                    It.Is <Guid>(x => x == FakeOpenRouletteId),
                    It.Is <Guid>(x => x == FakeBetId),
                    FakeBet.Bet
                    )).Returns(true);

            Roulette nullObj = null;

            _rouletteRepositoryMock.Setup(x => x.GetById(It.Is <Guid>(x => x == FakeNotFoundRouletteId)))
            .Returns(nullObj);
            _rouletteRepositoryMock.Setup(x => x.GetById(It.Is <Guid>(x => x == FakeOpenRouletteId)))
            .Returns(FakeOpenRoulette);
            _rouletteRepositoryMock.Setup(x => x.GetById(It.Is <Guid>(x => x == FakeCloseRouletteId)))
            .Returns(FakeCloseRoulette);
            _rouletteRepositoryMock.Setup(x => x.Exist(It.Is <Guid>(x => x == FakeNotFoundRouletteId)))
            .Returns(false);
            _rouletteRepositoryMock.Setup(x => x.Exist(It.Is <Guid>(x => x == FakeOpenRouletteId)))
            .Returns(true);
            _rouletteRepositoryMock.Setup(x => x.Exist(It.Is <Guid>(x => x == FakeCloseRouletteId)))
            .Returns(true);

            var httpContext = new DefaultHttpContext();

            httpContext.Request.Headers["UserId"] = FakeBetId.ToString();
            RouletteController = new RoulettesController(
                _rouletteRepositoryMock.Object,
                _loggerMock.Object
                )
            {
                ControllerContext = new ControllerContext()
                {
                    HttpContext = httpContext,
                }
            };
        }
示例#9
0
        public EmbedBuilder EmbedMyInfo(SocketGuild guild, SocketGuildUser user, BetUser betUser)
        {
            var sortedJoinedMembers = guild.Users.OrderBy(x => x.JoinedAt).ToList();
            int index = sortedJoinedMembers.FindIndex(x => x.Id == user.Id);
            var roles = user.Roles.Where(x => !x.IsEveryone);

            EmbedBuilder  builder = new EmbedBuilder();
            StringBuilder sb      = new StringBuilder();

            sb.AppendLine($"Name: **{user.Username}#{user.Discriminator}**");
            sb.Append($"Roles: ");

            if (!roles.Any())
            {
                sb.Append("**None**");
            }
            else
            {
                sb.Append("**");
                foreach (var role in roles)
                {
                    var ro = role.Name.Replace("@", String.Empty);
                    sb.Append($"{StringExtensions.FirstCharToUpper(ro)} ");
                }
                sb.Append("**");
            }

            sb.AppendLine();
            sb.AppendLine($"Nickname: **{user.Nickname ?? "None"}**");
            sb.AppendLine($"Account Created: **{user.CreatedAt:dd.MM.yy}**");
            sb.Append($"Server Joined: **{user.JoinedAt?.ToString("dd.MM.yy")}** **`(#{index + 1})`**");
            sb.AppendLine();
            if (betUser != null && betUser.Points > 0)
            {
                sb.AppendLine();
                sb.AppendLine("**Bets**");
                sb.AppendLine($"Stonks: {betUser.Points}");
                if (betUser.Placements != null)
                {
                    if (betUser.Placements.Any(x => x.Place == 1))
                    {
                        sb.AppendLine($"First Places: {betUser.Placements.Where(x => x.Place == 1).Count()} time(s)");
                    }
                    if (betUser.Placements.Any(x => x.Place == 2))
                    {
                        sb.AppendLine($"Second Places: {betUser.Placements.Where(x => x.Place == 2).Count()} time(s)");
                    }
                    if (betUser.Placements.Any(x => x.Place == 3))
                    {
                        sb.AppendLine($"Third Places: {betUser.Placements.Where(x => x.Place == 3).Count()} times(s)");
                    }
                }
                sb.AppendLine();
            }

            if (user.Username.ToLower() == "bredesen")
            {
                sb.AppendLine("Big PP: **Yes**");
            }

            builder.WithTitle($"Userinfo about {user.Username}");
            builder.WithDescription(sb.ToString());
            builder.WithThumbnailUrl(user.GetAvatarUrl());
            builder.WithColor(Color.Gold);

            return(builder);
        }