Beispiel #1
0
        private void Authenticate()
        {
            //get a session
            AppKeyAndSession appKeyAndSession = _sessionProvider.GetOrCreateNewSession();

            try
            {
                WaitFor(_processor.Authenticate(new AuthenticationMessage()
                {
                    AppKey  = appKeyAndSession.AppKey,
                    Session = appKeyAndSession.Session
                }));
            }
            catch (StatusException statusException)
            {
                //force expire if session is invalid
                if (statusException.ErrorCode == StatusMessage.ErrorCodeEnum.InvalidSessionInformation)
                {
                    _sessionProvider.ExpireTokenNow();
                }
                else
                {
                    throw statusException;
                }
            }
        }
Beispiel #2
0
        private static void InitialSetup()
        {
            //betfair connection
            var provider = new AppKeyAndSessionProvider(ConfigurationManager.AppSettings["ssoHost"], ConfigurationManager.AppSettings["appKey"],
                                                        ConfigurationManager.AppSettings["userName"], ConfigurationManager.AppSettings["password"]);
            var session = provider.GetOrCreateNewSession();

            Client = new JsonRpcClient(_url, session.AppKey, session.Session);

            //Betfair Hub
            var url = string.Format(ConfigurationManager.AppSettings["ratingsFile"], DateTime.Today);

            using (var client = new WebClient())
            {
                var ratings = client.DownloadString(url);
                System.IO.File.WriteAllText($"ratings-{DateTime.Now:yyyyMMddHHmm}.json", ratings);
                Ratings = JsonConvert.DeserializeObject <Ratings>(ratings);
            }

            LoadMarkets();
            var startTimeSpan  = TimeSpan.FromMinutes(2);
            var periodTimeSpan = TimeSpan.FromMinutes(2);
            var timer          = new System.Threading.Timer((e) =>
            {
                LoadMarkets();
            }, null, startTimeSpan, periodTimeSpan);
        }