private void AirPatcher() { try { var bgThead = new Thread(() => { Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { TotalProgressLabel.Content = "40%"; TotalProgessBar.Value = 40; })); // Try get LoL path from registry //A string that looks like C:\Riot Games\League of Legends\ string lolRootPath = GetLolRootPath(false); #region lol_air_client var encoding = new ASCIIEncoding(); if (!File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) { FileStream versionAir = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); versionAir.Write(encoding.GetBytes("0.0.0.0"), 0, encoding.GetBytes("0.0.0.0").Length); versionAir.Close(); } BaseUpdateRegion updateRegion = BaseUpdateRegion.GetUpdateRegion(Client.UpdateRegion); string latestAir = patcher.GetListing(updateRegion.AirListing); LogTextBox("Newest Air Assets Version: " + latestAir); string airVersion = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); LogTextBox("Current Air Assets Version: " + airVersion); downloadTheme(patcher.GetManifest(updateRegion.AirManifest + "releases/" + latestAir + "/packages/files/packagemanifest")); var updateClient = new WebClient(); if (airVersion != latestAir) { //Download Air Assists from riot try { string airManifestLink = updateRegion.AirManifest + "releases/" + latestAir + "/packages/files/packagemanifest"; string[] allFiles = patcher.GetManifest(airManifestLink); int i = 0; while (!allFiles[i].Contains("gameStats_en_US.sqlite")) { i++; } updateClient.DownloadFile(new System.Uri(updateRegion.BaseLink + allFiles[i].Split(',')[0]), Path.Combine(Client.ExecutingDirectory, "gameStats_en_US.sqlite")); GetAllPngs(allFiles); if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) { File.Delete(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); } using ( FileStream file = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) file.Write(encoding.GetBytes(latestAir), 0, encoding.GetBytes(latestAir).Length); } catch (Exception e) { Client.Log(e.Message); } } if (airVersion != latestAir) { Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; CurrentProgressLabel.Content = "Retrieving Air Assets"; })); } #endregion lol_air_client //string GameVersion = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "RADS", "VERSION_LOL")); #region lol_game_client LogTextBox("Trying to detect League of Legends GameClient"); LogTextBox("League of Legends is located at: " + lolRootPath); //RADS\solutions\lol_game_client_sln\releases string gameLocation = Path.Combine(lolRootPath, "RADS", "solutions", "lol_game_client_sln", "releases"); string solutionListing = patcher.GetListing( updateRegion.SolutionListing); string solutionVersion = solutionListing.Split(new[] { Environment.NewLine }, StringSplitOptions.None)[0]; Client.GameClientVersion = solutionVersion; LogTextBox("Latest League of Legends GameClient: " + solutionVersion); LogTextBox("Checking if League of Legends is Up-To-Date"); bool toExit = false; if (Client.UpdateRegion == "Garena") { if (Settings.Default.GarenaLocation == string.Empty) { ClientRegionLocation("Garena"); } if (File.Exists(Path.Combine(Settings.Default.GarenaLocation, "Air", "Lib", "ClientLibCommon.dat"))) { File.Copy(Path.Combine(Settings.Default.GarenaLocation, "Air", "Lib", "ClientLibCommon.dat"), Path.Combine(Client.ExecutingDirectory, "ClientLibCommon.dat"), true); LogTextBox("League of Legends is Up-To-Date"); Client.Location = Path.Combine(lolRootPath, "Game"); Client.RootLocation = lolRootPath; } else { LogTextBox("League of Legends is not Up-To-Date or location is incorrect"); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; FindClientButton.Visibility = Visibility.Visible; })); toExit = true; } /* * XmlReader reader = XmlReader.Create("http://updateres.garenanow.com/im/versions.xml"); * string garenaVersion = ""; * while (reader.Read()) * { * if (reader.GetAttribute("name") == "lol") * { * garenaVersion = reader.GetAttribute("latest_version"); * break; * } * } */ } else if (Directory.Exists(Path.Combine(gameLocation, solutionVersion))) { LogTextBox("League of Legends is Up-To-Date"); Client.Location = Path.Combine(lolRootPath, "RADS", "solutions", "lol_game_client_sln", "releases", solutionVersion, "deploy"); Client.RootLocation = lolRootPath; } else { LogTextBox("League of Legends is not Up-To-Date. Please Update League Of Legends"); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; FindClientButton.Visibility = Visibility.Visible; })); toExit = true; } #endregion lol_game_client if (toExit) { return; } Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { TotalProgressLabel.Content = "100%"; TotalProgessBar.Value = 100; SkipPatchButton.Content = "Play"; CurrentProgressLabel.Content = "Finished Patching"; CurrentStatusLabel.Content = "Ready To Play"; SkipPatchButton.IsEnabled = true; //SkipPatchButton_Click(null, null); if (Settings.Default.AutoPlay) { SkipPatchButton_Click(null, null); } })); LogTextBox("LegendaryClient Has Finished Patching"); }) { IsBackground = true }; bgThead.Start(); } catch (Exception e) { Client.Log(e.Message + " - in PatcherPage updating progress."); } }
private void StartPatcher() { try { var bgThead = new Thread(() => { LogTextBox("Starting Patcher"); var client = new WebClient(); client.DownloadProgressChanged += client_DownloadProgressChanged; client.DownloadFileCompleted += client_DownloadDDragon; client.DownloadProgressChanged += (o, e) => Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { double bytesIn = double.Parse(e.BytesReceived.ToString(CultureInfo.InvariantCulture)); double totalBytes = double.Parse(e.TotalBytesToReceive.ToString(CultureInfo.InvariantCulture)); double percentage = bytesIn / totalBytes * 100; CurrentProgressLabel.Content = "Downloaded " + e.BytesReceived + " of " + e.TotalBytesToReceive; CurrentProgressBar.Value = int.Parse(Math.Truncate(percentage).ToString(CultureInfo.InvariantCulture)); })); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { TotalProgressLabel.Content = "20%"; TotalProgessBar.Value = 20; })); #region idk client = new WebClient(); if (!File.Exists(Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp3"))) { client.DownloadFile( new Uri( "https://s12.solidfilesusercontent.com/MDE1MWYxZGJmYWFhNzJmNGQ2N2ZhOWE0NzU4Yjk2ZDYwZjY3MGU2OToxWHp3OTk6dUllemo3WDM0RnlScUgxZk1YWXpKYmN0RXBn/7a0671ed14/Login.mp3"), Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp3")); } if (!File.Exists(Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp4"))) { client.DownloadFile( new Uri( "https://s8.solidfilesusercontent.com/MzkxMTBjOTllZDczMTBjZDUwNzgwOTc1NTYwZmY1Nzg2YThkZDI5MzoxWHp2eE86alBDQXBkU1FuNmt6R3dsTzcycEtoOXpGdVZr/a38bbf759c/Login.mp4"), Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp4")); } #endregion idk #region DDragon var encoding = new ASCIIEncoding(); if (!Directory.Exists(Path.Combine(Client.ExecutingDirectory, "Assets"))) { Directory.CreateDirectory(Path.Combine(Client.ExecutingDirectory, "Assets")); } if (!File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_DDRagon"))) { FileStream versionLol = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_DDRagon")); versionLol.Write(encoding.GetBytes("0.0.0"), 0, encoding.GetBytes("0.0.0").Length); versionLol.Close(); } var patcher = new RiotPatcher(); string dDragonDownloadUrl = patcher.GetDragon(); if (!String.IsNullOrEmpty(dDragonDownloadUrl)) { LogTextBox("DataDragon Version: " + patcher.DDragonVersion); string dDragonVersion = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_DDragon")); LogTextBox("Current DataDragon Version: " + dDragonVersion); Client.Version = dDragonVersion; Client.Log("DDragon Version (LOL Version) = " + dDragonVersion); LogTextBox("Client Version: " + Client.Version); if (patcher.DDragonVersion != dDragonVersion) { try { if (!Directory.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "temp"))) { Directory.CreateDirectory(Path.Combine(Client.ExecutingDirectory, "Assets", "temp")); } Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { CurrentProgressLabel.Content = "Downloading DataDragon"; })); client.DownloadFile(dDragonDownloadUrl, Path.Combine(Client.ExecutingDirectory, "Assets", "dragontail-" + patcher.DDragonVersion + ".tgz")); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { CurrentProgressLabel.Content = "Extracting DataDragon"; })); Stream inStream = File.OpenRead(Path.Combine(Client.ExecutingDirectory, "Assets", "dragontail-" + patcher.DDragonVersion + ".tgz")); using (var gzipStream = new GZipInputStream(inStream)) { TarArchive tarArchive = TarArchive.CreateInputTarArchive(gzipStream); tarArchive.ExtractContents(Path.Combine(Client.ExecutingDirectory, "Assets", "temp")); //tarArchive.Close(); } inStream.Close(); Copy( Path.Combine(Client.ExecutingDirectory, "Assets", "temp", patcher.DDragonVersion, "data"), Path.Combine(Client.ExecutingDirectory, "Assets", "data")); Copy( Path.Combine(Client.ExecutingDirectory, "Assets", "temp", patcher.DDragonVersion, "img"), Path.Combine(Client.ExecutingDirectory, "Assets")); DeleteDirectoryRecursive(Path.Combine(Client.ExecutingDirectory, "Assets", "temp")); FileStream versionDDragon = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_DDRagon")); versionDDragon.Write(encoding.GetBytes(patcher.DDragonVersion), 0, encoding.GetBytes(patcher.DDragonVersion).Length); Client.Version = dDragonVersion; versionDDragon.Close(); } catch { Client.Log( "Probably updated version number without actually uploading the files."); } } } else { LogTextBox( "Failed to get DDragon version. Either not able to be found or unknown error (most likely the website is in maitenance, please try again in an hour or so)"); LogTextBox( "Continuing could cause errors. Report this as an issue if it occurs again in a few hours."); } #endregion DDragon Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { TotalProgressLabel.Content = "40%"; TotalProgessBar.Value = 40; })); // Try get LoL path from registry //A string that looks like C:\Riot Games\League of Legends\ string lolRootPath = GetLolRootPath(false); #region lol_air_client if (!File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) { FileStream versionAir = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); versionAir.Write(encoding.GetBytes("0.0.0.0"), 0, encoding.GetBytes("0.0.0.0").Length); versionAir.Close(); } BaseUpdateRegion updateRegion = BaseUpdateRegion.GetUpdateRegion(Client.UpdateRegion); string latestAir = patcher.GetListing(updateRegion.AirListing); LogTextBox("Air Assets Version: " + latestAir); string airVersion = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); LogTextBox("Current Air Assets Version: " + airVersion); var updateClient = new WebClient(); if (airVersion != latestAir) { //Download Air Assists from riot try { string airManifestLink = updateRegion.AirManifest + "releases/" + latestAir + "/packages/files/packagemanifest"; string[] allFiles = patcher.GetManifest(airManifestLink); int i = 0; while (!allFiles[i].Contains("gameStats_en_US.sqlite")) { i++; } updateClient.DownloadFile(new Uri(updateRegion.BaseLink + allFiles[i].Split(',')[0]), Path.Combine(Client.ExecutingDirectory, "gameStats_en_US.sqlite")); GetAllPngs(allFiles); if (File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) { File.Delete(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR")); } using ( FileStream file = File.Create(Path.Combine(Client.ExecutingDirectory, "Assets", "VERSION_AIR"))) file.Write(encoding.GetBytes(latestAir), 0, encoding.GetBytes(latestAir).Length); } catch (Exception e) { Client.Log(e.Message); } } if (airVersion != latestAir) { Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; CurrentProgressLabel.Content = "Retrieving Air Assets"; })); } #endregion lol_air_client //string GameVersion = File.ReadAllText(Path.Combine(Client.ExecutingDirectory, "RADS", "VERSION_LOL")); #region lol_game_client LogTextBox("Trying to detect League of Legends GameClient"); LogTextBox("League of Legends is located at: " + lolRootPath); //RADS\solutions\lol_game_client_sln\releases string gameLocation = Path.Combine(lolRootPath, "RADS", "solutions", "lol_game_client_sln", "releases"); string solutionListing = patcher.GetListing( updateRegion.SolutionListing); string solutionVersion = solutionListing.Split(new[] { Environment.NewLine }, StringSplitOptions.None)[0]; LogTextBox("Latest League of Legends GameClient: " + solutionVersion); LogTextBox("Checking if League of Legends is Up-To-Date"); bool toExit = false; if (Client.UpdateRegion == "Garena") { XmlReader reader = XmlReader.Create("http://updateres.garenanow.com/im/versions.xml"); string garenaVersion = ""; while (reader.Read()) { if (reader.GetAttribute("name") == "lol") { garenaVersion = reader.GetAttribute("latest_version"); break; } } try { if (garenaVersion == File.ReadAllText(Path.Combine(Path.GetDirectoryName(lolRootPath), "lol.version"))) { LogTextBox("League of Legends is Up-To-Date"); Client.Location = Path.Combine(lolRootPath, "Game"); Client.RootLocation = lolRootPath; } else { LogTextBox("League of Legends is not Up-To-Date. Please Update League Of Legends"); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; FindClientButton.Visibility = Visibility.Visible; })); toExit = true; } } catch { LogTextBox("Can't find League of Legends version file. Make sure you select correct update region."); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; FindClientButton.Visibility = Visibility.Visible; })); toExit = true; } } else if (Directory.Exists(Path.Combine(gameLocation, solutionVersion))) { LogTextBox("League of Legends is Up-To-Date"); Client.Location = Path.Combine(lolRootPath, "RADS", "solutions", "lol_game_client_sln", "releases", solutionVersion, "deploy"); Client.RootLocation = lolRootPath; } else { LogTextBox("League of Legends is not Up-To-Date. Please Update League Of Legends"); Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { SkipPatchButton.IsEnabled = true; FindClientButton.Visibility = Visibility.Visible; })); toExit = true; } #endregion lol_game_client if (toExit) { return; } Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() => { TotalProgressLabel.Content = "100%"; TotalProgessBar.Value = 100; SkipPatchButton.Content = "Play"; CurrentProgressLabel.Content = "Finished Patching"; CurrentStatusLabel.Content = "Ready To Play"; SkipPatchButton.IsEnabled = true; SkipPatchButton_Click(null, null); })); LogTextBox("LegendaryClient Has Finished Patching"); }) { IsBackground = true }; bgThead.Start(); } catch (Exception e) { Client.Log(e.Message + " - in PatcherPage updating progress."); } }
public LoginPage() { InitializeComponent(); Change(); Client.donepatch = true; Client.patching = false; Version.TextChanged += WaterTextbox_TextChanged; bool x = Settings.Default.DarkTheme; if (!x) { var bc = new BrushConverter(); HideGrid.Background = (Brush)bc.ConvertFrom("#B24F4F4F"); LoggingInProgressRing.Foreground = (Brush)bc.ConvertFrom("#FFFFFFFF"); } //#B2C8C8C8 UpdateRegionComboBox.SelectedValue = Client.UpdateRegion; if (Client.UpdateRegion == "Garena" && !Client.Garena) { LoadGarena(); } switch (Client.UpdateRegion) { case "PBE": RegionComboBox.ItemsSource = new[] { "PBE" }; break; case "Live": RegionComboBox.ItemsSource = new[] { "BR", "EUNE", "EUW", "NA", "OCE", "RU", "LAS", "LAN", "TR", "CS" }; break; case "Korea": RegionComboBox.ItemsSource = new[] { "KR" }; break; case "Garena": RegionComboBox.ItemsSource = new[] { "PH", "SG", "SGMY", "TH", "TW", "VN" }; break; } if (!Settings.Default.DisableLoginMusic) { SoundPlayer.Source = new Uri(Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp3")); SoundPlayer.Play(); Sound.IsChecked = false; } else { Sound.IsChecked = true; } if (!String.IsNullOrEmpty(Settings.Default.devKeyLoc)) { if (Client.Authenticate(Settings.Default.devKeyLoc)) { Client.Dev = true; devKeyLabel.Content = "Dev"; } } if (Settings.Default.LoginPageImage == "") { LoginPic.Source = new Uri(Path.Combine(Client.ExecutingDirectory, "Client", "Login.mp4")); LoginPic.LoadedBehavior = MediaState.Manual; LoginPic.MediaEnded += LoginPic_MediaEnded; SoundPlayer.MediaEnded += SoundPlayer_MediaEnded; LoginPic.Play(); } else { if ( File.Exists(Path.Combine(Client.ExecutingDirectory, "Assets", "champions", Settings.Default.LoginPageImage.Replace("\r\n", "")))) { LoginImage.Source = new BitmapImage( new Uri( Path.Combine(Client.ExecutingDirectory, "Assets", "champions", Settings.Default.LoginPageImage), UriKind.Absolute)); } } Video.IsChecked = false; //Get client data after patcher completed Client.SQLiteDatabase = new SQLiteConnection(Path.Combine(Client.ExecutingDirectory, Client.sqlite)); Client.Champions = (from s in Client.SQLiteDatabase.Table <champions>() orderby s.name select s).ToList(); FreeToPlayChampions.GetInstance(); foreach (champions c in Client.Champions) { var source = new Uri(Path.Combine(Client.ExecutingDirectory, "Assets", "champions", c.iconPath), UriKind.Absolute); c.icon = new BitmapImage(source); Debugger.Log(0, "Log", "Requesting :" + c.name + " champ"); Debugger.Log(0, "", Environment.NewLine); try { c.IsFreeToPlay = FreeToPlayChampions.GetInstance().IsFreeToPlay(c); Champions.InsertExtraChampData(c); //why was this ever here? all of the needed info is already in the sqlite file } catch { Client.Log("error, file not found", "NotFound"); } } Client.ChampionSkins = (from s in Client.SQLiteDatabase.Table <championSkins>() orderby s.name select s).ToList(); Client.ChampionAbilities = (from s in Client.SQLiteDatabase.Table <championAbilities>() //Needs Fixed orderby s.name select s).ToList(); Client.SearchTags = (from s in Client.SQLiteDatabase.Table <championSearchTags>() orderby s.id select s).ToList(); Client.Keybinds = (from s in Client.SQLiteDatabase.Table <keybindingEvents>() orderby s.id select s).ToList(); Client.Items = Items.PopulateItems(); Client.Masteries = Masteries.PopulateMasteries(); Client.Runes = Runes.PopulateRunes(); BaseUpdateRegion updateRegion = BaseUpdateRegion.GetUpdateRegion(Client.UpdateRegion); var patcher = new RiotPatcher(); string tempString = patcher.GetListing(updateRegion.AirListing); string[] packages = patcher.GetManifest( updateRegion.AirManifest + "releases/" + tempString + "/packages/files/packagemanifest"); foreach ( string usestring in packages.Select(package => package.Split(',')[0]) .Where(usestring => usestring.Contains("ClientLibCommon.dat"))) { new WebClient().DownloadFile(new Uri(updateRegion.BaseLink + usestring), Path.Combine(Client.ExecutingDirectory, "ClientLibCommon.dat")); } var reader = new SWFReader(Path.Combine(Client.ExecutingDirectory, "ClientLibCommon.dat")); foreach (var secondSplit in from abcTag in reader.Tags.OfType <DoABC>() where abcTag.Name.Contains("riotgames/platform/gameclient/application/Version") select Encoding.Default.GetString(abcTag.ABCData) into str select str.Split((char)6) into firstSplit select firstSplit[0].Split((char)18)) { try { Client.Version = secondSplit[1]; } catch { var thirdSplit = secondSplit[0].Split((char)19); Client.Version = thirdSplit[1]; } } Version.Text = Client.Version; if (!String.IsNullOrWhiteSpace(Settings.Default.SavedUsername)) { RememberUsernameCheckbox.IsChecked = true; LoginUsernameBox.Text = Settings.Default.SavedUsername; } if (!String.IsNullOrWhiteSpace(Settings.Default.SavedPassword)) { SHA1 sha = new SHA1CryptoServiceProvider(); RememberPasswordCheckbox.IsChecked = true; LoginPasswordBox.Password = Settings.Default.SavedPassword.DecryptStringAES( sha.ComputeHash(Encoding.UTF8.GetBytes(Settings.Default.Guid)).ToString()); } if (!String.IsNullOrWhiteSpace(Settings.Default.Region)) { RegionComboBox.SelectedValue = Settings.Default.Region; } invisibleLoginCheckBox.IsChecked = Settings.Default.incognitoLogin; /*var uriSource = * new Uri( * Path.Combine(Client.ExecutingDirectory, "Assets", "champions", * champions.GetChampion(Client.LatestChamp).splashPath), UriKind.Absolute); * LoginImage.Source = new BitmapImage(uriSource);*/ if (Client.Garena) { Client.PVPNet = null; Client.PVPNet = new PVPNetConnection(); BaseRegion Garenaregion = BaseRegion.GetRegion(Client.args[1]); Client.PVPNet.garenaToken = Client.args[2]; Client.PVPNet.Connect("", "", Garenaregion.PVPRegion, Client.Version); Client.Region = Garenaregion; HideGrid.Visibility = Visibility.Hidden; ErrorTextBox.Visibility = Visibility.Hidden; LoggingInLabel.Visibility = Visibility.Visible; LoggingInProgressRing.Visibility = Visibility.Visible; Client.PVPNet.OnError += PVPNet_OnError; Client.PVPNet.OnLogin += PVPNet_OnLogin; Client.PVPNet.OnMessageReceived += Client.OnMessageReceived; } if (String.IsNullOrWhiteSpace(Settings.Default.SavedPassword) || String.IsNullOrWhiteSpace(Settings.Default.Region) || !Settings.Default.AutoLogin) { return; } AutoLoginCheckBox.IsChecked = true; LoginButton_Click(null, null); }