public ResponseModel Close(int id, bool state) { object obj; int status = 404; var result = new BetResponseModel(); try { var roulette = rouletteRepo.GetById(id); result.Message = ValidateClose(roulette); if (result.Message.Count == 0) { roulette.State = state; obj = rouletteRepo.Update(roulette); if (obj != null) { var betList = betRepo.GetByRouleteId(id); foreach (var item in betList) { betResponseModel.Color = item.Color; betResponseModel.IdRoulette = item.IdRoulette; betResponseModel.Message = null; betResponseModel.Number = item.Number; betResponseModelList.Add(betResponseModel); } if (betResponseModelList.Count > 0) { status = 200; obj = betResponseModelList; } else { obj = "La consulta no produjo ningun resultado."; } } else { obj = "Ha ocurrido un error mientras se actualizaban lso datos."; } } else { obj = result.Message; } } catch (Exception) { status = 500; obj = "Ha ocurrido un error inesperado, por favor inténtalo nuevamente"; } SetObjectResponse(obj, status); return(response); }
public RouletteBll(ResponseModel response, MessageListModel messageList, List <BetResponseModel> betResponseModelList, BetResponseModel betResponseModel, IRepository <Roulette> rouletteRepo, IRepository <Consumer> consumerRepo, BetRepository betRepo) : base(response, messageList) { this.betResponseModelList = betResponseModelList; this.betResponseModel = betResponseModel; this.rouletteRepo = rouletteRepo; this.consumerRepo = consumerRepo; this.betRepo = betRepo; }
public BetResponseModel RunRoulette(Bet bet, Consumer user) { var response = new BetResponseModel(); try { var rnd = new Random(); int colorValue = 2, numberValue = 35; var numberResult = rnd.Next(0, 36); var result = MyRoulette.Where(z => z.Value == numberResult).FirstOrDefault(); if (result != null) { response.Number = bet.Number = result.Value; response.Color = bet.Color = result.Color; var text = "Has ganado!"; if (bet.MyBet.ToLower().Equals(response.Color)) { user.Money += (bet.Amount * colorValue); } if (bet.MyBet.Equals(response.Number.ToString())) { user.Money += (bet.Amount * numberValue); } if (!bet.MyBet.Equals(response.Number.ToString()) && !bet.MyBet.ToLower().Equals(response.Color)) { user.Money -= bet.Amount; text = "Has perdido!"; } response.Message.Add($"{text}, tu saldo actual es : {user.Money}"); consumerRepo.Update(user); betRepo.Add(bet); } else { response.Message.Add($"Ha ocurrido un error al realizar la ejecución, inténtalo nuevamente."); } } catch (Exception ex) { throw; } return(response); }
public IHttpActionResult Post(BetRequestModel requestModel) { if (ModelState.IsValid) { PlaceBetCommand placeBetCommand = Mapper.Map <PlaceBetCommand>(requestModel); IEnumerable <ValidationResult> validations = commandDispatcher.Validate(placeBetCommand); ModelState.AddModelErrors(validations); if (ModelState.IsValid) { BetResponseModel responseModel = new BetResponseModel(); responseModel.TicketId = commandDispatcher.Dispatch <PlaceBetCommand, string>(placeBetCommand); return(Ok(responseModel)); } } return(BadRequest(ModelState)); }
public ResponseModel RunBet(Bet bet, string userid) { object obj; int status; var result = new BetResponseModel(); try { int.TryParse(userid, out int idUser); var user = consumerRepo.GetById(idUser); var roulette = rouletteRepo.GetById(bet.IdRoulette); result.Message = Validate(bet, roulette, user); if (result.Message.Count == 0) { GenerateRoulette(); obj = RunRoulette(bet, user); status = 200; } else { status = 404; obj = result.Message; } } catch (Exception) { status = 500; obj = "Ha ocurrido un error inesperado, por favor inténtalo nuevamente"; } SetObjectResponse(obj, status); return(response); }