Example #1
0
        private static void SetupTelegramConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(
                    translator,
                    translator.GetTranslation(TranslationString.FirstStartSetupTelegramPrompt, "Y", "N")
                    )
                )
            {
                return;
            }

            settings.TelegramConfig.UseTelegramAPI = true;

            string strInput = PromptForString(
                translator,
                translator.GetTranslation(TranslationString.FirstStartSetupTelegramCodePrompt)
                );

            settings.TelegramConfig.TelegramAPIKey = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramCodeConfirm, strInput));

            strInput = PromptForString(
                translator,
                translator.GetTranslation(TranslationString.FirstStartSetupTelegramPasswordPrompt)
                );
            settings.TelegramConfig.TelegramPassword = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramPasswordConfirm, strInput));
        }
Example #2
0
        private static void SetupAccountType(ITranslation translator, GlobalSettings settings)
        {
            string strInput;

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAccount), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypePrompt, "google", "ptc"));

            while (true)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "google":
                    settings.Auth.AuthConfig.AuthType = AuthType.Google;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, "GOOGLE"));
                    return;

                case "ptc":
                    settings.Auth.AuthConfig.AuthType = AuthType.Ptc;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, "PTC"));
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypePromptError, "google", "ptc"), LogLevel.Error);
                    break;
                }
            }
        }
Example #3
0
        private static void SetupAccountType(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAccount), LogLevel.Info);

            string accountType = PromptForString(
                translator,
                translator.GetTranslation(TranslationString.FirstStartSetupTypePrompt, "google", "ptc"),
                new string[] { "google", "ptc" },
                translator.GetTranslation(TranslationString.FirstStartSetupTypePromptError, "google", "ptc"),
                false
                );

            switch (accountType)
            {
            case "google":
                settings.Auth.AuthConfig.AuthType = AuthType.Google;
                break;

            case "ptc":
                settings.Auth.AuthConfig.AuthType = AuthType.Ptc;
                break;
            }

            Logger.Write(
                translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, accountType.ToUpper()
                                          )
                );
        }
Example #4
0
        private static void SetupWebSocketConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            settings.WebsocketsConfig.UseWebsocket = true;

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPortPrompt));
            strInput = Console.ReadLine();
            settings.WebsocketsConfig.WebSocketPort = int.Parse(strInput);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPortConfirm, strInput));
        }
Example #5
0
        private static void SetupProxyConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyPrompt, "Y", "N")))
            {
                return;
            }

            settings.Auth.ProxyConfig.UseProxy = true;

            string strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyHostPrompt));

            settings.Auth.ProxyConfig.UseProxyHost = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupProxyHostConfirm, strInput));

            strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyPortPrompt));
            settings.Auth.ProxyConfig.UseProxyPort = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupProxyPortConfirm, strInput));

            if (false == PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyAuthPrompt, "Y", "N")))
            {
                return;
            }

            settings.Auth.ProxyConfig.UseProxyAuthentication = true;

            strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyUsernamePrompt));
            settings.Auth.ProxyConfig.UseProxyUsername = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupProxyUsernameConfirm, strInput));

            strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupProxyPasswordPrompt));
            settings.Auth.ProxyConfig.UseProxyPassword = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupProxyPasswordConfirm, strInput));
        }
Example #6
0
        private static void SetupAutoCompleteTutConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutPrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            settings.PlayerConfig.AutoCompleteTutorial = true;

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutNicknamePrompt));
            strInput = Console.ReadLine();
            settings.PlayerConfig.DesiredNickname = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutNicknameConfirm, strInput));
        }
Example #7
0
        private static void SetupUserAccount(ITranslation translator, GlobalSettings settings)
        {
            Console.WriteLine("");
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUsernamePrompt), LogLevel.None);
            string strInput = Console.ReadLine();

            if (settings.Auth.AuthConfig.AuthType == AuthType.Google)
            {
                settings.Auth.AuthConfig.GoogleUsername = strInput;
            }
            else
            {
                settings.Auth.AuthConfig.PtcUsername = strInput;
            }
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUsernameConfirm, strInput));

            Console.WriteLine("");
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupPasswordPrompt), LogLevel.None);
            strInput = Console.ReadLine();

            if (settings.Auth.AuthConfig.AuthType == AuthType.Google)
            {
                settings.Auth.AuthConfig.GooglePassword = strInput;
            }
            else
            {
                settings.Auth.AuthConfig.PtcPassword = strInput;
            }
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupPasswordConfirm, strInput));

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartAccountCompleted), LogLevel.None);
        }
