public async Task <ActionResult> PlaceBet(BetViewModel model) { if (ModelState.IsValid) { var betModel = new BetModel { LotId = model.LotId, UserId = User.Identity.GetUserId(), Sum = model.Sum, BetDate = DateTime.UtcNow }; var result = await _betService.AddAsync(betModel); if (result.Succedeed) { TempData["BetAccepted"] = "Your bet has been accepted"; return(RedirectToAction("Details", "Lots", new { id = model.LotId })); } foreach (var error in result.ValidationResults) { ModelState.AddModelError(error.MemberNames.First(), error.ErrorMessage); } } return(PartialView("PlaceBetPartial")); }
public void CreateUserInput([FromBody] BetModel betModel) { var userSession = _userSessionRepository.Find(us => us.AuthToken == Authorisation.AuthToken).Single(); if (userSession == null) { throw new Exception("Invalid User"); } var supervisor = _userRepository.FindSingleOrNull(u => u.UserName.Equals(betModel.supervisor)); var number = _numberRepository.FindSingleOrNull(n => n.Number == betModel.value); var rouletteEvent = _rouletteEventsRepository.Find(r => r.EventName == betModel.rouletteEventName).Single(); var log = new Logs() { NumberId = number.Id, RouletteEventId = rouletteEvent.Id, UserId = userSession.User.Id, SupervisorId = supervisor?.Id, //BetPlaced = betModel.betPlaced, UserSessionLogId = Authorisation.UserSessionLogId, UpdateFlag = false, }; _logRepository.Insert(log); _unitofWork.SaveChanges(); }
public string PlaceBet(BetModel betModel) { var mapper = new MapperConfiguration(cfg => cfg.CreateMap <BetModel, BetDTO>()).CreateMapper(); var bet = Mapper.Map <BetModel, BetDTO>(betModel); return(service.PlaceBet(bet)); }
public BetModel GetById(int Id) { BetModel objBet = new BetModel();; try { var command = CrearComando("spGetBetById"); command.CommandType = System.Data.CommandType.StoredProcedure; using (var reader = command.ExecuteReader()) { DataTable dt = new DataTable(); dt.Load(reader); if (dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { objBet = SetBet(item); } } return(objBet); } } catch (Exception ex) { throw ex; } }
public string Post([FromBody] BetModel bet) { var userId = Request.Headers["UserId"]; bet.UserId = Convert.ToInt32(userId); if (bet.IsValidToBet()) { BetRepositorySQL betRepository = new BetRepositorySQL(); bet.IsActive = true; bet.BetId = betRepository.AddBet(bet: bet); if (bet.BetId != 0) { return($"La apuesta se ha recibido correctamente en la ruleta {bet.RouletteId}"); } else { return($"La apuesta en la ruleta {bet.RouletteId} no se ha podido realizar"); } } else { return("La apuesta no se ha podido realizar, por favor verifícala"); } }
public ActionResult <IEnumerable <string> > CreateBet(BetModel objBet) { try { ResponseAPI <BetModel> response = null; var user = Request.Headers["user_autenticated"].ToString(); if (user != string.Empty) { BetModel objOk = BetUtilities.ValidateBet(objBet); response = new ResponseAPI <BetModel>(Parameters.OK_REQUEST, "OK", _BetService.CreateBet(objOk)); } else { response = new ResponseAPI <BetModel>(Parameters.BAD_REQUEST, "Missig user_autenticated", false); } return(Ok( response )); } catch (Exception ex) { ResponseAPI <BetModel> response = new ResponseAPI <BetModel>(Parameters.INTERNAL_SERVER_ERROR, ex.Message, false); return(Ok( response )); } }
public static BetModel ValidateBet(BetModel objBet) { BetModel objResponse = new BetModel(); try { if (objBet.iBetNumber != 0) { objResponse.strBetColor = ValidateNumberBet(objBet.iBetNumber); objResponse.strBetKey = Parameters.KEY_COLOR_AND_NUMBER_BET; } else { objResponse.strBetColor = ValidateColorBet(objBet.strBetColor); objResponse.strBetKey = Parameters.KEY_COLOR_BET; } string ValueValid = ValidateValueBet(objBet.lgBetValue); if (ValueValid == Parameters.INVALID_VALUE) { return(objResponse = new BetModel()); } objResponse.lgBetValue = objBet.lgBetValue; objResponse.iFkRouletteId = objBet.iFkRouletteId; objResponse.iFkClientId = objBet.iFkClientId; objResponse.iBetNumber = objBet.iBetNumber; return(objResponse); } catch (Exception ex) { throw ex; } }
public async Task <BetEntity> Bet(string idRoulette, string userId, BetModel betRquest) { string message = string.Empty; RouletteEntity roulette = await _rouletteRepository.GetById(idRoulette); message = _utilities.ValidateRoulette(roulette, isbetting: true); if (message != "") { throw new Exception(message); } message = _utilities.ValidateBetRequest(betRquest); if (message != "") { throw new Exception(message); } BetEntity bet = new BetEntity() { BetDate = DateTime.Now.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"), UserId = userId, BetModel = betRquest, Winner = false, EarnedMoney = 0, Roulette = roulette }; await _betRepository.InsertDocument(bet); return(bet); }
public int AddBet(BetModel bet) { string sql = $"INSERT INTO BET (ROULETTEID, USERID, ISACTIVE, NUMBER, COLOR, MONEY)" + $"VALUES ({bet.RouletteId},{bet.UserId}, '{bet.IsActive}', {bet.Number},'{bet.Color}',{bet.Money});" + "SELECT SCOPE_IDENTITY()"; SqlCommand cmd = new SqlCommand(sql, _db.connection) { CommandType = CommandType.Text }; _db.connection.Open(); try { int betId = Convert.ToInt32(cmd.ExecuteScalar()); return(betId); } catch (Exception ex) { //todo: implementar logs; return(0); } finally { _db.connection.Close(); } }
public IHttpActionResult PlaceBet(BetModel betModel) { var mapper = new MapperConfiguration(cfg => cfg.CreateMap <BetModel, BetDTO>()).CreateMapper(); var bet = mapper.Map <BetModel, BetDTO>(betModel); service.PlaceBet(bet); return(Ok()); }
public async Task <User> ConfigureUser(BetModel model, string userId) { User user = await _userRepository.GetUserById(userId); UserHelper.CheckUser(user, userId, model.Money); user.Money = user.Money - model.Money; return(user); }
public BetValidation(IDistributedCache distributedCache) { betModel = new BetModel(distributedCache); gamblerValidation = new GamblerValidation(distributedCache); rouletteValidation = new RouletteValidation(distributedCache); gamblerModel = new GamblerModel(distributedCache); rouletteModel = new RouletteModel(distributedCache); }
public BetRoulette(BetModel model, User user) { Color = model.Color; Number = model.Number; RouletteId = model.RouletteId; UserId = user.Id; UserName = user.UserName; Date = DateTime.Now; }
public async Task <Roulette> ConfigureRoulette(BetModel model, User user) { Roulette roulette = await _rouletteRepository.GetRouletteById(model.RouletteId); RouletteHelper.CheckBetRoulette(roulette, model.RouletteId); BetRoulette bet = new BetRoulette(model, user); roulette.AddBet(bet); return(roulette); }
/// <summary> /// 根据模式判断 /// 判断逻辑,有且只有一个对子,不能有3个的,4 个的,5个的。就是中奖 /// </summary> /// <param name="record"></param> /// <returns></returns> public bool IsWinByModeKillNo(DB_PredictRecord record, BetModel model, string killNo) { bool win = false; if (OnlyPairModelBet(record.GoodNo) && !record.GoodNo.Contains(killNo)) { win = true; } return(win); }
public CBet(IDistributedCache distributedCache) { betModel = new BetModel(distributedCache); betResultModel = new BetResultModel(distributedCache); gamblerModel = new GamblerModel(distributedCache); rouletteModel = new RouletteModel(distributedCache); gamblingModel = new GamblingModel(distributedCache); betValidation = new BetValidation(distributedCache); gamblingValidation = new GamblingValidation(distributedCache); cGambling = new CGambling(distributedCache); }
public IActionResult Create(BetModel model) { if (!ModelState.IsValid) { return(new JsonResult("Not Ok")); } //context.BetModels.Add(model); return(new JsonResult("Ok")); }
/// <summary> /// Create bet for roulette /// </summary> /// <param name="id">Id of roulette</param> /// <param name="UserId">Id of user</param> /// <param name="betModel">Bet</param> /// <returns>Success or False</returns> public async Task <string> BetRouletteModel(Guid id, string userId, BetModel betModel) { if (await roulleteDAL.BetRouletteModel(id, userId, betModel)) { return("Bet created successfully."); } else { return("Bet not created."); } }
public IHttpActionResult CreateBet(BetModel bet) { var mappedBet = BetMapping.Map(bet); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(_betService.CreateBet(mappedBet))); }
/// <summary> /// 根据模式判断 /// 判断逻辑,有且只有一个对子,不能有3个的,4 个的,5个的。就是中奖 /// </summary> /// <param name="record"></param> /// <returns></returns> public bool IsWinByMode(DB_PredictRecord record, BetModel model) { bool win = false; if (OnlyPairModelBet(record.GoodNo)) { win = true; } return(win); }
public IEnumerable <BetModel> CloseRoulette(ResponseBetModel objBetResponse) { List <BetModel> lstResponse = new List <BetModel>(); try { var command = CrearComando("spCloseRoulette"); command.CommandType = System.Data.CommandType.StoredProcedure; command.Parameters.Add("@ROULETTE_ID", SqlDbType.Int).Value = objBetResponse.iIdRoulette; command.Parameters.Add("@WINNING_NUMBER", SqlDbType.Int).Value = objBetResponse.iWinningNumber; command.Parameters.Add("@WINNING_COLOR", SqlDbType.VarChar).Value = objBetResponse.strWinningColor; using (var reader = command.ExecuteReader()) { DataTable dt = new DataTable(); dt.Load(reader); if (dt.Rows.Count > 0) { foreach (DataRow item in dt.Rows) { BetModel objBet = new BetModel(); objBet.iFkClientId = int.Parse(item["FK_CLIENT_ID"].ToString()); objBet.lgBetValue = double.Parse(item["BET_VALUE"].ToString()); objBet.strBetColor = item["BET_COLOR"].ToString(); objBet.iBetNumber = int.Parse(item["BET_NUMBER"].ToString()); objBet.objResponseBetModel.iWinningNumber = objBetResponse.iWinningNumber; objBet.objResponseBetModel.strWinningColor = objBetResponse.strWinningColor; lstResponse.Add(objBet); } } else { BetModel objBet = new BetModel(); objBet.objResponseBetModel.iWinningNumber = objBetResponse.iWinningNumber; objBet.objResponseBetModel.strWinningColor = objBetResponse.strWinningColor; objBet.objResponseBetModel.iIdRoulette = -999; lstResponse.Add(objBet); } } var Winners = lstResponse.Find(a => a.objResponseBetModel.iIdRoulette == -999); if (Winners == null) { BetWinners(lstResponse); } return(lstResponse); } catch (Exception ex) { throw ex; } }
public async Task <MakeBetMessageModel> MakeBet(BetModel model, string token) { var userId = JwtHelper.ParseToken(token); var user = await this.ConfigureUser(model, userId); var roulette = await this.ConfigureRoulette(model, user); await this.UpdateUserRoulette(user, roulette); return(new MakeBetMessageModel( $"You bet ${model.Money} on {model.Color} {model.Number}. Good luck!" )); }
public async Task <IActionResult> Bet([FromBody] BetModel betModel) { var steamId = User.GetSteamId(); var itemsToBet = betModel.Items.Select(item => new AssetAndDescriptionId { AssetId = item.AssetId, DescriptionId = item.DescriptionId, }).ToList(); _jackpotMatchManager.PlaceBetOnMatch(itemsToBet, betModel.RoundId, steamId); return(new OkResult()); }
/// <summary> /// 生成 中奖结果 /// </summary> /// <param name="model">下注模式</param> /// <param name="records">历史开奖记录</param> /// <returns></returns> public List <DB_PredictRecord> GenerateBetResult(BetModel model, List <DB_PredictRecord> records) { return(records); //return null; //foreach (var item in records) { // if (IsWinByMode(item, model)) // { // item.Status = "中奖"; // } // else // { // item.Status = "未中奖"; // } //} //return records; }
public GenericAnswer OpenBet(RuletteModel dataRulette, BetModel dataBet, GamblerModel dataGambler) { GenericAnswer response = new GenericAnswer(); string colorBet = string.Empty; if (dataBet.cashBet > Convert.ToInt32(Enum.Cash.MaxCash)) { response.error = "Supera el monto máximo de apuesta = " + Enum.Cash.MaxCash; return(response); } SqlParameter[] parameters = { new SqlParameter { Value = dataRulette.idRulette, ParameterName = RuletteMapping.idRulette }, new SqlParameter { Value = dataGambler.idGambler, ParameterName = GamblerMapping.idGambler }, new SqlParameter { Value = dataBet.cashBet, ParameterName = BetMapping.cashBet }, new SqlParameter { Value = dataBet.numberBet, ParameterName = BetMapping.numberBet }, new SqlParameter { Value = dataBet.colorBet, ParameterName = BetMapping.colorBet }, }; string messageError = string.Empty; connectionManager.AcctionRun(updateRulette, ref messageError, parameters); if (!string.IsNullOrEmpty(messageError)) { response.error = messageError; response.successful = false; return(response); } response.error = "Apertura Exitosa"; response.entity = dataRulette; response.successful = true; return(response); }
public string ValidateBetRequest(BetModel betRquest) { decimal value; string message = string.Empty; if (betRquest.BetMoney > 10000 || betRquest.BetMoney < 1) { message = "Tipo de apuesta inválida. El BetMoney debe estar entre 1 y 10000."; } if ((betRquest.BetType.ToLower() != "color") && (betRquest.BetType.ToLower() != "number")) { message = "Tipo de apuesta inválida. El BetType debe ser number o color."; } else { if (betRquest.BetType.ToLower() == "color") { if (decimal.TryParse(betRquest.BetValue, out value)) { message = "Tipo de apuesta inválida. Si el BetType es color el BetValue debe ser negro o rojo."; } else { if (betRquest.BetValue.ToLower() != "negro" && betRquest.BetValue.ToLower() != "rojo") { message = "Tipo de apuesta inválida. Si el BetType es color el BetValue debe ser negro o rojo."; } } } else { if (decimal.TryParse(betRquest.BetValue, out value)) { if (value > 36 || value < 0) { message = "Tipo de apuesta inválida. Si el BetType es number el BetValue debe estar en el rango de 0 a 36."; } } else { message = "Tipo de apuesta inválida. Si el BetType es number el BetValue debe estar en el rango de 0 a 36."; } } } return message; }
public BetModel CreateBet(BetModel obBjet) { BetModel objResponse = new BetModel(); try { using (var context = _unitOfWork.Create()) { objResponse = context.Repositories.BetRepository.CreateBet(obBjet); context.SaveChanges(); return(objResponse); } } catch (Exception ex) { throw ex; } }
public ActionResult EditBet(BetModel betModel) { using (var db = new BettingSystemDbContext()) { var userId = db.Users.Single(u => u.Username == User.Identity.Name).Id; var dbBet = db.Bets.First(b => b.UserId == userId && b.GameId == betModel.GameId); dbBet.GameId = betModel.GameId; dbBet.UserId = userId; dbBet.CompetitionId = betModel.CompetitionId; dbBet.HomeGoals = betModel.HomeGoals; dbBet.AwayGoals = betModel.AwayGoals; dbBet.Date = DateTime.Now; db.SaveChanges(); return(RedirectToAction("UserBets", "Bet")); } }
public async Task BetService_UpdateAsync_WithInvalidModelReturnsErrors() { var mockUnitOfWork = new Mock <IUnitOfWork>(); mockUnitOfWork.Setup(m => m.BetRepository.Update(It.IsAny <Bet>())); mockUnitOfWork .Setup(m => m.LotRepository.GetByIdAsync(It.IsAny <int>())) .ReturnsAsync( new Lot { Id = 1, Bets = new List <Bet>() { new Bet { Id = 1, Sum = 100 } }, }); var betService = new BetService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile()); var bet = new BetModel { Id = 1, LotId = 1, UserId = "3", BetDate = DateTime.UtcNow.AddDays(4), Sum = 50 }; var result = await betService.UpdateAsync(bet); Assert.IsTrue(result.Succedeed); mockUnitOfWork.Verify( m => m.BetRepository.Update(It.Is <Bet>( b => b.LotId == bet.LotId && b.UserId == bet.UserId && b.BetDate == bet.BetDate && b.Sum == bet.Sum)), Times.Once); mockUnitOfWork.Verify( m => m.SaveAsync(), Times.Once); }
public static Bet Map(BetModel bet) { var config = new DefaultMapConfig(); var result = config.ConvertUsing((BetModel source) => new Bet { Coefficient = source.Coefficient, BetItemType = source.BetType }); var bet1 = ObjectMapperManager .DefaultInstance .GetMapper <BetModel, Bet>(result) .Map(new BetModel() { Coefficient = bet.Coefficient, BetType = bet.BetType }); return(bet1); }