示例#1
0
        public static bool EstablishConnection(GameDataObject gameDataObject)
        {
            try
            {
                while (true)
                {
                    Process[] pname = Process.GetProcessesByName("SteelSeriesEngine3");
                    if (pname.Length > 0)
                    {
                        break;
                    }
                    //Wait 30 seconds before trying again.
                    System.Threading.Thread.Sleep(10000);
                }
                ConnectToMouseServer();
                DayActiveController.DisplayWelcomeScreenAsync(gameDataObject);
                return(true);
            }
            catch (Exception ex)
            {
                string currentMethodName = ErrorHandling.GetCurrentMethodName();
                ErrorHandling.LogErrorToTxtFile(ex, currentMethodName);
                EstablishConnection(gameDataObject);
            }

            return(false);
        }
示例#2
0
        public static async void DisplayWelcomeScreenAsync(GameDataObject gameDataObject)
        {
            try
            {
                await Connector.BindWelcomeEventAsync(gameDataObject.WelcomeEventHandler);

                HttpResponseMessage response = await Connector.Client.PostAsJsonAsync(
                    "game_event", gameDataObject.WelcomeDataPayLoad);
            }
            catch (Exception ex)
            {
                string currentMethodName = ErrorHandling.GetCurrentMethodName();
                ErrorHandling.LogErrorToTxtFile(ex, currentMethodName);
                if (Connector.EstablishConnection(gameDataObject))
                {
                    DisplayWelcomeScreenAsync(gameDataObject);
                }
            }
        }
示例#3
0
 public static void StartMonitoringTimer(GameDataObject gameDataObject)
 {
     try
     {
         _timer = new System.Threading.Timer(
             _ =>
         {
             CalculateTimeLeft();
         },
             null,
             TimeSpan.FromSeconds(8),
             TimeSpan.FromSeconds(60)
             );
     }
     catch (Exception ex)
     {
         string currentMethodName = ErrorHandling.GetCurrentMethodName();
         ErrorHandling.LogErrorToTxtFile(ex, currentMethodName);
     }
 }
示例#4
0
        public static async void BindGameEvent(GameDataObject gameDataObject)
        {
            try
            {
                HttpResponseMessage response = await Connector.Client.PostAsJsonAsync(
                    "bind_game_event", gameDataObject.GameEventHandler);

                response.EnsureSuccessStatusCode();
            }

            catch (Exception ex)
            {
                string currentMethodName = ErrorHandling.GetCurrentMethodName();
                ErrorHandling.LogErrorToTxtFile(ex, currentMethodName);
                if (Connector.EstablishConnection(gameDataObject))
                {
                    BindGameEvent(gameDataObject);
                }
            }
        }
示例#5
0
        public static async void RegisterGameMetaData(GameDataObject gameDataObject)
        {
            try
            {
                GameDataObject = gameDataObject;
                HttpResponseMessage response = await Connector.Client.PostAsJsonAsync(
                    "game_metadata", gameDataObject.GameMetaData);

                response.EnsureSuccessStatusCode();
            }
            catch (Exception ex)
            {
                string currentMethodName = ErrorHandling.GetCurrentMethodName();
                ErrorHandling.LogErrorToTxtFile(ex, currentMethodName);
                if (Connector.EstablishConnection(gameDataObject))
                {
                    RegisterGameMetaData(gameDataObject);
                }
            }
        }