Example #8
0
        private static Session SetupTranslationCode(Session session, IElevationService elevationService,
                                                    ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(
                    translator,
                    translator.GetTranslation(TranslationString.FirstStartLanguagePrompt, "Y", "N")
                    )
                )
            {
                return(session);
            }

            string strInput = PromptForString(
                translator,
                translator.GetTranslation(TranslationString.FirstStartLanguageCodePrompt)
                );

            settings.ConsoleConfig.TranslationLanguageCode = strInput;
            session = new Session(
                new ClientSettings(settings, elevationService),
                new LogicSettings(settings),
                elevationService
                );
            translator = session.Translation;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageConfirm, strInput));

            return(session);
        }
Example #9
0
        public void CheckProxy(ITranslation translator)
        {
            using (var tempWebClient = new NecroWebClient())
            {
                var unproxiedIp = WebClientExtensions.DownloadString(tempWebClient,
                                                                     new Uri("https://api.ipify.org/?format=text"));
                if (ProxyConfig.UseProxy)
                {
                    tempWebClient.Proxy = InitProxy();
                    var proxiedIPres = WebClientExtensions.DownloadString(tempWebClient,
                                                                          new Uri("https://api.ipify.org/?format=text"));
                    var proxiedIp = proxiedIPres == null ? "INVALID PROXY" : proxiedIPres;
                    Logger.Write(translator.GetTranslation(TranslationString.Proxied, unproxiedIp, proxiedIp),
                                 LogLevel.Info, unproxiedIp == proxiedIp ? ConsoleColor.Red : ConsoleColor.Green);

                    if (unproxiedIp != proxiedIp && proxiedIPres != null)
                    {
                        return;
                    }

                    Logger.Write(translator.GetTranslation(TranslationString.FixProxySettings), LogLevel.Info,
                                 ConsoleColor.Red);
                    Console.ReadKey();
                    Environment.Exit(0);
                }
                else
                {
                    Logger.Write(translator.GetTranslation(TranslationString.Unproxied, unproxiedIp), LogLevel.Info,
                                 ConsoleColor.Red);
                }
            }
        }
Example #10
0
        public static bool PromptForSetup(ITranslation translator)
        {
            bool promptForSetup = PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartPrompt, "Y", "N"));

            if (!promptForSetup)
            {
                Logger.Write(translator.GetTranslation(TranslationString.FirstStartAutoGenSettings));
            }

            return(promptForSetup);
        }
Example #11
0
        private static void SetupWebSocketConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPrompt, "Y", "N")))
            {
                return;
            }

            settings.WebsocketsConfig.UseWebsocket = true;

            settings.WebsocketsConfig.WebSocketPort = PromptForInteger(translator, translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPortPrompt));
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWebSocketPortConfirm, settings.WebsocketsConfig.WebSocketPort.ToString()));
        }
        private static void SetupConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"), LogLevel.None);

            bool boolBreak = false;

            while (!boolBreak)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationSet));
                    return;

                default:
                    // PROMPT ERROR \\
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocation), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatLongPrompt));
            while (true)
            {
                try
                {
                    string   strInput = Console.ReadLine();
                    string[] strSplit = strInput.Split(',');

                    if (strSplit.Length > 1)
                    {
                        double dblLat  = double.Parse(strSplit[0].Trim(' '));
                        double dblLong = double.Parse(strSplit[1].Trim(' '));

                        settings.LocationConfig.DefaultLatitude  = dblLat;
                        settings.LocationConfig.DefaultLongitude = dblLong;

                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatLongConfirm, $"{dblLat}, {dblLong}"));
                    }
                    else
                    {
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, $"{settings.LocationConfig.DefaultLatitude}, {settings.LocationConfig.DefaultLongitude}", LogLevel.Error));
                        continue;
                    }

                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, $"{settings.LocationConfig.DefaultLatitude}, {settings.LocationConfig.DefaultLongitude}", LogLevel.Error));
                }
            }
        }
