public RiskProfile Calculate(Bet bet, IList<Bet> settledBets) { if (settledBets.Count == 0) { return Constants.SAFE_PROFILE; } var avergaStake = settledBets.Average(bets => bets.Stake); if (bet.Stake > (avergaStake * Constants.EXCEPTIONALLY_RISKY_STAKE_FACTOR)) { return new RiskProfile { Risk = Risk.HighlyRisky, Reason = "Stake is exceptionally large based on betting history." }; } if (bet.Stake > (avergaStake * Constants.UNUSUAL_STAKE_FACTOR)) { return new RiskProfile { Risk = Risk.Unusual, Reason = "Stake is unusually large based on betting history." }; } return Constants.SAFE_PROFILE; }
public int CalculateScore(Bet bet) { var multiplier = (bet.Game.IsScoreMultiplier) ? 2 : 1; var realResult = bet.Game.Result; var betResult = bet.Result; var realGoalDifference = realResult.HomeGoals - realResult.GuestGoals; var betGoalDifference = betResult.HomeGoals - betResult.GuestGoals; if (realResult.HomeGoals == betResult.HomeGoals && realResult.GuestGoals == betResult.GuestGoals) { return (int)Score.ExactResult * multiplier; } if (realGoalDifference == betGoalDifference) { return (int)Score.GoalDifference * multiplier; } if ((realGoalDifference > 0 && betGoalDifference > 0) || (realGoalDifference < 0 && betGoalDifference < 0)) { return (int)Score.WinTeam * multiplier; } return (int)Score.LoosOrNotBet; }
public ActionResult CreateBet(MyBetModel newBet) { try { // TODO: Add insert logic here BetsDBDataContext context = new BetsDBDataContext(); Bet bet = new Bet(); bet.name = newBet.Name; bet.description = newBet.Description; context.Bets.InsertOnSubmit(bet); context.SubmitChanges(); if (Request.Files.Count > 0) { List<HttpPostedFileBase> files = TempData["appl"] as List<HttpPostedFileBase>; if (files != null && files.Count != 0) { MyBetModel.WriteFileInDB(files, bet.id); TempData.Clear(); } } return RedirectToAction("CreateOutcome", "Outcome", new { idBet = bet.id }); } catch { return View(); } }
public static int TallyResult(int originalBankroll, Bet bet, Result result) { originalBankroll -= bet.Amount; originalBankroll += result.NetAmount; return originalBankroll; }
public RiskProfile Get(Bet bet, IList<Bet> settledBets) { var riskProfiles = _risks.Select(risk => risk.Calculate(bet, settledBets)).ToList(); riskProfiles.Add(_customerRisk.Calculate(settledBets)); var tst = riskProfiles.OrderByDescending(risk => risk.Risk); return riskProfiles.OrderByDescending(risk => risk.Risk).FirstOrDefault(); }
public void SaveBet(Bet bet) { FnHibernateHelper.InTransaction(session => { session.Save(bet.Result); session.Save(bet); }); }
public BetResult(Bet bet, Number hitNumber) { this.Bet = bet; var slot = Slot.Slots[this.Bet.SlotType]; this.IsWinner = slot.IsWinner(hitNumber); this.Delta = slot.GetWinnings(this.IsWinner, this.Bet.Amount) - this.Bet.Amount; }
public void UpdateBet(Bet bet) { FnHibernateHelper.InTransaction(session => { var originalBet = session.Get<Bet>(bet.Id); originalBet.Result.HomeGoals = bet.Result.HomeGoals; originalBet.Result.GuestGoals = bet.Result.GuestGoals; originalBet.Score = bet.Score; session.Update(originalBet.Result); }); }
public RiskProfile Calculate(Bet bet, IList<Bet> settledBets) { if (bet.PotentialPayout > Constants.RISKY_PAYOUT_AMOUNT) { return new RiskProfile { Risk = Risk.Risky, Reason = "Potential payout is too high." }; } return Constants.SAFE_PROFILE; }
public Player(Inbox inbox) { _normalBet = new Bet(25.0m); inbox.Loop(hand => { hand.Receive<Request<Bet>>(x => { x.Respond(_normalBet); inbox.Loop(loop => { }); }); }); }
public void AnalyseStress(double _ec, double _es, List<Point> _lst, Bet.bsx _typD, out double bF, out double bM) { double y=0; double _sig=0; double bForce = 0; double bMoment = 0; for (int i=0; i<_lst.Count; i++) { y=_lst[i].YCoord; //y координата на дискретната площ _sig=_bet.Stress(eps_cs(y,_ec,_es),true,_typD); bForce += _sig * _lst [i].XCoord/10; bMoment -=_sig*_lst[i].XCoord * (y - ycg)/1000; } //Console.WriteLine ("Force="+bForce.ToString("N2")); bF = bForce; bM = bMoment; }
public void ClickToBet(BoardFaceID betID) { Dictionary<Player, BoardFaceID> playerBet = new Dictionary<Player, BoardFaceID>(); Player p = GameManager.GetSingleton().GetPlayer(0); playerBet.Add(p, betID); Bet NewBet = new Bet(); NewBet.m_totalBet = p.Bet.m_totalBet; if(m_betList.ContainsKey(playerBet)) { Bet oldBet = m_betList[playerBet]; NewBet.m_totalBet += oldBet.m_totalBet; m_betList.Remove(playerBet); } m_betList.Add(playerBet,NewBet); DebugMessage.Log(string.Format("Player {0} Click bet : {1} with money {2}", p.PlayerProfile.Name, NewBet.m_betType, NewBet.m_totalBet)); }
public void ApplyStrategyForUserToExistedGames(string userName, string strategyName) { if (!this.CheckIfUserExists(userName)) return; var betStrategy = this._strategyFactory.Create(strategyName); var games = this._gameRepository.GetAllGames(); foreach (var game in games) { var result = betStrategy.CalculateResult(); var bet = new Bet { Game = game, Result = result, UserName = userName }; if(game.IsFinished) { bet.Score = this._scorer.CalculateScore(bet); } this._betRepository.SaveBet(bet); } // this._rankingRepository.UpdateRanking(); }
public BetDecorator(Bet decoratedBet) { this.decoratedBet = decoratedBet; }
public int CreateBet([FromBody] Bet bet) { return(this._betRepository.AddUpdateBet(bet)); }
internal void UpdateBetNew(object data) { var link = data as LinkData; if (link == null) { return; } Stopwatch sw = new Stopwatch(); HttpRequest req = new HttpRequest(); req.CharacterSet = Encoding.UTF8; if (UsingProxy) { req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy()); } int offset = 0; try { offset = GetServerOffset(req); } catch (Exception ex) { Logger.AddLog($"Не смогли получить смещение времи. {ex.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Error); } string prefix = GeneratorPrefix(); string updated = null; IHtmlDocument doc = null; bool reload = true; while (true) { sw.Reset(); sw.Start(); try { if (reload) { string response = req.Get($"{_url}/su/live/{link.Id}").ToString(); reload = false; var bet = new Bet(); bet.Bookmaker = BookmakerType.Marafon; bet.Site = "M"; bet.Name = link.Teams; bet.URL = $"su/live/{link.Id}"; bet.Team1Id = link.Team1Id; bet.Team2Id = link.Team2Id; var teams = link.Teams.Replace(" - ", "|").Split('|'); if (teams.Length < 2) { throw new ArgumentException($"{nameof(teams)}.Lenght!=2"); } bet.Team1 = teams[0]; bet.Team2 = teams[1]; doc = CreteDocument(response); bet = ParseBet(doc, bet); var time = (int)sw.ElapsedMilliseconds; sw.Stop(); _bets[link.Id] = bet; if (time > MainConfigurate.Configurate.MarafonMaxTime) { throw new ArgumentException($"Долго парсили {sw.ElapsedMilliseconds} мс "); } Console.WriteLine("Событие загруженно!"); } else { if (!_bets.ContainsKey(link.Id)) { Console.WriteLine("Почему то нет такого ключа в базе."); reload = true; continue; } if (doc == null) { Console.WriteLine($"Почему то {nameof(doc)}==null"); reload = true; continue; } if (String.IsNullOrWhiteSpace(updated)) { updated = (ConvertToUnixTimestamp() - offset).ToString(); } string url = $"https://liveupdate.marathonbookmakers.com/su/livestreamupdate/{link.Id}?callback={prefix}&markets={link.Id}&available=&updated={updated}&oddsType=Decimal&siteStyle=MULTIMARKETS&_={ConvertToUnixTimestamp()}"; var response = req.Get(url).ToString().Trim(); var responseData = response.Remove(response.Length - 1).Replace($"{prefix}(", ""); if (responseData.Contains("refreshPage")) { Console.WriteLine("Необходимо перезагрузить странницу"); reload = true; updated = null; continue; } var json = JsonConvert.DeserializeObject <MarafonPingResponse>(responseData); updated = json.Updated.ToString(); if (json.Modified == null) { Console.WriteLine("Обновление ставки не требуется!"); _bets[link.Id].Update(); } else { foreach (Modified modified in json.Modified) { if (modified.Type == "mutableUpdates") { try { UpdateDocument(doc, modified.Updates); } catch (Exception e) { reload = true; updated = null; throw new ArgumentException($"Не удалось сделать частичное обновлеение. и вот почему: {e.Message}"); } } } var bet = _bets[link.Id].ShortCopy(); bet = ParseBet(doc, bet); _bets[link.Id] = bet; Console.WriteLine("Сделали частичное обновление!"); } Thread.Sleep(1500); } } catch (Exception e) { Logger.AddLog($"Не удалось спарсить {link.Id}. И вот почему: {e.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Warn); Debug.WriteLine($"Не удалось спарсить {link.Id}. И вот почему: {e.Message}"); Thread.Sleep(5000); if (UsingProxy) { req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy()); } } } }
/// <summary> /// Метод устанваливает ставки /// </summary> /// <param name="col"></param> public static void CalculateGame(IEnumerable <Setter> col) { Bets = new List <Bet>(); foreach (var item in col) { var g = Gamblers.Find(s => s.Number == item.Gambler); //Выбираем игрока var b = Bugs.Find(s => s.Number == item.Bug); //ВЫбираем участника var row = new Bet(b, g, item.Bet); //создаем ставку Bets.Add(row); //добавляем ставку } //Генерируем случайные числа для каждого участника foreach (var item in Bugs) { item.RandomPosition(); } //Определяем побудителей //-------------- первое место ----------------- var Positions = Bugs.OrderByDescending(s => s.Position).Select(s => s.Position).Distinct().ToList();//Отсортировали по убыванию взяли тока уникальные значения var bugs = Bugs.Where(s => s.Position == Positions[0]); var res = ""; if (bugs.Count() > 1) { res = bugs.Aggregate("В забеге победили участники с номерами ", (current, item) => current + " " + item.Number); } else { res = "В забеге победил участник с номером " + bugs.First().Number; } ResultGames.Add(res + "\n"); //добавили в историю var summ = Bets.Sum(s => s.Amount); //сумма всех ставок var first = (summ / 2) / bugs.Count(); var totalFirst = (summ / 2); if (bugs.Count() > 1) { res = "1-е место. Выйгрышь составил " + first.ToString("F2") + ". Количество победителей: " + bugs.Count(); } else { res = "1-е место. Выйгрышь составил " + first.ToString("F2") + ". Количество победителей: 1"; } ResultGames.Add(res + "\n");//добавили в историю //------------- второе место ----------------- bugs = Bugs.Where(s => s.Position == Positions[1]); summ = summ - totalFirst;//сумма всех ставок var two = (summ * 0.75) / bugs.Count(); var totalTwo = (summ * 0.75); if (bugs.Count() > 1) { res = "2-е место. Выйгрышь составил " + two.ToString("F2") + ". Количество победителей: " + bugs.Count(); } else { res = "2-е место. Выйгрышь составил " + two.ToString("F2") + ". Количество победителей: 1"; } ResultGames.Add(res + "\n");//добавили в историю //-----------------третье место-------------- bugs = Bugs.Where(s => s.Position == Positions[1]); summ = summ - (float)totalTwo;//сумма всех ставок var free = (summ) / bugs.Count(); if (bugs.Count() > 1) { res = "3-е место. Выйгрышь составил " + free.ToString("F2") + ". Количество победителей: " + bugs.Count(); } else { res = "3-е место. Выйгрышь составил " + free.ToString("F2") + ". Количество победителей: 1"; } ResultGames.Add(res + "\n");//добавили в историю }
/// <summary> /// Создает вилку /// </summary> /// <param name="one">ставка 1</param> /// <param name="two">ставка 2</param> /// <param name="bt1">нужный коэфицент</param> /// <param name="bt2">нужный коэфицент</param> /// <param name="to1">Навзание коэфицента</param> /// <param name="to2">Навзание коэфицента</param> /// <param name="data1">Данные для открытия первой ставки</param> /// <param name="data2">Данные для открытия второй ставки</param> /// <param name="forktype">Тип вилки</param> /// <returns></returns> private static Fork CreateFork(Bet one, Bet two, float bt1, float bt2, string to1, string to2, object data1, object data2, ForkType forktype = ForkType.Main) { Fork fr = new Fork(); fr.ForkType = forktype; fr.SportName = one.Groupe; fr.Teams = one.Name; fr.Cof1 = bt1; fr.Cof2 = bt2; fr.SiteOne = one.Site; fr.SiteTwo = two.Site; fr.To1 = to1; fr.To2 = to2; fr.Url1 = one.URL; fr.Url2 = two.URL; //if (one.Time == two.Time) // fr.Time = one.Time; //else // fr.Time = one.Time + " " + two.Time; if (one.Time != null && one.Time != "-1") { if (one.Time.Contains(":")) { fr.Time = one.Time.Split(':').First() + "'"; } else { fr.Time = one.Time; } } else { if (two.Time != null && two.Time != "-1") { if (two.Time.Contains(":")) { fr.Time = two.Time.Split(':').First() + "'"; } else { fr.Time = two.Time; } } } if (one.SportType == two.SportType) { fr.SportType = one.SportType; } else { fr.SportType = SportType.Other; } fr.Data1 = data1; fr.Data2 = data2; fr.TypeOne = one.Bookmaker; fr.TypeTwo = two.Bookmaker; fr.Profit = (1 / ((1 / bt1) + (1 / bt2)) - 1) * 100; return(fr); }
public static void Seed(ModelBuilder modelBuilder) { var leagues = new League[] { new League { Id = 1, Name = "Serie A" }, new League { Id = 2, Name = "UEFA Champions League" }, new League { Id = 3, Name = "UEFA Europa League" }, new League { Id = 4, Name = "Jupiler Pro League" }, }; var games = new Game[] { //Serie A new Game { Id = 1, Hometeam = "Juventus", AwayTeam = "Cagliari", DateOfGame = new DateTime(2020, 01, 20, 15, 30, 00), LeagueId = 1 }, new Game { Id = 2, Hometeam = "Inter", AwayTeam = "Pescara", DateOfGame = new DateTime(2020, 01, 21, 18, 30, 00), LeagueId = 1 }, new Game { Id = 3, Hometeam = "Napoli", AwayTeam = "Cagliari", DateOfGame = new DateTime(2020, 01, 20, 15, 30, 00), LeagueId = 1 }, new Game { Id = 4, Hometeam = "Milan", AwayTeam = "Bologna", DateOfGame = new DateTime(2020, 01, 20, 20, 30, 00), LeagueId = 1 }, //Jupiler League new Game { Id = 5, Hometeam = "Club Brugge", AwayTeam = "Cercle Brugge", DateOfGame = new DateTime(2020, 01, 23, 13, 30, 00), LeagueId = 2 }, new Game { Id = 6, Hometeam = "KRC Genk", AwayTeam = "AA Gent", DateOfGame = new DateTime(2020, 01, 23, 18, 30, 00), LeagueId = 2 }, new Game { Id = 7, Hometeam = "Standard", AwayTeam = "FC Antwerp", DateOfGame = new DateTime(2020, 01, 23, 20, 30, 00), LeagueId = 2 }, new Game { Id = 8, Hometeam = "Club Brugge", AwayTeam = "Cercle Brugge", DateOfGame = new DateTime(2020, 01, 23, 13, 30, 00), LeagueId = 2 }, //UEFA Champions League new Game { Id = 9, Hometeam = "Atletico Madrid", AwayTeam = "Liverpool", DateOfGame = new DateTime(2020, 02, 18, 20, 30, 00), LeagueId = 3 }, new Game { Id = 10, Hometeam = "Atalanta", AwayTeam = "Valencia", DateOfGame = new DateTime(2020, 02, 19, 20, 30, 00), LeagueId = 3 }, new Game { Id = 11, Hometeam = "Chelsea", AwayTeam = "Bayern", DateOfGame = new DateTime(2020, 02, 19, 20, 30, 00), LeagueId = 3 }, new Game { Id = 12, Hometeam = "Napoli", AwayTeam = "Barcelona", DateOfGame = new DateTime(2020, 02, 25, 21, 00, 00), LeagueId = 3 }, //UEFA Europa League new Game { Id = 13, Hometeam = "Ludogorets", AwayTeam = "Inter Milan", DateOfGame = new DateTime(2020, 02, 20, 20, 30, 00), LeagueId = 4 }, new Game { Id = 14, Hometeam = "Club Brugge", AwayTeam = "Man United", DateOfGame = new DateTime(2020, 02, 20, 21, 30, 00), LeagueId = 4 }, new Game { Id = 15, Hometeam = "AA Gent", AwayTeam = "AS Roma", DateOfGame = new DateTime(2020, 02, 27, 20, 30, 00), LeagueId = 4 }, new Game { Id = 16, Hometeam = "Olympiacos", AwayTeam = "Arsenal", DateOfGame = new DateTime(2020, 02, 21, 20, 30, 00), LeagueId = 4 }, }; var users = new User[] { new User { Id = 1, UserName = "******", Password = "******" }, new User { Id = 2, UserName = "******", Password = "******" }, new User { Id = 3, UserName = "******", Password = "******" }, new User { Id = 4, UserName = "******", Password = "******" }, new User { Id = 5, UserName = "******", Password = "******" }, }; var bets = new Bet[] { new Bet { UserId = users[0].Id, GameId = games[0].Id }, new Bet { UserId = users[0].Id, GameId = games[5].Id }, new Bet { UserId = users[0].Id, GameId = games[9].Id }, new Bet { UserId = users[1].Id, GameId = games[8].Id }, new Bet { UserId = users[1].Id, GameId = games[10].Id }, new Bet { UserId = users[1].Id, GameId = games[11].Id }, new Bet { UserId = users[2].Id, GameId = games[15].Id }, new Bet { UserId = users[2].Id, GameId = games[7].Id }, new Bet { UserId = users[2].Id, GameId = games[12].Id }, new Bet { UserId = users[2].Id, GameId = games[13].Id }, new Bet { UserId = users[3].Id, GameId = games[2].Id }, }; modelBuilder.Entity <League>().HasData(leagues); modelBuilder.Entity <Game>().HasData(games); modelBuilder.Entity <User>().HasData(users); modelBuilder.Entity <Bet>().HasData(bets); }
public void InitPlayer(int id, string name, int coin, int age) { m_Profile = new Profile(id, name, coin, age); gameObject.name = name; m_bet = new Bet(); }
public void PlaceBet(Bet bet) { if (_roundIsOpen) _bets.Add(bet); else throw new RouletteGameException("Bet placed while round closed"); }
public virtual void ReadXML() { string urlPath = Constant.SourceXML.TITABETURL; string mainSport = ConfigurationManager.AppSettings["TITANBETMAINSPORT"].ToString(); _lstSport = new List<Sport>(); _lstEvent = new List<Event>(); _lstMatch = new List<Match>(); _lstBet = new List<Bet>(); _lstChoice = new List<Choice>(); XmlTextReader reader = new XmlTextReader(urlPath); // Skip non-significant whitespace reader.WhitespaceHandling = WhitespaceHandling.Significant; XPathDocument doc = new XPathDocument(reader, XmlSpace.Preserve); XPathNavigator nav = doc.CreateNavigator(); string[] arrMainSportId = mainSport.Split(','); try { int _sportId = 0; int _eventId = 0; long _matchId = 0; long _betId = 0; long _choiceId = 0; foreach (string sportid in arrMainSportId) { XPathExpression exprSport; exprSport = nav.Compile("/bookmaker/sport[@id='" + sportid + "']"); XPathNodeIterator iteratorSport = nav.Select(exprSport); while (iteratorSport.MoveNext()) { XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone(); _sportId++; Sport _sport = new Sport(); _sport.sportId = _sportId; _sport.sportName = _sportNameNavigator.GetAttribute("name", ""); _lstSport.Add(_sport); if (_sportNameNavigator.HasChildren) { XPathExpression exprevent; exprevent = _sportNameNavigator.Compile("group"); XPathNodeIterator iteratorEvent = _sportNameNavigator.Select(exprevent); while (iteratorEvent.MoveNext()) { _eventId++; XPathNavigator _eventNameNavigator = iteratorEvent.Current.Clone(); Event _event = new Event(); _event.eventId = _eventId; _event.sportId = _sportId; _event.eventName = _eventNameNavigator.GetAttribute("name", ""); _lstEvent.Add(_event); if (_eventNameNavigator.HasChildren) { XPathExpression exprematch; exprematch = _eventNameNavigator.Compile("event"); XPathNodeIterator iteratorMatch = _eventNameNavigator.Select(exprematch); while (iteratorMatch.MoveNext()) { _matchId++; XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone(); Match _match = new Match(); _match.matchId = _matchId; _match.eventId = _eventId; string[] league = _matchNameNavigator.GetAttribute("name", "").Split('-'); if (league.Length > 1) { _match.homeTeam = league[0].Trim(); _match.awayTeam = league[1].Trim(); } else { _match.homeTeam = _matchNameNavigator.GetAttribute("name", ""); } _match.startTime = Convert.ToDateTime(_matchNameNavigator.GetAttribute("date", "")); _lstMatch.Add(_match); if (_matchNameNavigator.HasChildren) { string OddTypeString = string.Empty; switch (_sportId) { case 1: OddTypeString = Constant.TitanBetOddTypeID.CRICKET; break; case 2: OddTypeString = Constant.TitanBetOddTypeID.HANDBALL; break; case 3: OddTypeString = Constant.TitanBetOddTypeID.HORSERACING; break; case 4: OddTypeString = Constant.TitanBetOddTypeID.MOTORSPORTS; break; case 5: OddTypeString = Constant.TitanBetOddTypeID.BOXING; break; case 6: OddTypeString = Constant.TitanBetOddTypeID.GOLF; break; case 7: OddTypeString = Constant.TitanBetOddTypeID.TENNIS; break; case 8: OddTypeString = Constant.TitanBetOddTypeID.FOOTBALL; break; } string[] arrOddTypeId = OddTypeString.Split(','); foreach (string oddTypeId in arrOddTypeId) { XPathExpression exprebet; exprebet = _matchNameNavigator.Compile("market[@tid='"+oddTypeId+"']"); XPathNodeIterator iteratorBet = _matchNameNavigator.Select(exprebet); while (iteratorBet.MoveNext()) { _betId++; XPathNavigator _betNameNavigator = iteratorBet.Current.Clone(); Bet _bet = new Bet(); _bet.betId = _betId; _bet.matchId = _matchId; _bet.betName = _betNameNavigator.GetAttribute("name", ""); _bet.betCodeID = _betNameNavigator.GetAttribute("tid", ""); _lstBet.Add(_bet); if (_betNameNavigator.HasChildren) { XPathExpression exprechoice; exprechoice = _betNameNavigator.Compile("outcome"); XPathNodeIterator iteratorChoice = _betNameNavigator.Select(exprechoice); while (iteratorChoice.MoveNext()) { _choiceId++; XPathNavigator _choiceNameNavigator = iteratorChoice.Current.Clone(); Choice _choice = new Choice(); _choice.choiceId = _choiceId; _choice.betId = _betId; _choice.choiceCodeId = (long)Constant.ChoiceType.OTHER; _choice.choiceCodeName = "OTHER"; _choice.choiceName = _choiceNameNavigator.GetAttribute("name", ""); _choice.odd = _choiceNameNavigator.GetAttribute("odds", ""); _choice.american_odd = _choiceNameNavigator.GetAttribute("american_odds", ""); _choice.fra_odd = _choiceNameNavigator.GetAttribute("fra_odds", ""); _lstChoice.Add(_choice); } } } } } } } } } } } } catch (Exception ex) { throw new Exception(ex.Message); } }
public void VerifyRouletteColor() { var bet = new Bet(BetType.Red, 100); Assert.AreEqual(RouletteColors.Red, bet.BetType.RouletteColor); }
public void VerifyAmount() { var bet = new Bet(BetType.Black, 123); Assert.AreEqual(123, bet.Amount); }
public void Number18BetColor() { var bet = new Bet(BetType.Number18, 100); Assert.AreEqual(RouletteColors.Red, bet.BetType.RouletteColor); }
public void TestExceptionForHistoricalBet() { DateTime futureDateTime = new DateTime(2200, 12, 1); Bet bet = new Bet("Carlow", "Oscar the horse", futureDateTime, 500m, true); }
public bool CheckStopPOstStats(Bet NewBet, bool win, SessionStats Stats, out string reason, SiteStats siteStats) { if (EnableUpperLimit && UpperLimitCompare == "Balance" && UpperLimitAction == LimitAction.Stop) { if (siteStats.Balance >= UpperLimit) { reason = "Upper balance limit reached."; return(true); } } if (EnableLowerLimit && UpperLimitCompare == "Balance" && LowerLimitAction == LimitAction.Stop) { if (siteStats.Balance <= LowerLimit) { reason = "lower balance limit reached."; return(true); } } if (EnableUpperLimit && UpperLimitCompare == "Profit" && UpperLimitAction == LimitAction.Stop) { if (Stats.Profit >= UpperLimit) { reason = "Upper profit limit reached. Stopping."; return(true); } } if (EnableLowerLimit && UpperLimitCompare == "Profit" && LowerLimitAction == LimitAction.Stop) { if (Stats.Profit <= LowerLimit) { reason = "Lower profit limit reached. Stopping."; return(true); } } if (EnableStopAfterBets && Stats.Bets >= StopAfterBets) { reason = "Stop after " + StopAfterBets + " bets condition triggered with " + Stats.Bets + " bets, Stopping."; return(true); } if (EnableStopAfterTime && (Stats.RunningTime + (long)(DateTime.Now - Stats.StartTime).TotalMilliseconds) > StopAfterTime) { reason = "Stop after " + StopAfterTime.ToString("HH:mm:ss") + " run time condition triggered with " + (new TimeSpan(0, 0, 0, 0, (int)(Stats.RunningTime + (long)(DateTime.Now - Stats.StartTime).TotalMilliseconds))).ToString("HH:mm:ss") + " running time, Stopping."; return(true); } if (win) { if (EnableStopAfterWinStreak && Stats.WinStreak >= StopAfterWinStreak) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterWinStreak, "Wines in a row", Stats.WinStreak); return(true); } if (EnableStopAfterBtcWin && Stats.Profit >= StopAfterBtcWin) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcWin, "Currency Win", Stats.Profit); return(true); } if (EnableStopAfterBtcWinStreak && Stats.CurrentProfit >= StopAfterBtcWinStreak) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcWinStreak, "Currency Streak Win", Stats.CurrentProfit); return(true); } if (EnableStopAfterWins && Stats.Wins % StopAfterWins == 0) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterWins, "Wins", Stats.Wins); return(true); } if (EnableStopWinFromMinProfit && Stats.Profit - Stats.MinProfit >= StopWinFromMinProfit) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopWinFromMinProfit, "profit since min profit", Stats.Profit - Stats.MinProfit); return(true); } } else { if (EnableStopAfterLoseStreak && Stats.LossStreak >= StopAfterLoseStreak) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterLoseStreak, "Losses in a row", Stats.LossStreak); return(true); } if (EnableStopAfterBtcLoss && -Stats.Profit >= StopAfterBtcLoss) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcLoss, "Currency Loss", Stats.Profit); return(true); } if (EnableStopAfterBtcLoseStreak && Stats.CurrentProfit <= -StopAfterBtcLoseStreak) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterBtcLoseStreak, "Currency Streak Loss", Stats.CurrentProfit); return(true); } if (EnableStopAfterLosses && Stats.Losses % StopAfterLosses == 0) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopAfterLosses, "Losses", Stats.Losses); return(true); } if (EnableStopLossFromMaxProfit && Stats.MaxProfit - Stats.Profit >= StopLossFromMaxProfit) { reason = string.Format("Stop after {0} {1} conditino triggered with {2} {1}, Stopping", StopLossFromMaxProfit, "loss since max profit", Stats.MaxProfit - Stats.Profit); return(true); } } reason = ""; return(false); }
protected void gvMatch_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var drv = e.Row.DataItem as DataRowView; if (drv != null) { var m = new Match((Guid)drv["MatchGuid"]); var lblHome = e.Row.FindControl("lblHome") as Label; var lblAway = e.Row.FindControl("lblAway") as Label; var hlVersus = e.Row.FindControl("hlVersus") as HyperLink; var ltrlResult = e.Row.FindControl("ltrlResult") as Literal; if (lblHome != null && lblAway != null && hlVersus != null) { var tHome = Team.Cache.Load(m.Home); var tAway = Team.Cache.Load(m.Away); var strTeamName = "<a class=\"StrongLink\" href=\"CasinoTeam.aspx?Team={0}\" title=\"{1}\">{2}</a> "; var strTeamLogo = "<img src=\"{3}\" alt=\"{1}\" /> "; lblHome.Text = string.Format(strTeamName + strTeamLogo, tHome.ID, tHome.TeamEnglishName, tHome.TeamDisplayName, tHome.TeamLogo); lblAway.Text = string.Format(strTeamLogo + strTeamName, tAway.ID, tAway.TeamEnglishName, tAway.TeamDisplayName, tAway.TeamLogo); hlVersus.NavigateUrl = $"CasinoTeam.aspx?Match={m.MatchGuid}"; hlVersus.Text = $"<em title=\"{tHome.Ground}{(tHome.Capacity.HasValue ? ("(" + tHome.Capacity.Value + ")") : string.Empty)}\">vs</em>"; } if (ltrlResult != null && m.ResultHome.HasValue && m.ResultAway.HasValue) { ltrlResult.Text = $"{m.ResultHome.Value} : {m.ResultAway.Value}"; } var ltrlTotalBetCount = e.Row.FindControl("ltrlTotalBetCount") as Literal; var ltrlTotalBetCash = e.Row.FindControl("ltrlTotalBetCash") as Literal; var ltrlTotalWin = e.Row.FindControl("ltrlTotalWin") as Literal; var betList = Bet.GetMatchAllBet(m.MatchGuid); if (ltrlTotalBetCount != null) { ltrlTotalBetCount.Text = betList.Count.ToString(); } if (ltrlTotalBetCash != null) { float totalbetCash = 0; betList.ForEach(delegate(Bet bet) { totalbetCash += bet.BetAmount.GetValueOrDefault(0f); }); ltrlTotalBetCash.Text = totalbetCash.ToString("N0"); } if (ltrlTotalWin != null) { float totalWin = 0; betList.ForEach( delegate(Bet bet) { totalWin += (bet.BetAmount.GetValueOrDefault(0f) - bet.Earning.GetValueOrDefault(0f)); }); ltrlTotalWin.Text = totalWin.ToString("N2"); } } } }
public void Number17BetColor() { var bet = new Bet(BetType.Number17, 100); Assert.AreEqual(RouletteColors.Black, bet.BetType.RouletteColor); }
/// <summary> /// Receive a SocketMessage, a list of PlayerBets, and a Bet. /// /// Calculate the amount of points that someone earned via betting, either choosing the actual winner, /// or those closest to the result. /// </summary> /// <param name="sm"></param> /// <param name="playerBets"></param> /// <param name="bet"></param> private async void CalculatePoints(SocketMessage sm, List <PlayerBet> playerBets, Bet bet) { if (playerBets == null) { await sm.Channel.SendMessageAsync($"No one bet on {bet.Id} - {bet.Name}"); return; } var playersAndBetsDiff = new Dictionary <Int64, Int32>(); // Get the difference between a player's bet and the winning value foreach (var playerBet in playerBets) { playersAndBetsDiff.Add(playerBet.BetterId, Math.Abs(bet.WinningBet - playerBet.Bet)); } // Sorted list of PlayerBets by bet value difference var sortedPlayerBetsDiff = (from entry in playersAndBetsDiff orderby entry.Value select entry).ToList(); // Find the closest value to the bet and select winners based on that var closestBet = sortedPlayerBetsDiff.First().Value; var winners = sortedPlayerBetsDiff.Where(b => b.Value == closestBet); // List of al winning betters var winningBetters = (from winner in winners join player in _bettingGame.Betters on winner.Key equals player.Id select player).ToList(); var winningPool = 0; var betPool = bet.BetPool; // Give the winning betters their bets back and add to the winningPool foreach (var player in winningBetters) { var value = playerBets.First(p => p.BetterId == player.Id).Points; player.Points += value; betPool -= value; winningPool += value; } // Build the string of the winners and give them a percentage of the pool based on their bet StringBuilder sb = new StringBuilder(); foreach (var player in winningBetters) { var value = playerBets.First(p => p.BetterId == player.Id).Points; sb.Append(player.Name + "\n"); player.Points += value / winningPool * betPool; player.WonBetsList.Add(bet.Id, bet.Name); player.BetsWon++; } SerializeData(_bettingGame); }
private List <Fork> Check(Bet one, Bet two) { List <Fork> rezult = new List <Fork>(); //Новый Ит if (one.ITotals.Count != 0 && two.ITotals.Count != 0) { foreach (Stake oneTotal in one.ITotals) { foreach (Stake twoTotal in two.ITotals) { if (oneTotal.Team != twoTotal.Team) { continue; } if (oneTotal.StakeType == twoTotal.StakeType) { continue; } if (oneTotal.Parametr == twoTotal.Parametr) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } else if (oneTotal.Parametr > twoTotal.Parametr && twoTotal.StakeType == StakeType.ITmax) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } else if (oneTotal.Parametr < twoTotal.Parametr && twoTotal.StakeType == StakeType.ITmin) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } } } } if (one.Games.Count != 0 && two.Games.Count != 0) { foreach (var gameOne in one.Games) { foreach (var gameTwo in two.Games) { if (gameOne.GameNumber == gameTwo.GameNumber) { if (CompareTeamsName(gameOne.Team1, gameTwo.Team1) && CompareTeamsName(gameOne.Team2, gameTwo.Team2)) { if (CheckFork(gameOne.Coef1, gameTwo.Coef2)) { rezult.Add(CreateFork(one, two, gameOne.Coef1, gameTwo.Coef2, gameOne.GameNumber.ToString(), gameTwo.GameNumber.ToString(), gameOne.Coef1o, gameTwo.Coef2o)); } if (CheckFork(gameOne.Coef2, gameTwo.Coef1)) { rezult.Add(CreateFork(one, two, gameOne.Coef2, gameTwo.Coef1, gameOne.GameNumber.ToString(), gameTwo.GameNumber.ToString(), gameOne.Coef2o, gameTwo.Coef1o)); } } } } } } if (one.SportType == SportType.Теннис || one.SportType == SportType.Снукер || one.SportType == SportType.Бейсбол || one.SportType == SportType.Волейбол || one.SportType == SportType.Бадминтон || one.SportType == SportType.Настольный_теннис) { rezult.AddRange(GetFork(one, two, BetNumber._1, BetNumber._2)); foreach (Stake oneFora in one.Foras) { if (oneFora.Parametr >= 0) { if (oneFora.StakeType == StakeType.Fora1) { if (CheckFork(oneFora.Coef, two._2)) { rezult.Add(CreateFork(one, two, oneFora.Coef, two._2, oneFora.ToString(), two.ToMyString(BetNumber._2), oneFora.ParametrO, two._2o)); } } else { if (CheckFork(oneFora.Coef, two._1)) { rezult.Add(CreateFork(one, two, oneFora.Coef, two._1, oneFora.ToString(), two.ToMyString(BetNumber._1), oneFora.ParametrO, two._1o)); } } } } foreach (Stake twoFora in two.Foras) { if (twoFora.Parametr >= 0) { if (twoFora.StakeType == StakeType.Fora1) { if (CheckFork(twoFora.Coef, one._2)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._2, twoFora.ToString(), one.ToMyString(BetNumber._2), twoFora.ParametrO, one._2o)); } } else { if (CheckFork(twoFora.Coef, one._1)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._1, twoFora.ToString(), one.ToMyString(BetNumber._1), twoFora.ParametrO, one._1o)); } } } } } else { foreach (Stake oneFora in one.Foras) { if (oneFora.Parametr >= 0.5) { if (oneFora.StakeType == StakeType.Fora1) { if (CheckFork(oneFora.Coef, two._2)) { rezult.Add(CreateFork(one, two, oneFora.Coef, two._2, oneFora.ToString(), two.ToMyString(BetNumber._2), oneFora.ParametrO, two._2o)); } } else { if (CheckFork(oneFora.Coef, two._1)) { rezult.Add(CreateFork(one, two, oneFora.Coef, two._1, oneFora.ToString(), two.ToMyString(BetNumber._1), oneFora.ParametrO, two._1o)); } } } else if (oneFora.Parametr > 0) { if (oneFora.StakeType == StakeType.Fora1) { if (CheckFork(oneFora.Coef, two._X2)) { rezult.Add(CreateFork(two, one, oneFora.Coef, two._X2, oneFora.ToString(), two.ToMyString(BetNumber._X2), oneFora.ParametrO, one._X2o)); } } else { if (CheckFork(oneFora.Coef, two._1X)) { rezult.Add(CreateFork(two, one, oneFora.Coef, two._1X, oneFora.ToString(), two.ToMyString(BetNumber._1X), oneFora.ParametrO, one._1X)); } } } } foreach (Stake twoFora in two.Foras) { if (twoFora.Parametr >= 0.5) { if (twoFora.StakeType == StakeType.Fora1) { if (CheckFork(twoFora.Coef, one._2)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._2, twoFora.ToString(), one.ToMyString(BetNumber._2), twoFora.ParametrO, one._2o)); } } else { if (CheckFork(twoFora.Coef, one._1)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._1, twoFora.ToString(), one.ToMyString(BetNumber._1), twoFora.ParametrO, one._1o)); } } } else if (twoFora.Parametr > 0) { if (twoFora.StakeType == StakeType.Fora1) { if (CheckFork(twoFora.Coef, one._X2)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._X2, twoFora.ToString(), one.ToMyString(BetNumber._X2), twoFora.ParametrO, one._X2o)); } } else { if (CheckFork(twoFora.Coef, one._1X)) { rezult.Add(CreateFork(two, one, twoFora.Coef, one._1X, twoFora.ToString(), one.ToMyString(BetNumber._1X), twoFora.ParametrO, one._1X)); } } } } } //Если в игре только 2 исхода, то мы не получим тут вилок, т.к. Х или 12 будет равно 0; //Они общие потому что например в баскете победитель матча всегда один. но в половинах или четвертях //может быть ничья rezult.AddRange(GetFork(one, two, BetNumber._12, BetNumber._X)); rezult.AddRange(GetFork(one, two, BetNumber._1X, BetNumber._2)); rezult.AddRange(GetFork(one, two, BetNumber._1, BetNumber._X2)); rezult.AddRange(GetFork(one, two, BetNumber._1X, BetNumber._X2)); foreach (Stake oneFora in one.Foras) { foreach (Stake twoFora in two.Foras) { if (oneFora.StakeType != twoFora.StakeType) { if (twoFora.Parametr != oneFora.Parametr && Math.Abs(twoFora.Parametr) == Math.Abs(oneFora.Parametr)) { if (CheckFork(oneFora.Coef, twoFora.Coef)) { rezult.Add(CreateFork(one, two, oneFora.Coef, twoFora.Coef, oneFora.ToString(), twoFora.ToString(), oneFora.ParametrO, twoFora.ParametrO)); } } else if (oneFora.Parametr > 0 && twoFora.Parametr < 0 && Math.Abs(oneFora.Parametr) > Math.Abs(twoFora.Parametr) || twoFora.Parametr > 0 && oneFora.Parametr < 0 && Math.Abs(twoFora.Parametr) > Math.Abs(oneFora.Parametr)) { if (CheckFork(oneFora.Coef, twoFora.Coef)) { rezult.Add(CreateFork(one, two, oneFora.Coef, twoFora.Coef, oneFora.ToString(), twoFora.ToString(), oneFora.ParametrO, twoFora.ParametrO)); } } } } } foreach (Stake oneTotal in one.Totals) { foreach (Stake twoTotal in two.Totals) { if (oneTotal.StakeType != twoTotal.StakeType) { if (oneTotal.Parametr == twoTotal.Parametr) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } else if (oneTotal.StakeType == StakeType.Tmax && twoTotal.StakeType == StakeType.Tmin && oneTotal.Parametr < twoTotal.Parametr) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } else if (oneTotal.StakeType == StakeType.Tmin && twoTotal.StakeType == StakeType.Tmax && oneTotal.Parametr > twoTotal.Parametr) { if (CheckFork(oneTotal.Coef, twoTotal.Coef)) { rezult.Add(CreateFork(one, two, oneTotal.Coef, twoTotal.Coef, oneTotal.ToString(), twoTotal.ToString(), oneTotal.ParametrO, twoTotal.ParametrO)); } } } } } return(rezult); }
public Player3(Bet MyBet, Label MaximumBet, int Cash, Label MyLabel) : base(MyBet, MaximumBet, Cash, MyLabel) { }
/// <summary> /// Sets the boolean Verified on a persisted Bet. /// </summary> /// <param name="bet"></param> public void UpdateVerifiedOnBet(Bet bet) { _dbUser.UpdateVerifiedOnBet(bet); }
public async Task <ActionResult <Bet> > PostBet(Bet bet) { await context.SaveAsync(bet); return(bet); }
internal void UpdateBet(object data) { var link = data as LinkData; if (link == null) { return; } Stopwatch sw = new Stopwatch(); HttpRequest req = new HttpRequest(); req.CharacterSet = Encoding.UTF8; if (UsingProxy) { req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy()); } while (true) { try { var response = req.Get($"{_url}/su/live/{link.Id}").ToString(); sw.Reset(); sw.Start(); var bet = new Bet(); bet.Bookmaker = BookmakerType.Marafon; bet.Site = "M"; bet.Name = link.Teams; bet.URL = $"su/live/{link.Id}"; bet.Team1Id = link.Team1Id; bet.Team2Id = link.Team2Id; var teams = link.Teams.Replace(" - ", "|").Split('|'); if (teams.Length < 2) { throw new ArgumentException($"{nameof(teams)}.Lenght!=2"); } bet.Team1 = teams[0]; bet.Team2 = teams[1]; var doc = CreteDocument(response); bet = ParseBet(doc, bet); var time = (int)sw.ElapsedMilliseconds; sw.Stop(); _bets[link.Id] = bet; if (time > MainConfigurate.Configurate.MarafonMaxTime) { throw new ArgumentException("Долго парсили"); } } catch (ThreadAbortException ex) { break; } catch (Exception ex) { Logger.AddLog($"{link.Id};URl: {_url}/su/live/{link.Id} Время {sw.ElapsedMilliseconds};Ошибка парсинга: {ex.Message}", Logger.LogTarget.MarafonThread, Logger.LogLevel.Warn); } if (UsingProxy) { req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy()); req.ReadWriteTimeout = 3000; req.ConnectTimeout = 3000; req.KeepAliveTimeout = 3000; } } }
public async Task DeleteBet(string id) { Task <Bet> BetTask = context.LoadAsync <Bet>(id); Bet bet = await BetTask; await context.DeleteAsync(bet); }
public async Task <JsonResult> ReceiveReceipt(Receipt1 receipts) { var bcg = new BarCodeGenerator(); var account = await BetDatabase.Accounts.SingleOrDefaultAsync(x => x.UserId == User.Identity.Name); var branchId = Convert.ToInt32(account.AdminE); var branch = await BetDatabase.Branches.SingleOrDefaultAsync(x => x.BranchId == branchId); var receiptid = bcg.GenerateRandomString(9); var receipt = new Receipt { UserId = User.Identity.Name, BranchId = Convert.ToInt16(account.AdminE), ReceiptStatus = 0, SetNo = 20141011, ReceiptId = int.Parse(receiptid) }; //Start New Reciept receipt.ReceiptId = int.Parse(receiptid); var betStake = receipts.TotalStake.ToString(CultureInfo.InvariantCulture); string response; // BetDatabase.Receipts.Add(receipt); // await BetDatabase.SaveChangesAsync(); var ttodd = receipts.TotalOdd; const float bettingLimit = 8000000; var cost = Convert.ToDouble(betStake); if ((cost >= 1000) && (cost <= bettingLimit))//betting limit { foreach (var betData in receipts.BetData) { try { var tempMatchId = Convert.ToInt32(betData.MatchId); var _matchid = BetDatabase.ShortMatchCodes.Single(x => x.ShortCode == tempMatchId).MatchNo; Match _match = BetDatabase.Matches.Single(h => h.BetServiceMatchNo == _matchid); DateTime _matchTime = _match.StartTime; DateTime timenow = DateTime.Now; if (_matchTime < timenow) { response = ("The Match " + tempMatchId + " Has Started"); return(new JsonResult { Data = new { message = response } }); } var bm = new Bet { BetOptionId = Int32.Parse(betData.OptionId), RecieptId = receipt.ReceiptId, MatchId = BetDatabase.ShortMatchCodes.Single(x => x.ShortCode == tempMatchId).MatchNo, BetOdd = Convert.ToDecimal(betData.Odd), }; BetDatabase.Bets.Add(bm); BetDatabase.SaveChanges(); } catch (Exception er) { response = (" An error has occured:" + er.Message); return(new JsonResult { Data = new { message = response } }); var msg = er.Message; } } // Requires Quick Attention receipt.TotalOdds = Convert.ToDouble(ttodd); receipt.ReceiptStatus = 1; receipt.SetSize = receipts.ReceiptSize; receipt.Stake = cost; receipt.WonSize = 0; receipt.SubmitedSize = 0; receipt.ReceiptDate = DateTime.Now; receipt.Serial = Int2Guid(receiptid); account.DateE = DateTime.Now; // receipt.RecieptID = 34; BetDatabase.Entry(receipt).State = EntityState.Modified; var statement = new Statement { Account = receipt.UserId, Amount = receipt.Stake, Controller = receipt.UserId, StatetmentDate = DateTime.Now, BalBefore = account.AmountE, BalAfter = account.AmountE + receipt.Stake, Comment = "Bet Transaction for Ticket No" + receiptid }; account.AmountE = account.AmountE + receipt.Stake; statement.Transcation = "Teller Bet"; statement.Method = "Online"; statement.Serial = receiptid; branch.Balance = branch.Balance + Convert.ToDecimal(receipt.Stake); BetDatabase.Entry(branch).State = EntityState.Modified; BetDatabase.Accounts.AddOrUpdate(account); BetDatabase.Statements.Add(statement); BetDatabase.SaveChanges(); var barcodeImage = bcg.CreateBarCode(receiptid); var tempPath = Server.MapPath("~/Content/BarCodes/" + receiptid.Trim() + ".png"); try { barcodeImage.Save(tempPath, ImageFormat.Png); } catch (Exception) { } response = ("Success"); } else if (cost < 1000) { receipt.ReceiptId = 0; response = ("Minimum betting stake is UGX 1000. Please enter amount more than UGX 1000."); } else { receipt.ReceiptId = 0; response = ("Maximum stake is UGX " + bettingLimit + ". Please enter amount less than UGX " + bettingLimit + "."); } return(new JsonResult { Data = new { message = response, ReceiptNumber = receipt.ReceiptId, ReceiptTime = String.Format("{0:dd/MM/yyyy}", DateTime.Now) + " - " + toJavaScriptDate(DateTime.Now), TellerName = account.UserId, BranchName = branch.BranchName, Balance = account.AmountE, Serial = receiptid, FormatedSerial = GetSerialNumber(receiptid) } }); }
private static bool StakeIsHighlyUnusual(Bet unSettledBet, decimal customerAverageBet) { return(unSettledBet.Stake > 30 * customerAverageBet); }
public async Task <List <Bet> > getBetHistory(List <string> betIds) { List <Bet> bets = new List <Bet>(); List <JsonExchangeBet> betfairBets = new List <JsonExchangeBet>(); try { httpClient.DefaultRequestHeaders.Referrer = new Uri("https://myaccount.betfair.com/summary/accountsummary"); HttpResponseMessage responseMessageActivity = await httpClient.GetAsync("https://myactivity.betfair.com/"); responseMessageActivity.EnsureSuccessStatusCode(); httpClient.DefaultRequestHeaders.Remove("Accept"); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/json, text/plain, */*"); string postParam = string.Format("{{\"status\":\"SETTLED\",\"fromRecord\":0,\"pageSize\":100,\"selectedBets\":\"MAIN\",\"state\":\"SETTLED\",\"eventTypeId\":null,\"dateFilter\":null,\"startDate\":\"{0}\",\"endDate\":\"{1}\"}}", Constants.start.ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd")); httpClient.DefaultRequestHeaders.Referrer = new Uri("https://myactivity.betfair.com/"); HttpResponseMessage responseMessageBetHistory = await httpClient.PostAsync("https://myactivity.betfair.com/activity/exchange/settled", (HttpContent) new StringContent(postParam, Encoding.UTF8, "application/json")); responseMessageBetHistory.EnsureSuccessStatusCode(); string responseMessageBetHistoryString = await responseMessageBetHistory.Content.ReadAsStringAsync(); if (string.IsNullOrEmpty(responseMessageBetHistoryString)) { return(bets); } JsonExchangeResult result = Newtonsoft.Json.JsonConvert.DeserializeObject <JsonExchangeResult>(responseMessageBetHistoryString); if (result != null && result.bets != null && result.bets.Count > 0) { betfairBets.AddRange(result.bets); } postParam = string.Format("{{\"status\":\"OPEN\",\"fromRecord\":0,\"pageSize\":100,\"selectedBets\":\"MAIN\",\"state\":\"MATCHED\",\"firstView\":false,\"dateFilter\":null,\"startDate\":\"{0}\",\"endDate\":\"{1}\"}}", Constants.start.ToString("yyyy-MM-dd"), DateTime.UtcNow.ToString("yyyy-MM-dd")); responseMessageBetHistory = await httpClient.PostAsync("https://myactivity.betfair.com/activity/exchange/open", (HttpContent) new StringContent(postParam, Encoding.UTF8, "application/json")); responseMessageBetHistory.EnsureSuccessStatusCode(); responseMessageBetHistoryString = await responseMessageBetHistory.Content.ReadAsStringAsync(); if (string.IsNullOrEmpty(responseMessageBetHistoryString)) { return(bets); } result = Newtonsoft.Json.JsonConvert.DeserializeObject <JsonExchangeResult>(responseMessageBetHistoryString); if (result != null && result.bets != null && result.bets.Count > 0) { betfairBets.AddRange(result.bets); } foreach (JsonExchangeBet jsonExchangeBet in betfairBets) { if (!betIds.Contains(jsonExchangeBet.betId)) { continue; } Bet bet = new Bet(); bet.betId = jsonExchangeBet.betId; DateTime now = DateTime.Now; DateTime.TryParse(jsonExchangeBet.placedDate, out now); bet.datetime = now; bet.time = now.ToString("yyyy-MM-dd HH:mm:ss"); bet.match = jsonExchangeBet.eventDescription; bet.type = jsonExchangeBet.side; bet.odds = jsonExchangeBet.odds; bet.stake = jsonExchangeBet.stake; bet.status = jsonExchangeBet.status; bets.Add(bet); } List <Bet> orderedBets = bets.OrderByDescending(o => o.datetime).ToList(); return(orderedBets); } catch (Exception e) { return(bets); } }
public bool CheckResetPostStats(Bet NewBet, bool win, SessionStats Statsn, SiteStats siteStats) { bool reset = false; if (EnableResetAfterBets && Statsn.Bets % ResetAfterBets == 0) { reset = true; } if (EnableUpperLimit && UpperLimitCompare == "Balance" && UpperLimitAction == LimitAction.Reset) { reset = reset || (siteStats.Balance >= UpperLimit); } if (EnableLowerLimit && UpperLimitCompare == "Balance" && LowerLimitAction == LimitAction.Reset) { reset = reset || (siteStats.Balance <= LowerLimit); } if (EnableUpperLimit && UpperLimitCompare == "Profit" && UpperLimitAction == LimitAction.Reset) { if (Statsn.PorfitSinceLimitAction >= UpperLimit) { reset = true; Statsn.PorfitSinceLimitAction = 0; } } if (EnableLowerLimit && UpperLimitCompare == "Profit" && LowerLimitAction == LimitAction.Reset) { if (Statsn.PorfitSinceLimitAction >= LowerLimit) { reset = true; Statsn.PorfitSinceLimitAction = 0; } } if (win) { if (EnableResetAfterWinStreak && Statsn.WinStreak % ResetAfterWinStreak == 0) { reset = true; } if (EnableResetAfterBtcStreakWin && Statsn.StreakProfitSinceLastReset >= ResetAfterBtcStreakWin) { reset = true; Statsn.StreakProfitSinceLastReset = 0; } if (EnableResetAfterBtcWin && Statsn.ProfitSinceLastReset >= ResetAfterBtcWin) { reset = true; Statsn.ProfitSinceLastReset = 0; } if (EnableResetAfterWins && Statsn.Wins % ResetAfterWins == 0) { reset = true; } if (EnableResetWinFromMinProfit && Statsn.Profit - Statsn.MinProfitSinceReset >= ResetWinFromMinProfit) { Statsn.MinProfitSinceReset = Statsn.Profit; reset = true; } } else { if (EnableResetAfterLoseStreak && Statsn.LossStreak % ResetAfterLoseStreak == 0) { reset = true; } if (EnableResetAfterBtcStreakLoss && Statsn.StreakLossSinceLastReset <= -ResetAfterBtcStreakLoss) { reset = true; Statsn.StreakLossSinceLastReset = 0; } if (EnableResetAfterBtcLoss && Statsn.ProfitSinceLastReset <= -ResetAfterBtcLoss) { reset = true; Statsn.ProfitSinceLastReset = 0; } if (EnableResetAfterLosses && Statsn.Losses % ResetAfterLosses == 0) { reset = true; } if (EnableResetLossFromMaxProfit && Statsn.MaxProfitSinceReset - Statsn.Profit >= ResetLossFromMaxProfit) { Statsn.MaxProfitSinceReset = Statsn.Profit; reset = true; } } return(reset); }
private static bool BetHasHighWinAmount(Bet unSettledBet) { return(unSettledBet.Win >= Constants.highWinAmountThreshHold); }
public void Number17BetValue() { var bet = new Bet(BetType.Number17, 100); Assert.AreEqual(17, bet.BetType.NumberBetValue); }
public bool CheckResetPreStats(Bet NewBet, bool win, SessionStats Stats, SiteStats siteStats) { return(false); }
private static bool BetHasHighWinAmount(Bet unSettledBet) { return unSettledBet.Win >= Constants.highWinAmountThreshHold; }
public bool CheckStopPreStats(Bet NewBet, bool win, SessionStats Stats, out string reason, SiteStats siteStats) { reason = ""; return(false); }
private void ComputeStatus(Bet unSettledBet, decimal customerAverageBet) { if (BetHasHighWinAmount(unSettledBet)) { unSettledBet.Status.HasHighWinAmount = true; } if (!SettledBets.Any()) { return; } if (StakeIsHighlyUnusual(unSettledBet, customerAverageBet)) { unSettledBet.Status.IsHighlyUnusual = true; return; } if (StakeIsUnusual(unSettledBet, customerAverageBet)) { unSettledBet.Status.IsUnusual = true; } }
public void UpdateRoom(Room room) { try { if (room == null) { return; } if (room.Players == null) { return; } if (room.GetRoomType() != (int)RoomType.Tag) { if (room.Players[0] == null && room.Players[1] == null) { return; } } else { if (room.Players[0] == null && room.Players[1] == null && room.Players[2] == null && room.Players[3] == null) { return; } } RoomItem item = GetItem(room.Id); string players1 = ""; string players2 = ""; if (room.GetRoomType() != (int)RoomType.Tag) { players1 = room.Players[0] != null ? room.Players[0].Username : "******"; players2 = room.Players[1] != null ? room.Players[1].Username : "******"; } else { players1 = room.Players[0] != null ? room.Players[0].Username : "******"; players1 += " & " + (room.Players[1] != null ? room.Players[1].Username : "******"); players2 = room.Players[2] != null ? room.Players[2].Username : "******"; players2 += " & " + (room.Players[3] != null ? room.Players[3].Username : "******"); } RoomItem newitem = new RoomItem { Id = room.Id, Players1 = players1, Players2 = players2, Type = room.Config.Type, Config = room.Config, NeedPassword = room.NeedPassword, IsRanked = room.IsRanked(), CaptionText = room.Config.CaptionText, IsShadowDuel = room.IsShadowRoom(), RoomColor = new SolidColorBrush(Colors.Black), ObserversCount = room.Observers.Count, IsTurboDuel = room.IsTurboDuel }; if (room.Config.Banlist != 0 || (room.Config.StartDuelLP != 8000 && room.Config.Type != RoomType.Tag) || (room.Config.StartDuelLP != 16000 && room.Config.Type == RoomType.Tag) || room.Config.CardByHand != 5 || room.Config.MasterRules != 5 || room.Config.DrawCount != 1 | room.Config.NoShuffleDeck == true) { newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("CustomRoomColor")); } if (room.IsShadowRoom()) { Bet bet = null; switch (room.Config.BType) { case BetType.BPs: bet = JsonConvert.DeserializeObject <BPsBet>(room.Config.BetSerealized); break; case BetType.Mute: case BetType.Ban: bet = JsonConvert.DeserializeObject <SanctionBet>(room.Config.BetSerealized); break; } newitem.Bet = bet; newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("ShadowRoomColor")); } if (room.IsTurboDuel) { newitem.RoomColor = new SolidColorBrush(FormExecution.AppDesignConfig.GetGameColor("TurboDuelRoomColor")); } if (item == null) { AddItem(newitem); } else { try { int index = Itemslist.Items.IndexOf(item); Itemslist.Items.Remove(item); Itemslist.Items.Insert(index, newitem); _rooms[item.Id] = newitem; } catch (Exception ex) { logger.Error(ex.ToString()); } } } catch (Exception ex) { logger.Error("UPDATE ROOM ERROR - {0}", ex.ToString()); } }
public void UpdateBet(Bet bet) { this._betRepository.UpdateBet(bet); }
private void RefreshGame() { try { //new MathController().SaveMatch(match); GameContent.Children.Clear(); Grid grid = new Grid() { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, RowDefinitions = { new RowDefinition { Height = GridLength.Auto } }, ColumnDefinitions = { new ColumnDefinition { Width = GridLength.Auto }, new ColumnDefinition { Width = GridLength.Star } } }; grid.Children.Add(new Label() { Text = "Rod.", HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = Color.LightGray }, 0, 0); for (int c = 1; c <= match.Players.Count; c++) { grid.Children.Add(new Label() { Text = match.Players.ElementAt(c - 1).Name, HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = Color.LightGray }, c, 0); } for (int l = 1; l <= match.Rounds.Count; l++) { grid.Children.Add(new Label() { Text = l.ToString(), HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = Color.LightGray }, 0, l); for (int c = 0; c < match.Players.Count; c++) { Bet b = match.Rounds.ElementAt(l - 1).Bets.ElementAt(c); Label bet = new Label() { Text = b.Value.ToString(), HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = b.Ok ? Color.LightGreen : Color.LightSalmon }; StackLayout cell = new StackLayout() { Orientation = StackOrientation.Horizontal }; if (l == match.Rounds.Count) { TapGestureRecognizer tap = new TapGestureRecognizer(); tap.Tapped += delegate { b.Ok = !b.Ok; RefreshGame(); }; cell.GestureRecognizers.Add(tap); cell.Children.Add(bet); } else { cell.Children.Add(bet); } grid.Children.Add(cell, c + 1, l); } } grid.Children.Add(new Label() { Text = "Tot.", HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = Color.LightGray }, 0, match.Rounds.Count + 1); for (int c = 1; c <= match.Players.Count; c++) { grid.Children.Add(new Label() { Text = match.GetPlayerResult(match.Players.ElementAt(c - 1)).ToString(), HorizontalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.Center, BackgroundColor = Color.LightGray, FontAttributes = FontAttributes.Bold }, c, match.Rounds.Count + 1); } GameContent.Children.Add(grid); StackLayout stackLayout = new StackLayout { Orientation = StackOrientation.Horizontal }; if (match.Rounds.Count < 10) { Button newRound = new Button() { Text = "Nova rodada", HorizontalOptions = LayoutOptions.FillAndExpand, Margin = 10 }; newRound.Clicked += delegate { foreach (var p in match.Players) { p.Score = match.GetPlayerResult(p); } Navigation.PushAsync(new NewRound(match)); }; GameContent.Children.Add(newRound); Button backRound = new Button() { Text = "Voltar rodada", HorizontalOptions = LayoutOptions.FillAndExpand, Margin = 10 }; backRound.Clicked += delegate { Device.BeginInvokeOnMainThread(async() => { var result = await this.DisplayAlert("Quer mesmo anular a última rodada?", "", "Sim", "Cancelar"); if (result) { match.Rounds.RemoveAt(match.Rounds.Count - 1); foreach (var p in match.Players) { p.Score = match.GetPlayerResult(p); } await Navigation.PushAsync(new NewRound(match)); } }); }; if (match.Rounds.Count > 0) { stackLayout.Children.Add(backRound); } } else { Button endGame = new Button() { Text = "Finalizar partida", HorizontalOptions = LayoutOptions.FillAndExpand, Margin = 10 }; endGame.Clicked += delegate { match.Finished = true; List <Player> results = match.GetResults(); new ScoreController().SaveScores(results); //new MathController().SaveMatch(match); string message = string.Empty; foreach (var p in results) { message += p.Name + ": " + p.Score + "\n"; } DisplayAlert("Parabéns " + results.First().Name, message, "Ok"); }; GameContent.Children.Add(endGame); } Button exit = new Button() { Text = "Sair do jogo", HorizontalOptions = LayoutOptions.FillAndExpand, Margin = 10, }; exit.Clicked += delegate { OnBackButtonPressed(); }; stackLayout.Children.Add(exit); GameContent.Children.Add(stackLayout); } catch (Exception e) { GameContent.Children.Add(new Label() { Text = e.Message }); } }
public void Number0BetColor() { var bet = new Bet(BetType.Zero, 100); Assert.AreEqual(RouletteColors.Green, bet.BetType.RouletteColor); Assert.AreEqual(0, bet.BetType.NumberBetValue); }
/// <summary> /// Allows a gambler to place a bet, will return a string of the message sent back from the bookie /// </summary> /// <param name="b">The bet to place against the bookie</param> /// <returns>The message returned by the bookie server</returns> public string placeBet(Bet b) { object[] parameter = new object[] { _gambler.ID, b.MatchID, b.TeamID, b.Odds, b.Stake }; string messageID = this._gambler.getNextMessageID(); JsonResponse response = handleJsonRpcRequest("placeBet", parameter, messageID); while (response == null || response.Result.ToString().Equals(PlaceBetResult.LOST_CONNECTION.ToString())) { //Will rety up to 3 times (As set in _maxRetries). We don't mind sending a duplicate message, as the bookie will handle it and reply back with the previous response if (_retry > _maxRetries) return PlaceBetResult.LOST_CONNECTION.ToString(); _retry++; //Sleep for 10 seconds so we can do initial test scenario //Other wise we can't test another user beating this gambler to the punch of creating a bet Thread.Sleep(10000); response = handleJsonRpcRequest("placeBet", parameter, messageID); } return response.Result.ToString(); }
protected double SpinRouletteWithExceptionHandling(RouletteGame rouletteGame, Bet bet) { double result = 0.0; try { result = rouletteGame.PlaceBetAndSpin(bet); WPrevious = W; } catch (ArgumentException) { bet.Amount = WPrevious; result = rouletteGame.PlaceBetAndSpin(bet); W = WPrevious; } return(result); }
private static bool StakeIsUnusual(Bet unSettledBet, decimal customerAverageBet) { return unSettledBet.Stake > 10*customerAverageBet; }
public void Initialize() { _bet = new Bet(); _contestMock = new Mock <Contest>(); }
public virtual void ReadXML() { string urlPathSport = string.Empty; string urlPathLeague = string.Empty; string urlPathFeed = string.Empty; urlPathSport = Constant.SourceXML.PINNACLESPORTSURL; if (urlPathSport.IndexOf("http://") > -1) { urlPathLeague = Constant.SourceXML.PINNACLELEAGUEURL; urlPathFeed = Constant.SourceXML.PINNACLEFEEDURL; } else { string[] arrPlitUrl = urlPathSport.Split('_'); string timetick = arrPlitUrl[2].Replace(".xml", ""); urlPathLeague = arrPlitUrl[0] + "_league_{0}_"+timetick+".xml"; urlPathFeed = arrPlitUrl[0] + "_feed_{0}_{1}_" + timetick + ".xml"; } _lstSport = new List<Sport>(); _lstEvent = new List<Event>(); _lstMatch = new List<Match>(); _lstBet = new List<Bet>(); _lstChoice = new List<Choice>(); //sport XmlTextReader readerSport = new XmlTextReader(urlPathSport); // Skip non-significant whitespace readerSport.WhitespaceHandling = WhitespaceHandling.Significant; XPathDocument doc = new XPathDocument(readerSport, XmlSpace.Preserve); XPathNavigator nav = doc.CreateNavigator(); XPathExpression exprSport; exprSport = nav.Compile("/rsp/sports/sport"); XPathNodeIterator iteratorSport = nav.Select(exprSport); try { int _sportId = 0; int _eventId = 0; long _matchId = 0; long _betId = 0; long _choiceId = 0; while (iteratorSport.MoveNext()) { XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone(); int feedContentSport = Convert.ToInt32(_sportNameNavigator.GetAttribute("feedContents", "")); if (feedContentSport > 0) { _sportId = Convert.ToInt32(_sportNameNavigator.GetAttribute("id", "")); Sport _sport = new Sport(); _sport.sportId = Convert.ToInt32(_sportNameNavigator.GetAttribute("id", "")); _sport.sportName = _sportNameNavigator.Value; _lstSport.Add(_sport); //league- event XmlTextReader readerLeague = new XmlTextReader(string.Format(urlPathLeague, _sportId)); readerLeague.WhitespaceHandling = WhitespaceHandling.Significant; XPathDocument docLeague = new XPathDocument(readerLeague, XmlSpace.Preserve); XPathNavigator navLeague = docLeague.CreateNavigator(); XPathExpression exprLeague; exprLeague = navLeague.Compile("/rsp/leagues/league"); XPathNodeIterator iteratorLeague = navLeague.Select(exprLeague); while (iteratorLeague.MoveNext()) { XPathNavigator _eventNameNavigator = iteratorLeague.Current.Clone(); int feedContentLeague = Convert.ToInt32(_sportNameNavigator.GetAttribute("feedContents", "")); if (feedContentLeague > 0) { Event _event = new Event(); _eventId = Convert.ToInt32(_eventNameNavigator.GetAttribute("id", "")); _event.eventId = _eventId; _event.sportId = _sportId; _event.eventName = _eventNameNavigator.Value; _lstEvent.Add(_event); //match - home team - awayteam XmlTextReader readerMatch = new XmlTextReader(string.Format(urlPathFeed, _sportId, _eventId)); readerMatch.WhitespaceHandling = WhitespaceHandling.Significant; XPathDocument docMatch = new XPathDocument(readerMatch, XmlSpace.Preserve); XPathNavigator navMatch = docMatch.CreateNavigator(); XPathExpression exprematch; exprematch = navMatch.Compile("/rsp/fd/sports/sport/leagues/league"); XPathNodeIterator iteratorMatch = navMatch.Select(exprematch); while (iteratorMatch.MoveNext()) { XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone(); XPathExpression exprematchEvent; exprematchEvent = _matchNameNavigator.Compile("events/event"); XPathNodeIterator iteratorMatchEvent = _matchNameNavigator.Select(exprematchEvent); while (iteratorMatchEvent.MoveNext()) { _matchId++; XPathNavigator _matchEventNameNavigator = iteratorMatchEvent.Current.Clone(); Match _match = new Match(); _match.matchId = _matchId; _match.eventId = _eventId; //_match.nameMatch = _matchNameNavigator.GetAttribute("name", ""); _match.homeTeam = _matchEventNameNavigator.SelectSingleNode("homeTeam").SelectSingleNode("name").Value; _match.awayTeam = _matchEventNameNavigator.SelectSingleNode("awayTeam").SelectSingleNode("name").Value; _match.startTime = Convert.ToDateTime(_matchEventNameNavigator.SelectSingleNode("startDateTime").Value); _lstMatch.Add(_match); if (_matchEventNameNavigator.HasChildren) { XPathExpression exprebet; exprebet = _matchEventNameNavigator.Compile("periods/period"); XPathNodeIterator iteratorBet = _matchEventNameNavigator.Select(exprebet); while (iteratorBet.MoveNext()) { _betId++; XPathNavigator _betNameNavigator = iteratorBet.Current.Clone(); Bet _bet = new Bet(); _bet.betId = _betId; _bet.matchId = _matchId; _bet.betName = _betNameNavigator.SelectSingleNode("description").Value; _bet.betCodeID = _bet.betName; _lstBet.Add(_bet); //handicap XPathExpression exprehandicap; exprehandicap = _matchEventNameNavigator.Compile("spreads/spread"); XPathNodeIterator iteratorHandicap = _matchEventNameNavigator.Select(exprehandicap); //total XPathExpression expretotal; expretotal = _matchEventNameNavigator.Compile("totals/total"); XPathNodeIterator iteratorTotal = _matchEventNameNavigator.Select(expretotal); //moneyline XPathExpression expremoneyline; expremoneyline = _matchEventNameNavigator.Compile("moneyLine"); XPathNodeIterator iteratorMoneyLine = _matchEventNameNavigator.Select(expremoneyline); while (iteratorHandicap.MoveNext()) { _choiceId++; XPathNavigator _choiceNameNavigator = iteratorHandicap.Current.Clone(); Choice _choice = new Choice(); _choice.choiceId = _choiceId; _choice.betId = _betId; _choice.choiceCodeId = (long)Constant.ChoiceType.HANDICAP; _choice.choiceCodeName = "HANDICAP"; _choice.choiceName = "spread"; _choice.awaySpread = _choiceNameNavigator.SelectSingleNode("awaySpread").Value; _choice.awayPrice = _choiceNameNavigator.SelectSingleNode("awayPrice").Value; _choice.homeSpread = _choiceNameNavigator.SelectSingleNode("homeSpread").Value; _choice.homePrice = _choiceNameNavigator.SelectSingleNode("homePrice").Value; _lstChoice.Add(_choice); } while (iteratorTotal.MoveNext()) { _choiceId++; XPathNavigator _choiceNameNavigator = iteratorTotal.Current.Clone(); Choice _choice = new Choice(); _choice.choiceId = _choiceId; _choice.betId = _betId; _choice.choiceCodeId = (long)Constant.ChoiceType.TOTAL; _choice.choiceCodeName = "TOTAL"; _choice.choiceName = "total"; _choice.points = _choiceNameNavigator.SelectSingleNode("points").Value; _choice.overPrice = _choiceNameNavigator.SelectSingleNode("overPrice").Value; _choice.underPrice = _choiceNameNavigator.SelectSingleNode("underPrice").Value; _lstChoice.Add(_choice); } while (iteratorMoneyLine.MoveNext()) { _choiceId++; XPathNavigator _choiceNameNavigator = iteratorMoneyLine.Current.Clone(); Choice _choice = new Choice(); _choice.choiceId = _choiceId; _choice.betId = _betId; _choice.choiceCodeId = (long)Constant.ChoiceType.MONEY_LINE; _choice.choiceCodeName = "MONEY_LINE"; _choice.choiceName = "moneyLine"; _choice.awayPrice = _choiceNameNavigator.SelectSingleNode("awayPrice").Value; _choice.homePrice = _choiceNameNavigator.SelectSingleNode("homePrice").Value; _choice.drawPrice = _choiceNameNavigator.SelectSingleNode("drawPrice").Value; _lstChoice.Add(_choice); } } } } } } } } } } catch (Exception ex) { //throw new Exception(ex.Message); } }
public void TearDown() { _bet = null; }
public void SaveBet(Bet bet) { this._betRepository.SaveBet(bet); }
protected void gvMatch_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //Match m = e.Row.DataItem as Match; var drv = e.Row.DataItem as DataRowView; if (drv != null) { var m = new Match((Guid)drv["MatchGuid"]); var matchResult = e.Row.FindControl("ltrlMatchResult") as Literal; var btnCalcBonus = e.Row.FindControl("btnCalcBonus") as LinkButton; var btnReturnBet = e.Row.FindControl("btnReturnBet") as LinkButton; var lblBonus = e.Row.FindControl("lblBonus") as Label; var tbPlayTime = e.Row.FindControl("tbPlayTime") as TextBox; var tbRound = e.Row.FindControl("tbRound") as TextBox; var tbHome = e.Row.FindControl("tbHome") as TextBox; var tbAway = e.Row.FindControl("tbAway") as TextBox; if (tbPlayTime != null) { tbPlayTime.Text = m.PlayTime.ToString("yyyy-MM-dd HH:mm"); } if (tbRound != null) { tbRound.Text = m.Round.ToString(); } if (tbHome != null && tbAway != null && m.ResultHome.HasValue && m.ResultAway.HasValue) { tbHome.Text = m.ResultHome.ToString(); tbAway.Text = m.ResultAway.ToString(); } if (btnCalcBonus != null && btnReturnBet != null && lblBonus != null) { if (matchResult != null && m.ResultHome.HasValue && m.ResultAway.HasValue) { matchResult.Text = $"{m.ResultHome}:{m.ResultAway}"; var matchGuid = m.MatchGuid; var itemGuid = CasinoItem.GetCasinoItemGuidByMatch(matchGuid, CasinoType.SingleChoice); if (itemGuid.HasValue) { var item = CasinoItem.GetCasinoItem(itemGuid.Value); if (item.Earning.HasValue) { //hide button calc bonus btnCalcBonus.Visible = false; btnReturnBet.Visible = false; lblBonus.Text = item.Earning.Value.ToString("N2"); lblBonus.Visible = true; } else { //show button calc bonus btnCalcBonus.Visible = true; btnReturnBet.Visible = false; lblBonus.Visible = false; //set button command argument btnCalcBonus.CommandArgument = m.MatchGuid.ToString(); } } } else { var betList = Bet.GetMatchAllBet(m.MatchGuid); var betCount = 0; if (betList != null && betList.Count > 0) { betCount = betList.Count; } btnReturnBet.Text = $"退还:{betCount}注"; btnReturnBet.Visible = true; btnCalcBonus.Visible = false; lblBonus.Visible = false; btnReturnBet.CommandArgument = m.MatchGuid.ToString(); if (betCount <= 0) { btnReturnBet.Enabled = false; } } } } } }
public virtual void ReadXML() { string urlPath = Constant.SourceXML.BETCLICKURL; _lstSport = new List<Sport>(); _lstEvent = new List<Event>(); _lstMatch = new List<Match>(); _lstBet = new List<Bet>(); _lstChoice = new List<Choice>(); XmlTextReader reader = new XmlTextReader(urlPath); // Skip non-significant whitespace reader.WhitespaceHandling = WhitespaceHandling.Significant; XPathDocument doc = new XPathDocument(reader, XmlSpace.Preserve); XPathNavigator nav = doc.CreateNavigator(); XPathExpression exprSport; exprSport = nav.Compile("/sports/sport"); XPathNodeIterator iteratorSport = nav.Select(exprSport); try { int _sportId = 0; int _eventId = 0; long _matchId = 0; long _betId = 0; long _choiceId = 0; while (iteratorSport.MoveNext()) { _sportId++; XPathNavigator _sportNameNavigator = iteratorSport.Current.Clone(); Sport _sport = new Sport(); _sport.sportId = _sportId; _sport.sportName = _sportNameNavigator.GetAttribute("name", ""); _lstSport.Add(_sport); if (_sportNameNavigator.HasChildren) { XPathExpression exprevent; exprevent = _sportNameNavigator.Compile("event"); XPathNodeIterator iteratorEvent = _sportNameNavigator.Select(exprevent); while (iteratorEvent.MoveNext()) { _eventId++; XPathNavigator _eventNameNavigator = iteratorEvent.Current.Clone(); Event _event = new Event(); _event.eventId = _eventId; _event.sportId = _sportId; _event.eventName = _eventNameNavigator.GetAttribute("name", ""); _lstEvent.Add(_event); if (_eventNameNavigator.HasChildren) { XPathExpression exprematch; exprematch = _eventNameNavigator.Compile("match"); XPathNodeIterator iteratorMatch = _eventNameNavigator.Select(exprematch); while (iteratorMatch.MoveNext()) { _matchId++; XPathNavigator _matchNameNavigator = iteratorMatch.Current.Clone(); Match _match = new Match(); _match.matchId = _matchId; _match.eventId = _eventId; string[] league = _matchNameNavigator.GetAttribute("name", "").Split('-'); if (league.Length > 1) { _match.homeTeam = league[0].Trim(); _match.awayTeam = league[1].Trim(); } else { _match.homeTeam = _matchNameNavigator.GetAttribute("name", ""); } _match.startTime = Convert.ToDateTime(_matchNameNavigator.GetAttribute("start_date", "")); _lstMatch.Add(_match); if (_matchNameNavigator.HasChildren) { XPathExpression exprebet; exprebet = _matchNameNavigator.Compile("bets/bet"); XPathNodeIterator iteratorBet = _matchNameNavigator.Select(exprebet); while (iteratorBet.MoveNext()) { _betId++; XPathNavigator _betNameNavigator = iteratorBet.Current.Clone(); Bet _bet = new Bet(); _bet.betId = _betId; _bet.matchId = _matchId; _bet.betName = _betNameNavigator.GetAttribute("name", ""); _bet.betCodeID = _betNameNavigator.GetAttribute("code", ""); _lstBet.Add(_bet); if (_betNameNavigator.HasChildren) { XPathExpression exprechoice; exprechoice = _betNameNavigator.Compile("choice"); XPathNodeIterator iteratorChoice = _betNameNavigator.Select(exprechoice); while (iteratorChoice.MoveNext()) { _choiceId++; XPathNavigator _choiceNameNavigator = iteratorChoice.Current.Clone(); Choice _choice = new Choice(); _choice.choiceId = _choiceId; _choice.betId = _betId; _choice.choiceName = _choiceNameNavigator.GetAttribute("name", ""); _choice.odd = _choiceNameNavigator.GetAttribute("odd", ""); _lstChoice.Add(_choice); } } } } } } } } } } catch (Exception ex) { throw new Exception(ex.Message); } }
private List <Fork> CheckMain(Bet one, Bet two) { List <Fork> rezult = new List <Fork>(); if (one.Bookmaker == two.Bookmaker) { return(rezult); } if (_bd == null) { _bd = new UnicDataDecorator(UnicData.Load("bd.data")); UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase; } //if (one.Team1Id == -2) // one.Team1Id = _bd.GetNumber(one.Team1); if (one.Team1Id == -1) { return(rezult); } //if (one.Team2Id == -2) // one.Team2Id = _bd.GetNumber(one.Team2); if (one.Team2Id == -1) { return(rezult); } //if (two.Team1Id == -2) // two.Team1Id = _bd.GetNumber(two.Team1); if (two.Team1Id == -1) { return(rezult); } //if (two.Team2Id == -2) // two.Team2Id = _bd.GetNumber(two.Team2); if (two.Team2Id == -1) { return(rezult); } if (one.Team1Id != two.Team1Id) { return(rezult); } if (one.Team2Id != two.Team2Id) { return(rezult); } _betCheck++; rezult.AddRange(Check(one, two)); foreach (var key in one.Parts) { if (two.Parts.ContainsKey(key.Key)) { rezult.AddRange(Check(one.Parts[key.Key], two.Parts[key.Key])); } } return(rezult); }