示例#1
20
        public NewSkyBet(AllMarkets marktes)
        {
            var cef = Chrome.Instanse;
            isLoad = false;
            browser = Chrome.InstSkyBet;
            browser.ConsoleMessage += BrowserOnConsoleMessage;
            browser.LoadingStateChanged += BrowserOnLoadingStateChanged;
            browser.BrowserInitialized += BrowserOnBrowserInitialized; 
            allMarkets = marktes;

            State = ThreadState.Running;
            isIgnoredMarket = false;
        }
示例#2
0
        private void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs e)
        {
            if (isIgnoredMarket)
            {
                Debug.WriteLine("[IGNORED][SkyBet]Console: " + e.Message);
                return;
            }
            Debug.WriteLine("[SkyBet]Console: " + e.Message);
            if (e.Message.Contains("FINISHED"))
            {
                State = ThreadState.Stopped;
            }
            if (e.Message[0] == '1')
            {
                var tmp    = e.Message.Split('|');
                var main   = tmp[1];
                var scores = JsonConvert.DeserializeObject <List <Scores> >(main);

                var score1  = scores[1].score;
                var score2  = scores[2].score;
                var eventId = scores[0].eventId;
                if ((!string.IsNullOrWhiteSpace(prevScoreOne)) && (!string.IsNullOrWhiteSpace(prevScoreTwo)))
                {
                    if (!((score1 == "0") && (score2 == "0")))
                    {
                        if (((score1 == "0") && (score1 != prevScoreOne)) || ((score2 == "0") && (score2 != prevScoreTwo)))
                        {
                            return;
                        }
                    }
                }
                foreach (var currentMarket in allMarkets.ParsingInfo.AllMarketsHashSet)
                {
                    if ((!string.IsNullOrWhiteSpace(currentMarket.SkyBetEventId)) && (currentMarket.SkyBetEventId.Equals(eventId)))
                    {
                        prevScoreOne = score1;
                        prevScoreTwo = score2;
                        currentMarket.Player1.ScoreSkyBet = score1;
                        currentMarket.Player2.ScoreSkyBet = score2;
                        PlayerChanged?.Invoke(new ScoreUpdEventArgs(currentMarket));
                        break;
                    }
                }
            }
            if (e.Message[0] == '2')
            {
                var str  = e.Message.Split('|');
                var elem = str[1];
                MessageChanged?.Invoke(new MessagesEventArgs(elem, TypeDBO.SkyBet));
            }
        }
示例#3
0
        public NewSkyBet(AllMarkets marktes)
        {
            var cef = Chrome.Instanse;

            isLoad  = false;
            browser = Chrome.InstSkyBet;
            browser.ConsoleMessage      += BrowserOnConsoleMessage;
            browser.LoadingStateChanged += BrowserOnLoadingStateChanged;
            browser.BrowserInitialized  += BrowserOnBrowserInitialized;
            allMarkets = marktes;

            State           = ThreadState.Running;
            isIgnoredMarket = false;
        }
示例#4
0
        private void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs e)
        {
            if (isIgnoredMarket)
            {
                Debug.WriteLine("[IGNORED][SkyBet]Console: " + e.Message);
                return;
            }
            Debug.WriteLine("[SkyBet]Console: " + e.Message);
            if (e.Message.Contains("FINISHED"))
            {
                State = ThreadState.Stopped;
            }
            if (e.Message[0] == '1')
            {
                var tmp = e.Message.Split('|');
                var main = tmp[1];
                var scores = JsonConvert.DeserializeObject<List<Scores>>(main);

                var score1 = scores[1].score;
                var score2 = scores[2].score;
                var eventId = scores[0].eventId;
                if ((!string.IsNullOrWhiteSpace(prevScoreOne)) && (!string.IsNullOrWhiteSpace(prevScoreTwo)))
                {
                    if (!((score1 == "0") && (score2 == "0")))
                        if (((score1 == "0") && (score1 != prevScoreOne)) || ((score2 == "0") && (score2 != prevScoreTwo)))
                            return;
                }
                foreach (var currentMarket in allMarkets.ParsingInfo.AllMarketsHashSet)
                {
                    if ((!string.IsNullOrWhiteSpace(currentMarket.SkyBetEventId)) && (currentMarket.SkyBetEventId.Equals(eventId)))
                    {
                        prevScoreOne = score1;
                        prevScoreTwo = score2;
                        currentMarket.Player1.ScoreSkyBet = score1;
                        currentMarket.Player2.ScoreSkyBet = score2;
                        PlayerChanged?.Invoke(new ScoreUpdEventArgs(currentMarket));
                        break;
                    }
                }
            }
            if (e.Message[0] == '2')
            {
                var str = e.Message.Split('|');
                var elem = str[1];
                MessageChanged?.Invoke(new MessagesEventArgs(elem,TypeDBO.SkyBet));
            }
        }