Example #13
0
        private static void SetupWalkingConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedPrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedKmHPrompt));
            strInput = Console.ReadLine();
            settings.LocationConfig.WalkingSpeedInKilometerPerHour = Double.Parse(strInput);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedKmHConfirm, strInput));
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUseWalkingSpeedVariantPrompt, "Y", "N"), LogLevel.None);

            boolBreak = false;
            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    settings.LocationConfig.UseWalkingSpeedVariant = true;
                    break;

                case "n":
                    settings.LocationConfig.UseWalkingSpeedVariant = false;
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedVariantPrompt));
            strInput = Console.ReadLine();
            settings.LocationConfig.WalkingSpeedVariant = Double.Parse(strInput);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedVariantConfirm, strInput));
        }
Example #14
0
        private static Session SetupTranslationCode(Session session, ITranslation translator, GlobalSettings globalSettings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguagePrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine();

                if (string.IsNullOrWhiteSpace(strInput))
                {
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }

                switch (strInput.ToLowerInvariant())
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return(session);

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageCodePrompt));
            strInput = Console.ReadLine();

            globalSettings.ConsoleConfig.TranslationLanguageCode = strInput;

            // create new session
            ClientSettings clientSettings = new ClientSettings(globalSettings);
            LogicSettings  logicSettings  = new LogicSettings(globalSettings);
            Translation    translation    = Translation.Load(logicSettings);

            session = new Session(clientSettings, logicSettings, translation);

            translator = session.Translation; // TODO: I've never seen this before. Ommit?
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageConfirm, strInput));

            return(session);
        }
Example #15
0
        private static void SetupWalkingConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedPrompt, "Y", "N")))
            {
                return;
            }

            settings.LocationConfig.WalkingSpeedInKilometerPerHour = PromptForDouble(translator, translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedKmHPrompt));
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedKmHConfirm, settings.LocationConfig.WalkingSpeedInKilometerPerHour.ToString()));

            settings.LocationConfig.UseWalkingSpeedVariant = PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupUseWalkingSpeedVariantPrompt, "Y", "N"));

            settings.LocationConfig.WalkingSpeedVariant = PromptForDouble(translator, translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedVariantPrompt));
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupWalkingSpeedVariantConfirm, settings.LocationConfig.WalkingSpeedVariant.ToString()));
        }
Example #16
0
        public WebSocketInterface(int port, ITranslation translations)
        {
            _server = new WebSocketServer();
            var setupComplete = _server.Setup(new ServerConfig
            {
                Name        = "NecroWebSocket",
                Ip          = "Any",
                Port        = port,
                Mode        = SocketMode.Tcp,
                Security    = "tls",
                Certificate = new CertificateConfig
                {
                    FilePath = @"cert.pfx",
                    Password = "******"
                }
            });

            if (setupComplete == false)
            {
                Logger.Write(translations.GetTranslation(TranslationString.WebSocketFailStart, port), LogLevel.Error);
                return;
            }

            _server.NewMessageReceived  += HandleMessage;
            _server.NewSessionConnected += HandleSession;

            _server.Start();
        }
Example #17
0
        public WebSocketInterface(int port, ITranslation translations)
        {
            _server = new WebSocketServer();
            var setupComplete = _server.Setup(new ServerConfig
            {
                Name = "NecroWebSocket",
                Ip = "Any",
                Port = port,
                Mode = SocketMode.Tcp,
                Security = "tls",
                Certificate = new CertificateConfig
                {
                    FilePath = @"cert.pfx",
                    Password = "******"
                }
            });

            if (setupComplete == false)
            {
                Logger.Write(translations.GetTranslation(TranslationString.WebSocketFailStart, port), LogLevel.Error);
                return;
            }

            _server.NewMessageReceived += HandleMessage;
            _server.NewSessionConnected += HandleSession;

            _server.Start();
        }
 public static void CheckGoogleAPI(ITranslation translator, GlobalSettings settings)
 {
     if (settings.GoogleWalkConfig.UseGoogleWalk && !settings.GPXSettings.UseGpxPathing)
     {
         Logger.Write(translator.GetTranslation(TranslationString.GoogleAPIFailed), LogLevel.Info, ConsoleColor.Red);
     }
 }
Example #19
0
        public static bool PromptForBoolean(ITranslation translator, string initialPrompt, string errorPrompt = null)
        {
            while (true)
            {
                Logger.Write(initialPrompt, LogLevel.Info);
                var strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    return(true);

                case "n":
                    return(false);

                default:
                    if (string.IsNullOrEmpty(errorPrompt))
                    {
                        errorPrompt = translator.GetTranslation(TranslationString.PromptError, "y", "n");
                    }

                    Logger.Write(errorPrompt, LogLevel.Error);
                    continue;
                }
            }
        }
