/// <summary> /// Итоговый счёт со всех бирж /// </summary> /// <returns>Счёт со всех бирж</returns> public string GetNewS() { var max = betfairScoreTime; TypeDBO typeMax = TypeDBO.BetFair; if ((max.CompareTo(bet365ScoreTime) < 0) && (prevScoreBetfair != " : ")) { max = bet365ScoreTime; typeMax = TypeDBO.Bet365; } if ((max.CompareTo(skyBetScoreTime) < 0) && (prevScoreSkyBet != " : ")) { max = skyBetScoreTime; typeMax = TypeDBO.SkyBet; } var result = ""; switch (typeMax) { case TypeDBO.Bet365: result = Get365S(); break; case TypeDBO.BetFair: result = GetBetfairS(); break; case TypeDBO.SkyBet: result = GetSkyBetS(); break; } ScoreNewOne = result.Split(':')[0].Trim(); ScoreNewTwo = result.Split(':')[1].Trim(); return(result); }
public Market(string marketName, Player player1, Player player2, string eventId, TypeDBO typeDbo) { MarketName = marketName; Player1 = player1; Player2 = player2; switch (typeDbo) { case TypeDBO.SkyBet: SkyBetEventId = eventId; break; case TypeDBO.Bet365: Bet365EventId = eventId; break; case TypeDBO.BetFair: BetfairEventId = eventId; break; } Player1.PlayerHanlder += Player1OnPlayerHanlder; Player2.PlayerHanlder += Player2OnPlayerHanlder; MarketChanged?.Invoke(new MarketUpdEventArgs(this)); }
private string CheckForNullScore(string score, Label labelToView, TypeDBO type) { switch (type) { case TypeDBO.BetFair: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on Betfair. It can be tried to update market."; } break; case TypeDBO.Bet365: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on Bet365. It can be tried to update market."; } break; case TypeDBO.SkyBet: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on SkyBet. It can be tried to update market."; } break; } return(score); }
public static StatusInternet CheckConnection(TypeDBO dboType) { try { var result = Check(dboType); return StatusInternet.Ok; } catch (WebException ex) { if (ex.Status == WebExceptionStatus.Timeout) { return StatusInternet.BigDelay; } else { return StatusInternet.NoAvirable; } } catch (Exception exception) { Debug.WriteLine("Connection problem with: " + dboType + " message" + exception.Message + " Data: " + exception.Data); return StatusInternet.NoAvirable; } }
public static StatusInternet CheckConnection(TypeDBO dboType) { try { var result = Check(dboType); return(StatusInternet.Ok); } catch (WebException ex) { if (ex.Status == WebExceptionStatus.Timeout) { return(StatusInternet.BigDelay); } else { return(StatusInternet.NoAvirable); } } catch (Exception exception) { Debug.WriteLine("Connection problem with: " + dboType + " message" + exception.Message + " Data: " + exception.Data); return(StatusInternet.NoAvirable); } }
/// <summary> /// Возобновляет работу потоков которые обрабатывают рынок с идфикатором указанном в id; /// </summary> /// <param name="eventIdType">Индификатор рынка который следует возобновить</param> public void UnMarketIngore(TypeDBO evntIDType) { switch (evntIDType) { case TypeDBO.None: break; case TypeDBO.BetFair: _threadsScores.Last().UnMarketIgnore(evntIDType); break; case TypeDBO.Bet365: _bet365.IsIgnoredMarket = false; //new version if (!string.IsNullOrEmpty(saveBet365Id)) { GetScoreMarket(saveBet365Id, TypeDBO.Bet365); } break; case TypeDBO.SkyBet: _skyBetNew.IsIgnoredMarket = false; if (!string.IsNullOrEmpty(saveSkyBetId)) { GetScoreMarket(saveSkyBetId, TypeDBO.SkyBet); } break; default: throw new ArgumentOutOfRangeException(nameof(evntIDType), evntIDType, null); } }
/// <summary> /// Метод получения счёта с рынка с индификатором. /// </summary> /// <param name="eventId">Id рынка</param> /// <param name="marketTypeDbo">Тип рынка</param> /// <returns>True - если успешно, else - иначе</returns> public bool GetScoreMarket(string eventId, TypeDBO marketTypeDbo) { switch (marketTypeDbo) { case TypeDBO.Bet365: { var bet365 = _bet365.SuscribeToScores(eventId); if (bet365 == MarketStatus.Closed) { return(false); } saveBet365Id = eventId; var currentScore = _bet365.GetCurrentScores(); var currentScore2 = _bet365.GetCurrentScores(); if ((currentScore2 == null) || (currentScore2.Count == 0)) { if ((currentScore != null) && (currentScore.Count != 0)) { ParsingInfo.Parse(currentScore); return(true); } } else { ParsingInfo.Parse(currentScore2); return(true); } return(false); } case TypeDBO.BetFair: { var betfairReturn = _betfair.GetScoreEvent(long.Parse(eventId)); if (betfairReturn.Count == 0) { return(false); } if (betfairReturn[0].matchStatus == null) { return(false); } ParsingInfo.Parse(betfairReturn); return(true); } case TypeDBO.SkyBet: { var newSkyBetReturn = _skyBetNew.GetScoreses(eventId); ParsingInfo.Parse(newSkyBetReturn); saveSkyBetId = eventId; return(true); } default: return(false); } }
public void UnMarketIgnore(TypeDBO marketTypeDbo) { switch (marketTypeDbo) { case TypeDBO.BetFair: threadBetfair.Resume(); break; } }
public void MarketIgnore(TypeDBO marketType) { switch (marketType) { case TypeDBO.BetFair: threadBetfair.Suspend(); break; default: throw new ArgumentOutOfRangeException(nameof(marketType), marketType, null); } }
private static bool Check(TypeDBO dboType) { var address = ""; var port = ""; switch (dboType) { case TypeDBO.Bet365: address = "https://mobile.bet365.com/"; port = "80"; break; case TypeDBO.BetFair: address = "https://www.betfair.com/inplayservice/v1.1/eventsInPlay?regionCode=UK&alt=json&locale=en_GB" + "&channel=WEB&maxResults=100&eventTypeIds=2"; port = "80"; break; case TypeDBO.SkyBet: address = "https://m.skybet.com/tennis"; port = "80"; break; } var request = (HttpWebRequest)WebRequest.Create(address); request.Timeout = 2000; request.UserAgent = Parse.USER_AGENT; var response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) { return(false); } var dataStream = response.GetResponseStream(); if (dataStream != null) { var reader = new StreamReader(dataStream); var responseFromServer = reader.ReadToEnd(); if (responseFromServer.Length < 100) { return(false); } } return(true); }
public Player(string name, string score, TypeDBO typeDbo) { Name = name; switch (typeDbo) { case TypeDBO.None: break; case TypeDBO.BetFair: _scoreBetfair = score; break; case TypeDBO.Bet365: _scoreBet365 = score; break; case TypeDBO.SkyBet: _scoreSkyBet = score; break; default: throw new ArgumentOutOfRangeException(nameof(typeDbo), typeDbo, null); } }
/// <summary> /// Получить все маркеты с рынков /// </summary> /// <param name="typeMarket">Тип маркета</param> /// <returns>True - если успешно, else - если неудача</returns> public bool GetAllMarkets(TypeDBO typeMarket) { switch (typeMarket) { case TypeDBO.Bet365: { var bet365All = _bet365.GetAlllMathes(); if (bet365All == null) { return(false); } ParsingInfo.Parse(bet365All); return(true); } case TypeDBO.BetFair: { var betfairAll = _betfair.GetInPlayAllMarkets(); if (betfairAll == null) { return(false); } ParsingInfo.Parse(betfairAll); return(true); } case TypeDBO.SkyBet: { var skyBetAll = _skyBetNew.GetAlllMathes(); if (skyBetAll == null) { return(false); } ParsingInfo.Parse(skyBetAll); return(true); } default: return(false); } }
private void GetAll(TypeDBO typeDbo) { while (true) { var good = GetAllMarkets(typeDbo); if (_countContect > 20) { Debug.WriteLine("No connetion to ex: " + typeDbo); _countContect = 0; break; } if (!good) { _countContect++; Thread.Sleep(200); continue; } _countContect = 0; break; } }
private static bool Check(TypeDBO dboType) { var address = ""; var port = ""; switch (dboType) { case TypeDBO.Bet365: address = "https://mobile.bet365.com/"; port = "80"; break; case TypeDBO.BetFair: address = "https://www.betfair.com/inplayservice/v1.1/eventsInPlay?regionCode=UK&alt=json&locale=en_GB" + "&channel=WEB&maxResults=100&eventTypeIds=2"; port = "80"; break; case TypeDBO.SkyBet: address = "https://m.skybet.com/tennis"; port = "80"; break; } var request = (HttpWebRequest) WebRequest.Create(address); request.Timeout = 2000; request.UserAgent = Parse.USER_AGENT; var response = (HttpWebResponse) request.GetResponse(); if (response.StatusCode != HttpStatusCode.OK) return false; var dataStream = response.GetResponseStream(); if (dataStream != null) { var reader = new StreamReader(dataStream); var responseFromServer = reader.ReadToEnd(); if (responseFromServer.Length < 100) return false; } return true; }
public GetScoreStruct(TypeDBO typeDbo, object eventId) { this.typeDbo = typeDbo; this.eventId = eventId; }
/// <summary> /// Получить все маркеты с рынков /// </summary> /// <param name="typeMarket">Тип маркета</param> /// <returns>True - если успешно, else - если неудача</returns> public bool GetAllMarkets(TypeDBO typeMarket) { switch (typeMarket) { case TypeDBO.Bet365: { var bet365All = _bet365.GetAlllMathes(); if (bet365All == null) return false; ParsingInfo.Parse(bet365All); return true; } case TypeDBO.BetFair: { var betfairAll = _betfair.GetInPlayAllMarkets(); if (betfairAll == null) return false; ParsingInfo.Parse(betfairAll); return true; } case TypeDBO.SkyBet: { var skyBetAll = _skyBetNew.GetAlllMathes(); if (skyBetAll == null) return false; ParsingInfo.Parse(skyBetAll); return true; } default: return false; } }
/// <summary> /// Метод получения счёта с рынка с индификатором. /// </summary> /// <param name="eventId">Id рынка</param> /// <param name="marketTypeDbo">Тип рынка</param> /// <returns>True - если успешно, else - иначе</returns> public bool GetScoreMarket(string eventId, TypeDBO marketTypeDbo) { switch (marketTypeDbo) { case TypeDBO.Bet365: { var bet365 = _bet365.SuscribeToScores(eventId); if (bet365 == MarketStatus.Closed) return false; saveBet365Id = eventId; var currentScore = _bet365.GetCurrentScores(); var currentScore2 = _bet365.GetCurrentScores(); if ((currentScore2 == null) || (currentScore2.Count == 0)) { if ((currentScore != null) && (currentScore.Count != 0)) { ParsingInfo.Parse(currentScore); return true; } } else { ParsingInfo.Parse(currentScore2); return true; } return false; } case TypeDBO.BetFair: { var betfairReturn = _betfair.GetScoreEvent(long.Parse(eventId)); if (betfairReturn.Count == 0) return false; if (betfairReturn[0].matchStatus == null) return false; ParsingInfo.Parse(betfairReturn); return true; } case TypeDBO.SkyBet: { var newSkyBetReturn = _skyBetNew.GetScoreses(eventId); ParsingInfo.Parse(newSkyBetReturn); saveSkyBetId = eventId; return true; } default: return false; } }
/// <summary> /// Приостанавливает потоки которые обрабатывают рынок с идфикатором указанном в id; /// </summary> /// <param name="eventIdType">Индификатор рынка который следует приостоновить</param> public void MarketIgnore(TypeDBO eventIdType) { switch (eventIdType) { case TypeDBO.None: _skyBetNew.IsIgnoredMarket = false; if (!string.IsNullOrEmpty(saveSkyBetId)) GetScoreMarket(saveSkyBetId, TypeDBO.SkyBet); _bet365.IsIgnoredMarket = false; //new version if (!string.IsNullOrEmpty(saveBet365Id)) GetScoreMarket(saveBet365Id, TypeDBO.Bet365); _threadsScores.Last().UnMarketIgnore(eventIdType); //old version break; case TypeDBO.BetFair: _threadsScores.Last().MarketIgnore(eventIdType); //old break; case TypeDBO.Bet365: _bet365.IsIgnoredMarket = true; //new version break; case TypeDBO.SkyBet: _skyBetNew.IsIgnoredMarket = true; break; default: throw new ArgumentOutOfRangeException(nameof(eventIdType), eventIdType, null); } // _threadsScores.Last().MarketIgnore(eventIdType); }
public MessagesEventArgs(TypeDBO typeDbo, string messagePlayerOne, string messagePlayerTwo) { this.typeDbo = typeDbo; this.messagePlayerOne = messagePlayerOne; this.messagePlayerTwo = messagePlayerTwo; }
public MessagesEventArgs(string message, TypeDBO typeDbo) { this.message = message; this.typeDbo = typeDbo; }
public PlayerScoreUpdEventArgs(string score, TypeDBO typeEx) { Score = score; TypeEx = typeEx; }
private string CheckForNullScore(string score, Label labelToView,TypeDBO type) { switch (type) { case TypeDBO.BetFair: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on Betfair. It can be tried to update market."; } break; case TypeDBO.Bet365: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on Bet365. It can be tried to update market."; } break; case TypeDBO.SkyBet: if (score.Equals(" : ")) { score = "No score"; labelToView.Text = "No game information on SkyBet. It can be tried to update market."; } break; } return score; }