示例#5
0
        public List <Scores> GetScoreses(string eventId)
        {
            if (string.IsNullOrWhiteSpace(eventId))
            {
                State = ThreadState.Unstarted;
                return(default(List <Scores>));
            }
            State = ThreadState.Running;
            var scores = new List <Scores>();

            isLoad = false;
            LoadPageSkyBet(scoreUrl + eventId);
            var score = getScore();

            if (score.Result.ToString().Contains("null"))
            {
                score = getScore();
            }
            scores = JsonConvert.DeserializeObject <List <Scores> >(score.Result.ToString());
            isLoad = true;
            return(scores);
        }
示例#6
0
        public MarketStatus SuscribeToScores(string comp)
        {
            prevComp = comp;
            var mathes = GetAlllMathes();
            var mathesMarket = new Mathes();
            var players = comp.Split('|');

            mathesMarket.player1Name = players[0];
            mathesMarket.player2Name = players[1];

            var index = -1;
            if (mathes == null)
            {
                State = ThreadState.Stopped;
                return MarketStatus.Closed;
            }
            foreach (var mathese in mathes)
            {
                if ((mathesMarket.player2Name.Equals(mathese.player2Name)) && (mathesMarket.player1Name.Equals(mathese.player1Name)))
                {
                    index = mathese.indexToClick;
                    break;
                }
            }
            var clickTennis = browser.EvaluateScriptAsync("clickToTennis()");
            if (index == -1)
            {
                State = ThreadState.Stopped;
                return MarketStatus.Closed;
            }
            CheckLoaded();
            var result = ClickToMarket(index);
            Thread.Sleep(100);
            if (result != true)
            {
                State = ThreadState.Stopped;
                return MarketStatus.Closed;
            }
            var suscribe = browser.EvaluateScriptAsync("suscribeEventsScores()");
            if (suscribe.Result.Result != null)
            {
                while (true)
                {
                    var loadJs = browser.EvaluateScriptAsync(Properties.Resources.jsAllLoad).Result;
                    var clickTennis1 = browser.EvaluateScriptAsync("clickToTennis()").Result;
                    CheckLoaded();
                    var result1 = ClickToMarket(index);
                    Thread.Sleep(100);
                    var res = browser.EvaluateScriptAsync("suscribeEventsScores()").Result;
                    if (res.Result == null)
                        break;
                }
            }
            return MarketStatus.Open;
        }
示例#7
0
 public List<Scores> GetScoreses(string eventId)
 {
     if (string.IsNullOrWhiteSpace(eventId))
     {
         State = ThreadState.Unstarted;
         return default(List<Scores>);
     }
     State = ThreadState.Running;
     var scores = new List<Scores>();
     isLoad = false;
     LoadPageSkyBet(scoreUrl + eventId);
     var score = getScore();
     if (score.Result.ToString().Contains("null"))
     {
         score = getScore();
     }
     scores = JsonConvert.DeserializeObject<List<Scores>>(score.Result.ToString());
     isLoad = true;
     return scores;
 }
示例#8
0
        public MarketStatus SuscribeToScores(string comp)
        {
            prevComp = comp;
            var mathes       = GetAlllMathes();
            var mathesMarket = new Mathes();
            var players      = comp.Split('|');

            mathesMarket.player1Name = players[0];
            mathesMarket.player2Name = players[1];

            var index = -1;

            if (mathes == null)
            {
                State = ThreadState.Stopped;
                return(MarketStatus.Closed);
            }
            foreach (var mathese in mathes)
            {
                if ((mathesMarket.player2Name.Equals(mathese.player2Name)) && (mathesMarket.player1Name.Equals(mathese.player1Name)))
                {
                    index = mathese.indexToClick;
                    break;
                }
            }
            var clickTennis = browser.EvaluateScriptAsync("clickToTennis()");

            if (index == -1)
            {
                State = ThreadState.Stopped;
                return(MarketStatus.Closed);
            }
            CheckLoaded();
            var result = ClickToMarket(index);

            Thread.Sleep(100);
            if (result != true)
            {
                State = ThreadState.Stopped;
                return(MarketStatus.Closed);
            }
            var suscribe = browser.EvaluateScriptAsync("suscribeEventsScores()");

            if (suscribe.Result.Result != null)
            {
                while (true)
                {
                    var loadJs       = browser.EvaluateScriptAsync(Properties.Resources.jsAllLoad).Result;
                    var clickTennis1 = browser.EvaluateScriptAsync("clickToTennis()").Result;
                    CheckLoaded();
                    var result1 = ClickToMarket(index);
                    Thread.Sleep(100);
                    var res = browser.EvaluateScriptAsync("suscribeEventsScores()").Result;
                    if (res.Result == null)
                    {
                        break;
                    }
                }
            }
            return(MarketStatus.Open);
        }