Example #20
0
        private static void SetupAutoCompleteTutConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(translator, translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutPrompt, "Y", "N")))
            {
                return;
            }

            settings.PlayerConfig.AutoCompleteTutorial = true;

            string strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutNicknamePrompt));

            settings.PlayerConfig.DesiredNickname = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutNicknameConfirm,
                                                   strInput));

            strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutGenderPrompt));
            settings.PlayerConfig.DesiredGender = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutGenderConfirm,
                                                   strInput));

            strInput = PromptForString(translator, translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutStarterPrompt));
            settings.PlayerConfig.DesiredStarter = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAutoCompleteTutStarterConfirm,
                                                   strInput));
        }
Example #21
0
        public void CheckProxy(ITranslation translator)
        {
            string unproxiedIp;

            using (HttpClient client = new HttpClient())
            {
                var responseContent = client.GetAsync("https://api.ipify.org/?format=text").Result;
                unproxiedIp = responseContent.Content.ReadAsStringAsync().Result;
            }

            if (ProxyConfig.UseProxy)
            {
                var httpClientHandler = new HttpClientHandler
                {
                    Proxy    = InitProxy(),
                    UseProxy = true
                };

                using (HttpClient client = new HttpClient(httpClientHandler))
                {
                    var responseContent = client.GetAsync("https://api.ipify.org/?format=text").Result;
                    var proxiedIPres    = responseContent.Content.ReadAsStringAsync().Result;

                    var proxiedIp = proxiedIPres == null ? "INVALID PROXY" : proxiedIPres;
                    Logger.Write(translator.GetTranslation(TranslationString.Proxied, unproxiedIp, proxiedIp),
                                 LogLevel.Info, unproxiedIp == proxiedIp ? ConsoleColor.Red : ConsoleColor.Green);

                    if (unproxiedIp != proxiedIp && proxiedIPres != null)
                    {
                        return;
                    }

                    Logger.Write(translator.GetTranslation(TranslationString.FixProxySettings), LogLevel.Info,
                                 ConsoleColor.Red);
                    Console.ReadKey();
                    Environment.Exit(0);
                }
            }
            else
            {
                Logger.Write(translator.GetTranslation(TranslationString.Unproxied, unproxiedIp), LogLevel.Info,
                             ConsoleColor.Red);
            }
        }
Example #22
0
        public static bool PromptForSetup(ITranslation translator)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartPrompt, "Y", "N"), LogLevel.Warning);

            while (true)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    return(true);

                case "n":
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartAutoGenSettings));
                    return(false);

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "Y", "N"), LogLevel.Error);
                    continue;
                }
            }
        }
Example #23
0
        private static void SetupConfig(ITranslation translator, GlobalSettings settings)
        {
            if (false == PromptForBoolean(
                    translator,
                    translator.GetTranslation(
                        TranslationString.FirstStartDefaultLocationPrompt, "Y", "N")
                    )
                )
            {
                Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationSet));
                return;
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocation), LogLevel.Info);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatLongPrompt));
            while (true)
            {
                try
                {
                    var strInput = Console.ReadLine();
                    var strSplit = strInput.Split(',');

                    if (strSplit.Length > 1)
                    {
                        var dblLat  = double.Parse(strSplit[0].Trim(' '));
                        var dblLong = double.Parse(strSplit[1].Trim(' '));

                        settings.LocationConfig.DefaultLatitude  = dblLat;
                        settings.LocationConfig.DefaultLongitude = dblLong;

                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatLongConfirm,
                                                               $"{dblLat}, {dblLong}"));
                    }
                    else
                    {
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError,
                                                               $"{settings.LocationConfig.DefaultLatitude}, {settings.LocationConfig.DefaultLongitude}",
                                                               LogLevel.Error));
                        continue;
                    }

                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError,
                                                           $"{settings.LocationConfig.DefaultLatitude}, {settings.LocationConfig.DefaultLongitude}",
                                                           LogLevel.Error));
                }
            }
        }
Example #24
0
        public void checkProxy(ITranslation translator)
        {
            using (var tempWebClient = new NecroWebClient())
            {
                string unproxiedIP = tempWebClient.DownloadString(new Uri("https://api.ipify.org/?format=text"));
                if (ProxyConfig.UseProxy)
                {
                    string proxiedIPres = tempWebClient.DownloadString(new Uri("https://api.ipify.org/?format=text"));
                    string proxiedIP    = proxiedIPres == null?"INVALID PROXY": proxiedIPres;
                    Logger.Write(translator.GetTranslation(TranslationString.Proxied, unproxiedIP, proxiedIP), LogLevel.Info, (unproxiedIP == proxiedIP) ? ConsoleColor.Red : ConsoleColor.Green);

                    if (unproxiedIP == proxiedIP || proxiedIPres == null)
                    {
                        Logger.Write(translator.GetTranslation(TranslationString.FixProxySettings), LogLevel.Info, ConsoleColor.Red);
                        Console.ReadKey();
                        Environment.Exit(0);
                    }
                }
                else
                {
                    Logger.Write(translator.GetTranslation(TranslationString.Unproxied, unproxiedIP), LogLevel.Info, ConsoleColor.Red);
                }
            }
        }
Example #25
0
        private static Session SetupTranslationCode(Session session, ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguagePrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return(session);

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageCodePrompt));
            strInput = Console.ReadLine();

            settings.ConsoleConfig.TranslationLanguageCode = strInput;
            session    = new Session(new ClientSettings(settings), new LogicSettings(settings));
            translator = session.Translation;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageConfirm, strInput));

            return(session);
        }
Example #26
0
        public WebSocketInterface(string ipAddress, int port, Session session)
        {
            _session          = session;
            _server           = new WebSocketServer();
            _websocketHandler = WebSocketEventManager.CreateInstance();

            // Add custom seriaizer to convert ulong to string (ulong shoud not appear to json according to json specs)
            _jsonSerializerSettings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };
            _jsonSerializerSettings.Converters.Add(new LongToStringJsonConverter());

            ITranslation translations = session.Translation;

            ServerConfig config = new ServerConfig
            {
                Name        = "NecroWebSocket",
                Mode        = SocketMode.Tcp,
                Certificate = new CertificateConfig {
                    FilePath = @"cert.pfx", Password = "******"
                },
                Listeners =
                    new List <ListenerConfig>
                {
                    new ListenerConfig {
                        Ip = ipAddress, Port = port, Security = "tls"
                    },
                    new ListenerConfig {
                        Ip = ipAddress, Port = port + 1, Security = "none"
                    }
                },
            };

            bool setupComplete = _server.Setup(config);

            if (setupComplete == false)
            {
                Logger.Write(translations.GetTranslation(TranslationString.WebSocketFailStart, port), LogLevel.Error);
                return;
            }

            _server.NewMessageReceived  += HandleMessage;
            _server.NewSessionConnected += HandleSession;

            _server.Start();
        }
Example #27
0
        public static string PromptForString(ITranslation translator, string initialPrompt,
                                             string[] validStrings = null, string errorPrompt = null, bool caseSensitive = true)
        {
            while (true)
            {
                Logger.Write(initialPrompt, LogLevel.Info);
                // For now this just reads from the console, but in the future, we may change this to read from the GUI.
                string strInput = Console.ReadLine();

                if (!caseSensitive)
                {
                    strInput = strInput.ToLower();
                }

                // If no valid strings to validate, then return immediately.
                if (validStrings == null)
                {
                    return(strInput);
                }

                // Validate string
                foreach (string validString in validStrings)
                {
                    if (String.Equals(strInput, validString, caseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase))
                    {
                        return(strInput);
                    }
                }

                // If we got here, no valid strings.
                if (string.IsNullOrEmpty(errorPrompt))
                {
                    errorPrompt = translator.GetTranslation(
                        TranslationString.PromptErrorString,
                        string.Join(",", validStrings)
                        );
                }
                Logger.Write(errorPrompt, LogLevel.Error);
            }
        }
Example #28
0
        private static double PromptForDouble(ITranslation translator, string initialPrompt, string errorPrompt = null)
        {
            Logger.Write(initialPrompt, LogLevel.None);
            while (true)
            {
                var strInput = Console.ReadLine();

                double doubleVal;
                if (double.TryParse(strInput, out doubleVal))
                {
                    return(doubleVal);
                }
                else
                {
                    if (string.IsNullOrEmpty(errorPrompt))
                    {
                        errorPrompt = translator.GetTranslation(TranslationString.PromptErrorDouble);
                    }

                    Logger.Write(errorPrompt, LogLevel.Error);
                }
            }
        }
Example #29
0
        public static int PromptForInteger(ITranslation translator, string initialPrompt, string errorPrompt = null)
        {
            while (true)
            {
                Logger.Write(initialPrompt, LogLevel.Info);
                var strInput = Console.ReadLine();

                int intVal;
                if (int.TryParse(strInput, out intVal))
                {
                    return(intVal);
                }
                else
                {
                    if (string.IsNullOrEmpty(errorPrompt))
                    {
                        errorPrompt = translator.GetTranslation(TranslationString.PromptErrorInteger);
                    }

                    Logger.Write(errorPrompt, LogLevel.Error);
                }
            }
        }
Example #30
0
        private static void SetupTelegramConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramPrompt, "Y", "N"),
                         LogLevel.None);
            string strInput;

            var boolBreak = false;

            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    return;

                default:
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            settings.TelegramConfig.UseTelegramAPI = true;

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramCodePrompt));
            strInput = Console.ReadLine();
            settings.TelegramConfig.TelegramAPIKey = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramCodeConfirm, strInput));

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramPasswordPrompt));
            strInput = Console.ReadLine();
            settings.TelegramConfig.TelegramPassword = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTelegramPasswordConfirm, strInput));
        }
Example #31
0
        public void checkProxy(ITranslation translator)
        {
            using (var tempWebClient = new NecroWebClient())
            {
                string unproxiedIP = WebClientExtensions.DownloadString(tempWebClient, new Uri("https://api.ipify.org/?format=text"));
                if (UseProxy)
                {
                    tempWebClient.Proxy = this.InitProxy();
                    string proxiedIPres = WebClientExtensions.DownloadString(tempWebClient, new Uri("https://api.ipify.org/?format=text"));
                    string proxiedIP = proxiedIPres == null?"INVALID PROXY": proxiedIPres;
                    Logger.Write(translator.GetTranslation(TranslationString.Proxied, unproxiedIP, proxiedIP), LogLevel.Info, (unproxiedIP == proxiedIP) ? ConsoleColor.Red : ConsoleColor.Green);

                    if (unproxiedIP == proxiedIP || proxiedIPres == null)
                    {
                        Logger.Write(translator.GetTranslation(TranslationString.FixProxySettings), LogLevel.Info, ConsoleColor.Red);
                        Console.ReadKey();
                        Environment.Exit(0);
                    }
                }
                else
                {
                    Logger.Write(translator.GetTranslation(TranslationString.Unproxied, unproxiedIP), LogLevel.Info, ConsoleColor.Red);
                }
            }
        }
Example #32
0
        private static void SetupUserAccount(ITranslation translator, GlobalSettings settings)
        {
            Console.WriteLine("");
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUsernamePrompt), LogLevel.None);
            string strInput = Console.ReadLine();

            if (settings.Auth.AuthType == AuthType.Google)
                settings.Auth.GoogleUsername = strInput;
            else
                settings.Auth.PtcUsername = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupUsernameConfirm, strInput));

            Console.WriteLine("");
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupPasswordPrompt), LogLevel.None);
            strInput = Console.ReadLine();

            if (settings.Auth.AuthType == AuthType.Google)
                settings.Auth.GooglePassword = strInput;
            else
                settings.Auth.PtcPassword = strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupPasswordConfirm, strInput));

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartAccountCompleted), LogLevel.None);
        }
Example #33
0
        private static Session SetupTranslationCode(Session session, ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguagePrompt, "Y", "N"), LogLevel.None);
            string strInput;

            bool boolBreak = false;
            while (!boolBreak)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                    case "y":
                        boolBreak = true;
                        break;
                    case "n":
                        return session;
                    default:
                        Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                        continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageCodePrompt));
            strInput = Console.ReadLine();

            settings.TranslationLanguageCode = strInput;
            session = new Session(new ClientSettings(settings), new LogicSettings(settings));
            translator = session.Translation;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartLanguageConfirm, strInput));

            return session;
        }
Example #34
0
        private static void SetupConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"), LogLevel.None);

            bool boolBreak = false;
            while (!boolBreak)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                    case "y":
                        boolBreak = true;
                        break;
                    case "n":
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationSet));
                        return;
                    default:
                        // PROMPT ERROR \\
                        Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                        continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocation), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatLongPrompt));
            while (true)
            {
                try
                {
                    string strInput = Console.ReadLine();
                    string[] strSplit = strInput.Split( ',' );

                    if( strSplit.Length > 1 )
                    {
                        double dblLat = double.Parse( strSplit[ 0 ].Trim( ' ' ) );
                        double dblLong = double.Parse( strSplit[ 1 ].Trim( ' ' ) );

                        settings.DefaultLatitude = dblLat;
                        settings.DefaultLongitude = dblLong;

                        Logger.Write( translator.GetTranslation( TranslationString.FirstStartSetupDefaultLatLongConfirm, $"{dblLat}, {dblLong}" ) );
                    }
                    else
                    {
                        Logger.Write( translator.GetTranslation( TranslationString.FirstStartSetupDefaultLocationError, $"{settings.DefaultLatitude}, {settings.DefaultLongitude}", LogLevel.Error ) );
                        continue;
                    }

                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, $"{settings.DefaultLatitude}, {settings.DefaultLongitude}", LogLevel.Error));
                    continue;
                }
            }
        }
Example #35
0
        private static void SetupAccountType(ITranslation translator, GlobalSettings settings)
        {
            string strInput;
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupAccount), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypePrompt, "google", "ptc"));

            while (true)
            {
                strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                    case "google":
                        settings.Auth.AuthType = AuthType.Google;
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, "GOOGLE"));
                        return;
                    case "ptc":
                        settings.Auth.AuthType = AuthType.Ptc;
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypeConfirm, "PTC"));
                        return;
                    default:
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupTypePromptError, "google", "ptc"), LogLevel.Error);
                        break;
                }
            }
        }
Example #36
0
        public static bool PromptForSetup(ITranslation translator)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartPrompt, "Y", "N"), LogLevel.Warning);

            while (true)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                    case "y":
                        return true;
                    case "n":
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartAutoGenSettings));
                        return false;
                    default:
                        Logger.Write(translator.GetTranslation(TranslationString.PromptError, "Y", "N"), LogLevel.Error);
                        continue;
                }
            }
        }
Example #37
0
        private static void SetupConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"), LogLevel.None);

            bool boolBreak = false;
            while (!boolBreak)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                    case "y":
                        boolBreak = true;
                        break;
                    case "n":
                        Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationSet));
                        return;
                    default:
                        // PROMPT ERROR \\
                        Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                        continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocation), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatPrompt));
            while (true)
            {
                try
                {
                    double dblInput = double.Parse(Console.ReadLine());
                    settings.DefaultLatitude = dblInput;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatConfirm, dblInput));
                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLatitude, LogLevel.Error));
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLongPrompt));
            while (true)
            {
                try
                {
                    double dblInput = double.Parse(Console.ReadLine());
                    settings.DefaultLongitude = dblInput;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLongConfirm, dblInput));
                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLongitude, LogLevel.Error));
                    continue;
                }
            }
        }
Example #38
0
        private static void SetupConfig(ITranslation translator, GlobalSettings settings)
        {
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationPrompt, "Y", "N"), LogLevel.None);

            bool boolBreak = false;

            while (!boolBreak)
            {
                string strInput = Console.ReadLine().ToLower();

                switch (strInput)
                {
                case "y":
                    boolBreak = true;
                    break;

                case "n":
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocationSet));
                    return;

                default:
                    // PROMPT ERROR \\
                    Logger.Write(translator.GetTranslation(TranslationString.PromptError, "y", "n"), LogLevel.Error);
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartDefaultLocation), LogLevel.None);
            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatPrompt));
            while (true)
            {
                try
                {
                    double dblInput = double.Parse(Console.ReadLine());
                    settings.DefaultLatitude = dblInput;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLatConfirm, dblInput));
                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLatitude, LogLevel.Error));
                    continue;
                }
            }

            Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLongPrompt));
            while (true)
            {
                try
                {
                    double dblInput = double.Parse(Console.ReadLine());
                    settings.DefaultLongitude = dblInput;
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLongConfirm, dblInput));
                    break;
                }
                catch (FormatException)
                {
                    Logger.Write(translator.GetTranslation(TranslationString.FirstStartSetupDefaultLocationError, settings.DefaultLongitude, LogLevel.Error));
                    continue;
                }
            }
        }