Przeglądaj źródła

Добавлен .gitignore, удалены лишние файлы и начало чистки исходников.

Vieraw 1 rok temu
rodzic
commit
895bca9380
69 zmienionych plików z 1450 dodań i 2012 usunięć
  1. 398 0
      .gitignore
  2. BIN
      LauncherIcarus/.vs/LauncherIcarus/v16/.suo
  3. 2 2
      LauncherIcarus/App.cs
  4. 1 1
      LauncherIcarus/AssemblyInfo.cs
  5. BIN
      LauncherIcarus/Bin/Debug/LauncherIcarus.exe
  6. BIN
      LauncherIcarus/Bin/Debug/LauncherIcarus.pdb
  7. BIN
      LauncherIcarus/Bin/Debug/Newtonsoft.Json.dll
  8. 1 1
      LauncherIcarus/Daemon/Crc32.cs
  9. 0 154
      LauncherIcarus/Daemon/HTTP/HTTPREQ.cs
  10. 166 0
      LauncherIcarus/Daemon/HTTP/HttpRequest.cs
  11. 26 3
      LauncherIcarus/LauncherIcarus.csproj
  12. 139 147
      LauncherIcarus/MainWindow.xaml.cs
  13. 12 12
      LauncherIcarus/Model/MainViewModel.cs
  14. 5 3
      LauncherIcarus/Model/ViewModelBase.cs
  15. 4 4
      LauncherIcarus/ResponseModel/Accountinfos.cs
  16. 5 5
      LauncherIcarus/ResponseModel/Files.cs
  17. 3 3
      LauncherIcarus/ResponseModel/ResponseLauncherVersion.cs
  18. 1 1
      LauncherIcarus/ResponseModel/ResponseLogin.cs
  19. 483 440
      LauncherIcarus/mainwindow.xaml
  20. 0 62
      LauncherIcarus/obj/Debug/GeneratedInternalTypeHelper.g.cs
  21. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.Properties.Resources.resources
  22. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.AssemblyReference.cache
  23. 0 0
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.CopyComplete
  24. 0 1
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.CoreCompileInputs.cache
  25. 0 17
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.FileListAbsolute.txt
  26. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.GenerateResource.cache
  27. 0 0
      LauncherIcarus/obj/Debug/LauncherIcarus.csproj.SuggestedBindingRedirects.cache
  28. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.exe
  29. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.g.resources
  30. BIN
      LauncherIcarus/obj/Debug/LauncherIcarus.pdb
  31. 0 20
      LauncherIcarus/obj/Debug/LauncherIcarus_MarkupCompile.cache
  32. 0 4
      LauncherIcarus/obj/Debug/LauncherIcarus_MarkupCompile.lref
  33. BIN
      LauncherIcarus/obj/Debug/mainwindow.baml
  34. 0 395
      LauncherIcarus/obj/Debug/mainwindow.g.cs
  35. 32 34
      LauncherIcarus/obj/Debug/mainwindow.g.i.cs
  36. 9 0
      LauncherIcarus/packages.config
  37. 2 2
      LauncherUpdater/App.cs
  38. BIN
      LauncherUpdater/Bin/Debug/LauncherUpdater.exe
  39. BIN
      LauncherUpdater/Bin/Debug/LauncherUpdater.pdb
  40. BIN
      LauncherUpdater/Bin/Debug/Newtonsoft.Json.dll
  41. 3 21
      LauncherUpdater/Function/Configuration.cs
  42. 0 309
      LauncherUpdater/Function/Crc32.cs
  43. 42 40
      LauncherUpdater/Function/EncryptionHelper.cs
  44. 4 4
      LauncherUpdater/Function/FileConfig.cs
  45. 9 5
      LauncherUpdater/HTTP/HttpRequest.cs
  46. 28 3
      LauncherUpdater/LauncherUpdater.csproj
  47. 51 63
      LauncherUpdater/MainWindow.xaml.cs
  48. 4 21
      LauncherUpdater/Properties/Resources.cs
  49. 1 3
      LauncherUpdater/Properties/Settings.cs
  50. 5 5
      LauncherUpdater/Response/Files.cs
  51. 1 1
      LauncherUpdater/Response/ResponseListLauncherFiles.cs
  52. 4 7
      LauncherUpdater/mainwindow.xaml
  53. BIN
      LauncherUpdater/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  54. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.Properties.Resources.resources
  55. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.AssemblyReference.cache
  56. 0 0
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.CopyComplete
  57. 0 1
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.CoreCompileInputs.cache
  58. 0 16
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.FileListAbsolute.txt
  59. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.GenerateResource.cache
  60. 0 0
      LauncherUpdater/obj/Debug/LauncherUpdater.csproj.SuggestedBindingRedirects.cache
  61. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.exe
  62. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.g.resources
  63. BIN
      LauncherUpdater/obj/Debug/LauncherUpdater.pdb
  64. 0 20
      LauncherUpdater/obj/Debug/LauncherUpdater_MarkupCompile.cache
  65. 0 4
      LauncherUpdater/obj/Debug/LauncherUpdater_MarkupCompile.lref
  66. BIN
      LauncherUpdater/obj/Debug/mainwindow.baml
  67. 0 89
      LauncherUpdater/obj/Debug/mainwindow.g.cs
  68. 0 89
      LauncherUpdater/obj/Debug/mainwindow.g.i.cs
  69. 9 0
      LauncherUpdater/packages.config

+ 398 - 0
.gitignore

@@ -0,0 +1,398 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.tlog
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+*.ncb
+*.aps
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# Visual Studio History (VSHistory) files
+.vshistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+# VS Code files for those working on multiple tools
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# JetBrains Rider
+*.sln.iml

BIN
LauncherIcarus/.vs/LauncherIcarus/v16/.suo


+ 2 - 2
LauncherIcarus/App.cs

@@ -9,14 +9,14 @@ namespace LauncherIcarus
     {
         [DebuggerNonUserCode]
         [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
-        private void InitializeComponent() => this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
+        private void InitializeComponent() => StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
 
         [STAThread]
         [DebuggerNonUserCode]
         [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
         public static void Main()
         {
-            App app = new App();
+            var app = new App();
             app.InitializeComponent();
             app.Run();
         }

+ 1 - 1
LauncherIcarus/AssemblyInfo.cs

@@ -12,4 +12,4 @@ using System.Windows;
 [assembly: ComVisible(false)]
 [assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
 [assembly: AssemblyFileVersion("1.0.0.0")]
-[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0.0")]

BIN
LauncherIcarus/Bin/Debug/LauncherIcarus.exe


BIN
LauncherIcarus/Bin/Debug/LauncherIcarus.pdb


BIN
LauncherIcarus/Bin/Debug/Newtonsoft.Json.dll


+ 1 - 1
LauncherIcarus/Daemon/Crc32.cs

@@ -5,7 +5,7 @@ namespace LauncherIcarus.Daemon
 {
     public class Crc32 : HashAlgorithm
     {
-        public const uint DefaultSeed = 4294967295;
+        // public const uint DefaultSeed = 4294967295;
 
         private static readonly uint[] CrcTable = new uint[256]
         {

+ 0 - 154
LauncherIcarus/Daemon/HTTP/HTTPREQ.cs

@@ -1,154 +0,0 @@
-using System.Collections.Generic;
-using System.Net.Http;
-using System.Threading.Tasks;
-
-namespace LauncherIcarus.Daemon.HTTP
-{
-    public class HTTPREQ
-    {
-        private string LoginUrl = Configuration.Default.ServerIP + Configuration.Default.LoginUrl;
-
-        private string GetLauncherVersionUrl =
-            Configuration.Default.ServerIP + Configuration.Default.GetLauncherVersion;
-
-        private string UpdateLauncherVersionUrl =
-            Configuration.Default.ServerIP + Configuration.Default.UpdateLauncherVersion;
-
-        private string GetLauncherFilesUrl = Configuration.Default.ServerIP + Configuration.Default.ListFileUrl;
-        private string CheckClientFiles = Configuration.Default.ServerIP + Configuration.Default.CheckClientFiles;
-        private string GetTranslate = Configuration.Default.ServerIP + Configuration.Default.GetTranslate;
-
-        public async Task<string> LoginAsync(string accountName, string password)
-        {
-            string str;
-            using (FormUrlEncodedContent content = new FormUrlEncodedContent(
-                       (IEnumerable<KeyValuePair<string, string>>) new Dictionary<string, string>()
-                       {
-                           {
-                               "Username",
-                               accountName
-                           },
-                           {
-                               "Password",
-                               password
-                           }
-                       }))
-            {
-                using (HttpClient client = new HttpClient())
-                    str = await (await client.PostAsync(this.LoginUrl, (HttpContent) content)).Content
-                        .ReadAsStringAsync();
-            }
-
-            return str;
-        }
-
-        public async Task<string> GetLauncherVersionAsync(string token, string Username)
-        {
-            string launcherVersionAsync;
-            using (FormUrlEncodedContent content = new FormUrlEncodedContent(
-                       (IEnumerable<KeyValuePair<string, string>>) new Dictionary<string, string>()
-                       {
-                           {
-                               nameof(token),
-                               token
-                           },
-                           {
-                               nameof(Username),
-                               Username
-                           }
-                       }))
-            {
-                using (HttpClient client = new HttpClient())
-                    launcherVersionAsync =
-                        await (await client.PostAsync(this.GetLauncherVersionUrl, (HttpContent) content)).Content
-                            .ReadAsStringAsync();
-            }
-
-            return launcherVersionAsync;
-        }
-
-        public async Task<string> UpdateLauncherVersionAsync(
-            string token,
-            string UpdatedVersion,
-            string Username)
-        {
-            string str;
-            using (FormUrlEncodedContent content = new FormUrlEncodedContent(
-                       (IEnumerable<KeyValuePair<string, string>>) new Dictionary<string, string>()
-                       {
-                           {
-                               nameof(token),
-                               token
-                           },
-                           {
-                               nameof(Username),
-                               Username
-                           },
-                           {
-                               "UpdaterVersion",
-                               UpdatedVersion
-                           }
-                       }))
-            {
-                using (HttpClient client = new HttpClient())
-                    str = await (await client.PostAsync(this.UpdateLauncherVersionUrl, (HttpContent) content)).Content
-                        .ReadAsStringAsync();
-            }
-
-            return str;
-        }
-
-        public async Task<string> GetLauncherListFilesAsync(string token, string clientVersion)
-        {
-            string launcherListFilesAsync;
-            using (FormUrlEncodedContent content = new FormUrlEncodedContent(
-                       (IEnumerable<KeyValuePair<string, string>>) new Dictionary<string, string>()
-                       {
-                           {
-                               nameof(token),
-                               token
-                           },
-                           {
-                               nameof(clientVersion),
-                               clientVersion
-                           }
-                       }))
-            {
-                using (HttpClient client = new HttpClient())
-                    launcherListFilesAsync =
-                        await (await client.PostAsync(this.GetLauncherFilesUrl, (HttpContent) content)).Content
-                            .ReadAsStringAsync();
-            }
-
-            return launcherListFilesAsync;
-        }
-
-        public async Task<string> GetClientFilesCheckListAsync(string token)
-        {
-            string filesCheckListAsync;
-            using (FormUrlEncodedContent content = new FormUrlEncodedContent(
-                       (IEnumerable<KeyValuePair<string, string>>) new Dictionary<string, string>()
-                       {
-                           {
-                               nameof(token),
-                               token
-                           }
-                       }))
-            {
-                using (HttpClient client = new HttpClient())
-                    filesCheckListAsync = await (await client.PostAsync(this.CheckClientFiles, (HttpContent) content))
-                        .Content.ReadAsStringAsync();
-            }
-
-            return filesCheckListAsync;
-        }
-
-        public async Task<string> GetLauncherTranslateAsync()
-        {
-            string launcherTranslateAsync;
-            using (HttpClient client = new HttpClient())
-                launcherTranslateAsync = await (await client.GetAsync(this.GetTranslate)).Content.ReadAsStringAsync();
-            return launcherTranslateAsync;
-        }
-    }
-}

+ 166 - 0
LauncherIcarus/Daemon/HTTP/HttpRequest.cs

@@ -0,0 +1,166 @@
+using System.Collections.Generic;
+using System.Net.Http;
+using System.Threading.Tasks;
+
+namespace LauncherIcarus.Daemon.HTTP
+{
+    public class HttpRequest
+    {
+        private readonly string _loginUrl = Configuration.Default.ServerIP + Configuration.Default.LoginUrl;
+
+        private readonly string _getLauncherVersionUrl =
+            Configuration.Default.ServerIP + Configuration.Default.GetLauncherVersion;
+
+        private readonly string _updateLauncherVersionUrl =
+            Configuration.Default.ServerIP + Configuration.Default.UpdateLauncherVersion;
+
+        private readonly string _getLauncherFilesUrl =
+            Configuration.Default.ServerIP + Configuration.Default.ListFileUrl;
+
+        private readonly string _checkClientFiles =
+            Configuration.Default.ServerIP + Configuration.Default.CheckClientFiles;
+
+        private readonly string _getTranslate = Configuration.Default.ServerIP + Configuration.Default.GetTranslate;
+
+        public async Task<string> LoginAsync(string accountName, string password)
+        {
+            string str;
+            using (var content = new FormUrlEncodedContent(new Dictionary<string, string>
+                   {
+                       {
+                           "Username",
+                           accountName
+                       },
+                       {
+                           "Password",
+                           password
+                       }
+                   }))
+            {
+                using (var client = new HttpClient())
+                {
+                    str = await (await client.PostAsync(_loginUrl, content))
+                        .Content
+                        .ReadAsStringAsync();
+                }
+            }
+
+            return str;
+        }
+
+        public async Task<string> GetLauncherVersionAsync(string token, string username)
+        {
+            string launcherVersionAsync;
+            using (var content = new FormUrlEncodedContent(new Dictionary<string, string>
+                   {
+                       {
+                           nameof(token),
+                           token
+                       },
+                       {
+                           nameof(username),
+                           username
+                       }
+                   }))
+            {
+                using (var client = new HttpClient())
+                {
+                    launcherVersionAsync = await (await client.PostAsync(_getLauncherVersionUrl, content))
+                        .Content
+                        .ReadAsStringAsync();
+                }
+            }
+
+            return launcherVersionAsync;
+        }
+
+        public async Task<string> UpdateLauncherVersionAsync(string token, string updatedVersion, string username)
+        {
+            string str;
+            using (var content = new FormUrlEncodedContent(new Dictionary<string, string>
+                   {
+                       {
+                           nameof(token),
+                           token
+                       },
+                       {
+                           nameof(username),
+                           username
+                       },
+                       {
+                           "UpdaterVersion",
+                           updatedVersion
+                       }
+                   }))
+            {
+                using (var client = new HttpClient())
+                {
+                    str = await (await client.PostAsync(_updateLauncherVersionUrl, content))
+                        .Content
+                        .ReadAsStringAsync();
+                }
+            }
+
+            return str;
+        }
+
+        public async Task<string> GetLauncherListFilesAsync(string token, string clientVersion)
+        {
+            string launcherListFilesAsync;
+            using (var content = new FormUrlEncodedContent(new Dictionary<string, string>
+                   {
+                       {
+                           nameof(token),
+                           token
+                       },
+                       {
+                           nameof(clientVersion),
+                           clientVersion
+                       }
+                   }))
+            {
+                using (var client = new HttpClient())
+                {
+                    launcherListFilesAsync = await (await client.PostAsync(_getLauncherFilesUrl, content))
+                        .Content
+                        .ReadAsStringAsync();
+                }
+            }
+
+            return launcherListFilesAsync;
+        }
+
+        public async Task<string> GetClientFilesCheckListAsync(string token)
+        {
+            string filesCheckListAsync;
+            using (var content = new FormUrlEncodedContent(new Dictionary<string, string>
+                   {
+                       {
+                           nameof(token),
+                           token
+                       }
+                   }))
+            {
+                using (var client = new HttpClient())
+                {
+                    filesCheckListAsync = await (await client.PostAsync(_checkClientFiles, content))
+                        .Content
+                        .ReadAsStringAsync();
+                }
+            }
+
+            return filesCheckListAsync;
+        }
+
+        public async Task<string> GetLauncherTranslateAsync()
+        {
+            string launcherTranslateAsync;
+            using (var client = new HttpClient())
+            {
+                launcherTranslateAsync = await (await client.GetAsync(_getTranslate)).Content.ReadAsStringAsync();
+            }
+
+            return launcherTranslateAsync;
+        }
+    }
+}

+ 26 - 3
LauncherIcarus/LauncherIcarus.csproj

@@ -31,16 +31,36 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>icon4.ico</ApplicationIcon>
+  </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>lib\Newtonsoft.Json.dll</HintPath>
+    <Reference Include="mscorlib" />
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="PresentationCore" />
     <Reference Include="PresentationFramework" />
     <Reference Include="System" />
+    <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
+    </Reference>
     <Reference Include="System.IO.Compression" />
     <Reference Include="System.IO.Compression.FileSystem" />
+    <Reference Include="System.IO.Hashing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>packages\System.IO.Hashing.8.0.0\lib\net462\System.IO.Hashing.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
+    </Reference>
     <Reference Include="System.Net.Http" />
+    <Reference Include="System.Numerics" />
+    <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+    </Reference>
     <Reference Include="System.Xaml" />
     <Reference Include="WindowsBase" />
   </ItemGroup>
@@ -63,7 +83,7 @@
     <Compile Include="Daemon\Logger.cs" />
     <Compile Include="Daemon\SelectAllFocusBehavior.cs" />
     <Compile Include="Daemon\Configuration.cs" />
-    <Compile Include="Daemon\HTTP\HTTPREQ.cs" />
+    <Compile Include="Daemon\HTTP\HttpRequest.cs" />
     <Compile Include="MainWindow.xaml.cs">
       <DependentUpon>mainwindow.xaml</DependentUpon>
       <SubType>Code</SubType>
@@ -100,5 +120,8 @@
       <SubType>Designer</SubType>
     </Page>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 139 - 147
LauncherIcarus/MainWindow.xaml.cs

@@ -17,51 +17,60 @@ namespace LauncherIcarus
 {
     public partial class MainWindow : Window
     {
-        private readonly HTTPREQ httpRequest;
-        private readonly MainViewModel mainViewModel;
-        private readonly FileConfig fileConfig;
-        private DirectoryInfo lDir;
+        private readonly HttpRequest _httpRequest;
+        private readonly MainViewModel _mainViewModel;
+        private readonly FileConfig _fileConfig;
+        private DirectoryInfo _lDir;
 
         public MainWindow()
         {
-            this.httpRequest = new HTTPREQ();
-            this.mainViewModel = new MainViewModel();
-            this.fileConfig = new FileConfig();
-            this.InitializeComponent();
-            this.Initialize();
+            _httpRequest = new HttpRequest();
+            _mainViewModel = new MainViewModel();
+            _fileConfig = new FileConfig();
+            InitializeComponent();
+            Initialize();
         }
 
         private void Initialize()
         {
             try
             {
-                this.lblTotalQtd.Content = (object) "0.0MB";
-                this.lblTotalAtualizadoQtd.Content = (object) "0.0MB";
-                this.lblAtualQtd.Content = (object) "0.0MB";
-                this.lblDownloadSpeed.Visibility = Visibility.Hidden;
-                this.lblDownloadSpeedQtd.Visibility = Visibility.Hidden;
-                this.lblWellcome.Visibility = Visibility.Hidden;
-                this.lblFileDownloading.Visibility = Visibility.Hidden;
-                this.lblFileDownloadingName.Visibility = Visibility.Hidden;
-                this.wbSlide.Visibility = Visibility.Hidden;
-                this.mainViewModel.IsChecking = false;
-                this.mainViewModel.IsUpdating = false;
-                this.mainViewModel.IsLogged = false;
-                this.mainViewModel.Lang = this.fileConfig.GetLanguage();
-                this.DataContext = (object) this.mainViewModel;
-                this.wbSlide.Navigate(Configuration.Default.ServerIP + Configuration.Default.LauncherNewsUrl);
-                AccountModel.Username = this.fileConfig.GetUsername();
-                this.lDir = new DirectoryInfo(Environment.CurrentDirectory);
-                this.InstallRedist();
-                if (AccountModel.Username.ToString() != "")
-                    this.textUsername.Text = AccountModel.Username.ToString();
-                if (!System.IO.File.Exists("LauncherVersionSetting"))
-                    this.fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("FALSE"));
-                if (!(EncryptionHelper.Decrypt(this.fileConfig.GetLauncherIsChecked()) == "FALSE"))
+                lblTotalQtd.Content = "0.0MB";
+                lblTotalAtualizadoQtd.Content = "0.0MB";
+                lblAtualQtd.Content = "0.0MB";
+                lblDownloadSpeed.Visibility = Visibility.Hidden;
+                lblDownloadSpeedQtd.Visibility = Visibility.Hidden;
+                lblWellcome.Visibility = Visibility.Hidden;
+                lblFileDownloading.Visibility = Visibility.Hidden;
+                lblFileDownloadingName.Visibility = Visibility.Hidden;
+                wbSlide.Visibility = Visibility.Hidden;
+                _mainViewModel.IsChecking = false;
+                _mainViewModel.IsUpdating = false;
+                _mainViewModel.IsLogged = false;
+                _mainViewModel.Lang = _fileConfig.GetLanguage();
+                DataContext = _mainViewModel;
+                wbSlide.Navigate(Configuration.Default.ServerIP + Configuration.Default.LauncherNewsUrl);
+                AccountModel.Username = _fileConfig.GetUsername();
+                _lDir = new DirectoryInfo(Environment.CurrentDirectory);
+
+                if (AccountModel.Username != "")
+                {
+                    textUsername.Text = AccountModel.Username;
+                }
+
+                if (!File.Exists("LauncherVersionSetting"))
+                {
+                    _fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("FALSE"));
+                }
+
+                if (EncryptionHelper.Decrypt(this._fileConfig.GetLauncherIsChecked()) != "FALSE")
+                {
                     return;
-                Process.Start(new ProcessStartInfo()
+                }
+
+                Process.Start(new ProcessStartInfo
                 {
-                    WorkingDirectory = this.lDir.Parent.FullName,
+                    WorkingDirectory = _lDir.Parent.FullName,
                     FileName = "LauncherUpdater.exe",
                     CreateNoWindow = false
                 });
@@ -72,103 +81,86 @@ namespace LauncherIcarus
             }
         }
 
-        private void InstallRedist()
-        {
-            if (System.IO.File.Exists("RedistInstall"))
-                return;
-            try
-            {
-                string str = string.Format(this.lDir.Parent.FullName + "\\Tools\\Redist");
-                Process process = new Process();
-                process.StartInfo.WorkingDirectory = str;
-                process.StartInfo.FileName = "Installer.cmd";
-                process.StartInfo.Arguments = string.Format("10");
-                process.StartInfo.CreateNoWindow = false;
-                process.Start();
-                process.WaitForExit();
-                this.fileConfig.SetRedistIsInstaled();
-            }
-            catch (Exception ex)
-            {
-                Logger.WriteLog(ex.Message);
-            }
-        }
-
-        private void buttonMinimizer_Click(object sender, RoutedEventArgs e) =>
-            this.WindowState = WindowState.Minimized;
+        private void buttonMinimizer_Click(object sender, RoutedEventArgs e) => WindowState = WindowState.Minimized;
 
-        private void buttonClose_Click(object sender, RoutedEventArgs e) => this.Close();
+        private void buttonClose_Click(object sender, RoutedEventArgs e) => Close();
 
         private async void buttonAccess_Click(object sender, RoutedEventArgs e)
         {
             try
             {
-                this.lblWellcome.Visibility = Visibility.Hidden;
-                ResponseLogin responseLogin = JsonConvert.DeserializeObject<ResponseLogin>(
-                    await this.httpRequest.LoginAsync(this.textUsername.Text, this.textPassword.Password.ToString()));
-                if (responseLogin.Code == 0)
+                lblWellcome.Visibility = Visibility.Hidden;
+                var responseLogin = JsonConvert.DeserializeObject<ResponseLogin>(
+                    await _httpRequest.LoginAsync(textUsername.Text, textPassword.Password)
+                );
+                if (responseLogin?.Code == 0)
                 {
-                    this.fileConfig.SetUsername(responseLogin.Accountinfo.Username);
+                    _fileConfig.SetUsername(responseLogin.Accountinfo.Username);
                     AccountModel.Token = responseLogin.Token;
                     AccountModel.Username = responseLogin.Accountinfo.Username;
                     AccountModel.Version = responseLogin.Accountinfo.Version;
-                    this.fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("FALSE"));
-                    this.lblWellcome.Visibility = Visibility.Visible;
-                    this.lblWellcome.Content = (object) ("Seja bem vindo " + AccountModel.Username);
-                    this.lblMsgStatus.Visibility = Visibility.Hidden;
-                    this.inputUsername.Visibility = Visibility.Hidden;
-                    this.inputPassword.Visibility = Visibility.Hidden;
-                    this.textUsername.Visibility = Visibility.Hidden;
-                    this.textPassword.Visibility = Visibility.Hidden;
-                    this.buttonAccess.Visibility = Visibility.Hidden;
-                    this.wbSlide.Visibility = Visibility.Visible;
-                    this.mainViewModel.IsLogged = true;
-                    this.GetUpdate();
+                    _fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("FALSE"));
+                    lblWellcome.Visibility = Visibility.Visible;
+                    lblWellcome.Content = "Seja bem vindo " + AccountModel.Username;
+                    lblMsgStatus.Visibility = Visibility.Hidden;
+                    inputUsername.Visibility = Visibility.Hidden;
+                    inputPassword.Visibility = Visibility.Hidden;
+                    textUsername.Visibility = Visibility.Hidden;
+                    textPassword.Visibility = Visibility.Hidden;
+                    buttonAccess.Visibility = Visibility.Hidden;
+                    wbSlide.Visibility = Visibility.Visible;
+                    _mainViewModel.IsLogged = true;
+                    await GetUpdate();
                 }
 
-                this.lblMsgStatus.Content = (object) responseLogin.message;
+                lblMsgStatus.Content = responseLogin?.Message;
             }
             catch (Exception ex)
             {
-                this.lblMsgStatus.Content = (object) ex.Message;
+                lblMsgStatus.Content = ex.Message;
                 Logger.WriteLog(ex.Message);
             }
         }
 
         private void buttonVerify_Click(object sender, RoutedEventArgs e)
         {
-            if (!this.mainViewModel.IsLogged)
+            if (!_mainViewModel.IsLogged)
             {
-                this.lblMsgStatus.Content = (object) "Antes de verificar os arquivos faça login!";
+                lblMsgStatus.Content = "Antes de verificar os arquivos faça login!";
             }
             else
             {
-                if (this.mainViewModel.IsUpdating || this.mainViewModel.IsChecking)
+                if (_mainViewModel.IsUpdating || _mainViewModel.IsChecking)
+                {
                     return;
-                this.CheckClientFiles();
+                }
+
+                CheckClientFiles();
             }
         }
 
         private async Task GetUpdate()
         {
-            MainWindow mainWindow = this;
+            var mainWindow = this;
             try
             {
-                HTTPREQ httpRequest = new HTTPREQ();
+                var httpRequest = new HttpRequest();
                 if (!Directory.Exists(Configuration.Default.DownloadDir))
+                {
                     Directory.CreateDirectory(Configuration.Default.DownloadDir);
-                ResponseLauncherVersion getVersionResponse =
-                    JsonConvert.DeserializeObject<ResponseLauncherVersion>(
-                        await httpRequest.GetLauncherVersionAsync(AccountModel.Token, AccountModel.Username));
-                ResponseListLauncherFiles getLauncherListResponse =
-                    JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
-                        await httpRequest.GetLauncherListFilesAsync(AccountModel.Token,
-                            getVersionResponse.UpdaterVersion.ToString()));
+                }
+
+                var getVersionResponse = JsonConvert.DeserializeObject<ResponseLauncherVersion>(
+                    await httpRequest.GetLauncherVersionAsync(AccountModel.Token, AccountModel.Username)
+                );
+                var getLauncherListResponse = JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
+                    await httpRequest.GetLauncherListFilesAsync(AccountModel.Token, getVersionResponse.UpdaterVersion.ToString())
+                );
                 if (getLauncherListResponse.TotalBytes > 0.0)
                 {
                     double totalDownloaded = 0.0;
                     mainWindow.progressBar.Width = 0.0;
-                    mainWindow.mainViewModel.IsUpdating = true;
+                    mainWindow._mainViewModel.IsUpdating = true;
                     mainWindow.lblDownloadSpeed.Visibility = Visibility.Visible;
                     mainWindow.lblDownloadSpeedQtd.Visibility = Visibility.Visible;
                     mainWindow.lblFileDownloading.Visibility = Visibility.Visible;
@@ -179,22 +171,22 @@ namespace LauncherIcarus
                         (object) (Math.Round(getLauncherListResponse.TotalBytes / 1024.0, 2).ToString() + "MB");
                     foreach (Files file in getLauncherListResponse.File)
                     {
-                        LastVersion = (int) file.version;
+                        LastVersion = (int) file.Version;
                         double num1;
                         if (LastVersion > ClientVersion)
                         {
                             Label lblAtualQtd = mainWindow.lblAtualQtd;
-                            num1 = Math.Round(file.size / 1024.0, 2);
+                            num1 = Math.Round(file.Size / 1024.0, 2);
                             string str = num1.ToString() + "MB";
                             lblAtualQtd.Content = (object) str;
-                            int num2 = await mainWindow.DownloadArchiveAsync(file.filename,
-                                Configuration.Default.DownloadDir, file.url)
+                            int num2 = await mainWindow.DownloadArchiveAsync(file.Filename,
+                                Configuration.Default.DownloadDir, file.Url)
                                 ? 1
                                 : 0;
                         }
 
-                        double num3 = file.size / getLauncherListResponse.TotalBytes * 656.0;
-                        totalDownloaded += file.size;
+                        double num3 = file.Size / getLauncherListResponse.TotalBytes * 656.0;
+                        totalDownloaded += file.Size;
                         mainWindow.progressBar.Width += (double) (int) num3;
                         mainWindow.ExtractFiles();
                         Label totalAtualizadoQtd = mainWindow.lblTotalAtualizadoQtd;
@@ -208,8 +200,8 @@ namespace LauncherIcarus
                             AccountModel.Username));
                 }
 
-                mainWindow.mainViewModel.IsUpdating = false;
-                mainWindow.DataContext = (object) mainWindow.mainViewModel;
+                mainWindow._mainViewModel.IsUpdating = false;
+                mainWindow.DataContext = (object) mainWindow._mainViewModel;
                 mainWindow.lblTotalQtd.Content = (object) "0.0MB";
                 mainWindow.lblTotalAtualizadoQtd.Content = (object) "0.0MB";
                 mainWindow.lblAtualQtd.Content = (object) "0.0MB";
@@ -217,7 +209,7 @@ namespace LauncherIcarus
                 mainWindow.lblDownloadSpeedQtd.Visibility = Visibility.Hidden;
                 mainWindow.lblFileDownloading.Visibility = Visibility.Hidden;
                 mainWindow.lblFileDownloadingName.Visibility = Visibility.Hidden;
-                httpRequest = (HTTPREQ) null;
+                httpRequest = (HttpRequest) null;
                 getVersionResponse = (ResponseLauncherVersion) null;
                 getLauncherListResponse = (ResponseListLauncherFiles) null;
             }
@@ -233,12 +225,12 @@ namespace LauncherIcarus
             try
             {
                 mainWindow.progressBar.Width = 0.0;
-                mainWindow.mainViewModel.IsChecking = true;
+                mainWindow._mainViewModel.IsChecking = true;
                 double totalDownloaded = 0.0;
                 Crc32 c = new Crc32();
                 ResponseListLauncherFiles get =
                     JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
-                        await mainWindow.httpRequest.GetClientFilesCheckListAsync(AccountModel.Token));
+                        await mainWindow._httpRequest.GetClientFilesCheckListAsync(AccountModel.Token));
                 if (get.TotalBytes > 0.0)
                 {
                     Label lblTotalQtd = mainWindow.lblTotalQtd;
@@ -251,11 +243,11 @@ namespace LauncherIcarus
                     mainWindow.lblFileDownloadingName.Visibility = Visibility.Visible;
                     foreach (Files k in get.File)
                     {
-                        string filename = k.filename;
+                        string filename = k.Filename;
                         string empty = string.Empty;
-                        string path = mainWindow.lDir.Parent.FullName + "\\" + k.filename.Replace("/", "\\");
+                        string path = mainWindow._lDir.Parent.FullName + "\\" + k.Filename.Replace("/", "\\");
                         Label lblAtualQtd = mainWindow.lblAtualQtd;
-                        num1 = Math.Round(k.size / 1024.0, 2);
+                        num1 = Math.Round(k.Size / 1024.0, 2);
                         string str2 = num1.ToString() + "MB";
                         lblAtualQtd.Content = (object) str2;
                         if (System.IO.File.Exists(path))
@@ -266,24 +258,24 @@ namespace LauncherIcarus
                                     empty += num2.ToString("x2").ToLower();
                             }
 
-                            if (k.crc32 != empty)
+                            if (k.Crc32 != empty)
                             {
                                 int num3 = await mainWindow.DownloadArchiveAsync(filename,
-                                    mainWindow.lDir.Parent.FullName, k.url)
+                                    mainWindow._lDir.Parent.FullName, k.Url)
                                     ? 1
                                     : 0;
                             }
                         }
                         else
                         {
-                            int num4 = await mainWindow.DownloadArchiveAsync(filename, mainWindow.lDir.Parent.FullName,
-                                k.url)
+                            int num4 = await mainWindow.DownloadArchiveAsync(filename, mainWindow._lDir.Parent.FullName,
+                                k.Url)
                                 ? 1
                                 : 0;
                         }
 
-                        totalDownloaded += k.size;
-                        double num5 = k.size / get.TotalBytes * 656.0;
+                        totalDownloaded += k.Size;
+                        double num5 = k.Size / get.TotalBytes * 656.0;
                         Label totalAtualizadoQtd = mainWindow.lblTotalAtualizadoQtd;
                         num1 = Math.Round(totalDownloaded / 1024.0, 2);
                         string str3 = num1.ToString() + "MB";
@@ -292,8 +284,8 @@ namespace LauncherIcarus
                     }
                 }
 
-                mainWindow.mainViewModel.IsChecking = false;
-                mainWindow.DataContext = (object) mainWindow.mainViewModel;
+                mainWindow._mainViewModel.IsChecking = false;
+                mainWindow.DataContext = (object) mainWindow._mainViewModel;
                 mainWindow.lblTotalQtd.Content = (object) "0.0MB";
                 mainWindow.lblTotalAtualizadoQtd.Content = (object) "0.0MB";
                 mainWindow.lblAtualQtd.Content = (object) "0.0MB";
@@ -381,7 +373,7 @@ namespace LauncherIcarus
                         {
                             if (entry.Length > 0L || entry.Name != "")
                             {
-                                entry.ExtractToFile(Path.Combine(this.lDir.Parent.FullName, entry.FullName), true);
+                                entry.ExtractToFile(Path.Combine(this._lDir.Parent.FullName, entry.FullName), true);
                             }
                             else
                             {
@@ -392,8 +384,8 @@ namespace LauncherIcarus
                                 string path2 = "";
                                 for (int index = 0; index < strArray.Length; ++index)
                                     path2 = path2 + strArray[index] + "/";
-                                if (!Directory.Exists(Path.Combine(this.lDir.Parent.FullName, path2)))
-                                    Directory.CreateDirectory(Path.Combine(this.lDir.Parent.FullName, path2));
+                                if (!Directory.Exists(Path.Combine(this._lDir.Parent.FullName, path2)))
+                                    Directory.CreateDirectory(Path.Combine(this._lDir.Parent.FullName, path2));
                             }
                         }
                     }
@@ -409,14 +401,14 @@ namespace LauncherIcarus
 
         private void buttonStart_Click(object sender, RoutedEventArgs e)
         {
-            if (!mainViewModel.IsLogged || mainViewModel.IsUpdating || mainViewModel.IsChecking)
+            if (!_mainViewModel.IsLogged || _mainViewModel.IsUpdating || _mainViewModel.IsChecking)
             {
                 return;
             }
 
             try
             {
-                var folder = lDir.Parent?.FullName.Replace("Launcher", "");
+                var folder = _lDir.Parent?.FullName.Replace("Launcher", "");
                 var sw = new StreamWriter(folder + @"\start.bat");
                 sw.WriteLine(
                     $"cd {folder} && start Bin64/Launcher.exe /i:{AccountModel.Token} /r:123456 /O /u:3913056 /m:P");
@@ -444,65 +436,65 @@ namespace LauncherIcarus
             MainWindow mainWindow = this;
             try
             {
-                if (mainWindow.fileConfig.GetLanguage() != mainWindow.mainViewModel.Lang &&
-                    mainWindow.mainViewModel.Lang != string.Empty)
+                if (mainWindow._fileConfig.GetLanguage() != mainWindow._mainViewModel.Lang &&
+                    mainWindow._mainViewModel.Lang != string.Empty)
                 {
-                    mainWindow.fileConfig.SetLanguage(mainWindow.mainViewModel.Lang);
-                    HTTPREQ httpreq = new HTTPREQ();
+                    mainWindow._fileConfig.SetLanguage(mainWindow._mainViewModel.Lang);
+                    HttpRequest httpRequest = new HttpRequest();
                     if (!Directory.Exists(Configuration.Default.DownloadDir))
                         Directory.CreateDirectory(Configuration.Default.DownloadDir);
                     ResponseListLauncherFiles listLauncherFiles =
                         JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
-                            await httpreq.GetLauncherTranslateAsync());
+                            await httpRequest.GetLauncherTranslateAsync());
                     if (listLauncherFiles.TotalBytes > 0.0)
                     {
                         double totalDownloaded = 0.0;
                         mainWindow.progressBar.Width = 0.0;
-                        mainWindow.mainViewModel.IsUpdating = true;
+                        mainWindow._mainViewModel.IsUpdating = true;
                         mainWindow.lblDownloadSpeed.Visibility = Visibility.Visible;
                         mainWindow.lblDownloadSpeedQtd.Visibility = Visibility.Visible;
                         mainWindow.lblFileDownloading.Visibility = Visibility.Visible;
                         mainWindow.lblFileDownloadingName.Visibility = Visibility.Visible;
                         foreach (Files file in listLauncherFiles.File)
                         {
-                            if (file.filename == mainWindow.mainViewModel.Lang.ToLower() + ".zip")
+                            if (file.Filename == mainWindow._mainViewModel.Lang.ToLower() + ".zip")
                             {
-                                Label lblTotalQtd = mainWindow.lblTotalQtd;
-                                double num1 = Math.Round(file.size / 1024.0, 2);
-                                string str1 = num1.ToString() + "MB";
-                                lblTotalQtd.Content = (object) str1;
+                                var lblTotalQtd = mainWindow.lblTotalQtd;
+                                var num1 = Math.Round(file.Size / 1024.0, 2);
+                                var str1 = num1 + "MB";
+                                lblTotalQtd.Content = str1;
                                 Label lblAtualQtd = mainWindow.lblAtualQtd;
-                                num1 = Math.Round(file.size / 1024.0, 2);
-                                string str2 = num1.ToString() + "MB";
-                                lblAtualQtd.Content = (object) str2;
-                                int num2 = await mainWindow.DownloadArchiveAsync(file.filename,
-                                    Configuration.Default.DownloadDir, file.url)
+                                num1 = Math.Round(file.Size / 1024.0, 2);
+                                var str2 = num1 + "MB";
+                                lblAtualQtd.Content = str2;
+                                var num2 = await mainWindow.DownloadArchiveAsync(file.Filename,
+                                    Configuration.Default.DownloadDir, file.Url)
                                     ? 1
                                     : 0;
-                                double num3 = file.size / file.size * 656.0;
-                                totalDownloaded += file.size;
-                                mainWindow.progressBar.Width += (double) (int) num3;
+                                var num3 = file.Size / file.Size * 656.0;
+                                totalDownloaded += file.Size;
+                                mainWindow.progressBar.Width += (int) num3;
                                 mainWindow.ExtractFiles();
-                                Label totalAtualizadoQtd = mainWindow.lblTotalAtualizadoQtd;
+                                var totalAtualizadoQtd = mainWindow.lblTotalAtualizadoQtd;
                                 num1 = Math.Round(totalDownloaded / 1024.0, 2);
-                                string str3 = num1.ToString() + "MB";
-                                totalAtualizadoQtd.Content = (object) str3;
+                                var str3 = num1 + "MB";
+                                totalAtualizadoQtd.Content = str3;
                             }
                         }
                     }
 
-                    mainWindow.mainViewModel.IsUpdating = false;
-                    mainWindow.DataContext = (object) mainWindow.mainViewModel;
-                    mainWindow.lblTotalQtd.Content = (object) "0.0MB";
-                    mainWindow.lblTotalAtualizadoQtd.Content = (object) "0.0MB";
-                    mainWindow.lblAtualQtd.Content = (object) "0.0MB";
+                    mainWindow._mainViewModel.IsUpdating = false;
+                    mainWindow.DataContext = mainWindow._mainViewModel;
+                    mainWindow.lblTotalQtd.Content = "0.0MB";
+                    mainWindow.lblTotalAtualizadoQtd.Content = "0.0MB";
+                    mainWindow.lblAtualQtd.Content = "0.0MB";
                     mainWindow.lblDownloadSpeed.Visibility = Visibility.Hidden;
                     mainWindow.lblDownloadSpeedQtd.Visibility = Visibility.Hidden;
                     mainWindow.lblFileDownloading.Visibility = Visibility.Hidden;
                     mainWindow.lblFileDownloadingName.Visibility = Visibility.Hidden;
                 }
                 else
-                    mainWindow.lblMsgStatus.Content = (object) "Escolha um idioma para continuar!";
+                    mainWindow.lblMsgStatus.Content = "Escolha um idioma para continuar!";
             }
             catch (Exception ex)
             {

+ 12 - 12
LauncherIcarus/Model/MainViewModel.cs

@@ -5,37 +5,37 @@
         private bool _isUpdating;
         private bool _isChecking;
         private bool _isLogged;
-        private int _Version;
-        private string _Lang;
+        private int _version;
+        private string _lang;
 
         public bool IsUpdating
         {
-            get => this._isUpdating;
-            set => this.SetProperty<bool>(ref this._isUpdating, value, nameof(IsUpdating));
+            get => _isUpdating;
+            set => SetProperty(ref _isUpdating, value);
         }
 
         public bool IsChecking
         {
-            get => this._isChecking;
-            set => this.SetProperty<bool>(ref this._isChecking, value, nameof(IsChecking));
+            get => _isChecking;
+            set => SetProperty(ref _isChecking, value);
         }
 
         public bool IsLogged
         {
-            get => this._isLogged;
-            set => this.SetProperty<bool>(ref this._isLogged, value, nameof(IsLogged));
+            get => _isLogged;
+            set => SetProperty(ref _isLogged, value);
         }
 
         public int Version
         {
-            get => this._Version;
-            set => this.SetProperty<int>(ref this._Version, value, nameof(Version));
+            get => _version;
+            set => SetProperty(ref _version, value);
         }
 
         public string Lang
         {
-            get => this._Lang;
-            set => this.SetProperty<string>(ref this._Lang, value, nameof(Lang));
+            get => _lang;
+            set => SetProperty(ref _lang, value);
         }
     }
 }

+ 5 - 3
LauncherIcarus/Model/ViewModelBase.cs

@@ -11,11 +11,13 @@ namespace LauncherIcarus.Model
         protected bool SetProperty<T>(ref T field, T newValue, [CallerMemberName] string propertyName = null)
         {
             if (EqualityComparer<T>.Default.Equals(field, newValue))
+            {
                 return false;
+            }
+
             field = newValue;
-            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
-            if (propertyChanged != null)
-                propertyChanged((object) this, new PropertyChangedEventArgs(propertyName));
+            var propertyChanged = PropertyChanged;
+            propertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
             return true;
         }
     }

+ 4 - 4
LauncherIcarus/ResponseModel/Accountinfos.cs

@@ -10,17 +10,17 @@ namespace LauncherIcarus.ResponseModel
 
         [JsonProperty("RegisterTime")] public string RegisterTime { get; set; }
 
-        [JsonProperty("RegisterIP")] public string RegisterIP { get; set; }
+        [JsonProperty("RegisterIP")] public string RegisterIp { get; set; }
 
         [JsonProperty("LastLoginTime")] public string LastLoginTime { get; set; }
 
-        [JsonProperty("LastLoginIP")] public string LastLoginIP { get; set; }
+        [JsonProperty("LastLoginIP")] public string LastLoginIp { get; set; }
 
         [JsonProperty("IsBlocked")] public int IsBlocked { get; set; }
 
-        [JsonProperty("Real_Balance")] public double Real_Balance { get; set; }
+        [JsonProperty("Real_Balance")] public double RealBalance { get; set; }
 
-        [JsonProperty("Bonus_Balance")] public double Bonus_Balance { get; set; }
+        [JsonProperty("Bonus_Balance")] public double BonusBalance { get; set; }
 
         [JsonProperty("BirthDate")] public string BirthDate { get; set; }
 

+ 5 - 5
LauncherIcarus/ResponseModel/Files.cs

@@ -4,14 +4,14 @@ namespace LauncherIcarus.ResponseModel
 {
     public class Files
     {
-        [JsonProperty("filename")] public string filename { get; set; }
+        [JsonProperty("filename")] public string Filename { get; set; }
 
-        [JsonProperty("url")] public string url { get; set; }
+        [JsonProperty("url")] public string Url { get; set; }
 
-        [JsonProperty("version")] public long version { get; set; }
+        [JsonProperty("version")] public long Version { get; set; }
 
-        [JsonProperty("size")] public double size { get; set; }
+        [JsonProperty("size")] public double Size { get; set; }
 
-        [JsonProperty("crc32")] public string crc32 { get; set; }
+        [JsonProperty("crc32")] public string Crc32 { get; set; }
     }
 }

+ 3 - 3
LauncherIcarus/ResponseModel/ResponseLauncherVersion.cs

@@ -4,14 +4,14 @@ namespace LauncherIcarus.ResponseModel
 {
     internal class ResponseLauncherVersion
     {
-        [JsonProperty("id")] public int? id { get; set; }
+        [JsonProperty("id")] public int? Id { get; set; }
 
-        [JsonProperty("User_ID")] public string User_ID { get; set; }
+        [JsonProperty("User_ID")] public string UserId { get; set; }
 
         [JsonProperty("UpdaterVersion")] public int UpdaterVersion { get; set; }
 
         [JsonProperty("UpdatedDate")] public string UpdatedDate { get; set; }
 
-        [JsonProperty("IP")] public string IP { get; set; }
+        [JsonProperty("IP")] public string Ip { get; set; }
     }
 }

+ 1 - 1
LauncherIcarus/ResponseModel/ResponseLogin.cs

@@ -6,7 +6,7 @@ namespace LauncherIcarus.ResponseModel
     {
         [JsonProperty("code")] public int Code { get; set; }
 
-        [JsonProperty("msg")] public string message { get; set; }
+        [JsonProperty("msg")] public string Message { get; set; }
 
         [JsonProperty("token")] public string Token { get; set; }
 

+ 483 - 440
LauncherIcarus/mainwindow.xaml

@@ -1,447 +1,490 @@
 <Window x:Class="LauncherIcarus.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:local="clr-namespace:LauncherIcarus"
         xmlns:local1="clr-namespace:LauncherIcarus.Daemon"
-        xmlns:model="clr-namespace:LauncherIcarus.Model"
         MouseMove="Window_MouseMove" WindowStyle="None" ResizeMode="NoResize" ShowInTaskbar="true"
         WindowStartupLocation="CenterScreen" Title="MainWindow" Height="500" Width="900">
-  <FrameworkElement.Resources>
-    <ImageBrush x:Key="close_icon" ImageSource="Data/Img/close_hover.png" Stretch="Fill"/>
-    <ImageBrush x:Key="minimizer_icon" ImageSource="Data/Img/minimizer_hover.png" Stretch="Fill"/>
-    <ImageBrush x:Key="access_icon" ImageSource="Data/Img/acessar_hover.png" Stretch="Fill"/>
-    <ImageBrush x:Key="start_icon" ImageSource="Data/Img/iniciar_hover.png" Stretch="Fill"/>
-    <ImageBrush x:Key="start_icon_locked" ImageSource="Data/Img/iniciar_bw.png" Stretch="Fill"/>
-    <ImageBrush x:Key="start_icon_updating" ImageSource="Data/Img/atualizando.png" Stretch="Fill"/>
-    <ImageBrush x:Key="start_icon_verifing" ImageSource="Data/Img/verificando.png" Stretch="Fill"/>
-    <ImageBrush x:Key="verify_icon" ImageSource="Data/Img/verificar_hover.png" Stretch="Fill"/>
-    <Style x:Key="FocusVisual">
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate>
-            <Rectangle Margin="2" SnapsToDevicePixels="true"
-                       Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1"
-                       StrokeDashArray="1 2"/>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
-    <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
-    <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
-    <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
-    <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
-    <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
-    <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
-    <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
-    <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
-    <Style x:Key="closeButtonStyle" TargetType="{x:Type Button}">
-      <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
-      <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}"/>
-      <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}"/>
-      <Setter Property="Control.Foreground"
-              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
-      <Setter Property="Control.BorderThickness" Value="1"/>
-      <Setter Property="Control.HorizontalContentAlignment" Value="Center"/>
-      <Setter Property="Control.VerticalContentAlignment" Value="Center"/>
-      <Setter Property="Control.Padding" Value="1"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type Button}">
-            <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
-                    BorderThickness="{TemplateBinding Control.BorderThickness}"
-                    Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
-              <ContentPresenter x:Name="contentPresenter" Focusable="false"
-                                HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
-                                Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
-                                SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
-                                VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="Button.IsDefaulted" Value="true">
-                <Setter TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
-                        Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsMouseOver" Value="true">
-                <Setter TargetName="border" Value="{StaticResource close_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="ButtonBase.IsPressed" Value="true">
-                <Setter TargetName="border" Value="{StaticResource close_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsEnabled" Value="false">
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
-                        Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}" Property="Border.BorderBrush"/>
-                <Setter TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"
-                        Property="TextElement.Foreground"/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style x:Key="minimizerButtonStyle" TargetType="{x:Type Button}">
-      <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
-      <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}"/>
-      <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}"/>
-      <Setter Property="Control.Foreground"
-              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
-      <Setter Property="Control.BorderThickness" Value="1"/>
-      <Setter Property="Control.HorizontalContentAlignment" Value="Center"/>
-      <Setter Property="Control.VerticalContentAlignment" Value="Center"/>
-      <Setter Property="Control.Padding" Value="1"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type Button}">
-            <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
-                    BorderThickness="{TemplateBinding Control.BorderThickness}"
-                    Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
-              <ContentPresenter x:Name="contentPresenter" Focusable="false"
-                                HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
-                                Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
-                                SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
-                                VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="Button.IsDefaulted" Value="true">
-                <Setter TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
-                        Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsMouseOver" Value="true">
-                <Setter TargetName="border" Value="{StaticResource minimizer_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="ButtonBase.IsPressed" Value="true">
-                <Setter TargetName="border" Value="{StaticResource minimizer_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsEnabled" Value="false">
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
-                        Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}" Property="Border.BorderBrush"/>
-                <Setter TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"
-                        Property="TextElement.Foreground"/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style x:Key="accessButtonStyle" TargetType="{x:Type Button}">
-      <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
-      <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}"/>
-      <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}"/>
-      <Setter Property="Control.Foreground"
-              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
-      <Setter Property="Control.BorderThickness" Value="1"/>
-      <Setter Property="Control.HorizontalContentAlignment" Value="Center"/>
-      <Setter Property="Control.VerticalContentAlignment" Value="Center"/>
-      <Setter Property="Control.Padding" Value="1"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type Button}">
-            <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
-                    BorderThickness="{TemplateBinding Control.BorderThickness}"
-                    Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
-              <ContentPresenter x:Name="contentPresenter" Focusable="false"
-                                HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
-                                Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
-                                SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
-                                VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="Button.IsDefaulted" Value="true">
-                <Setter TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
-                        Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsMouseOver" Value="true">
-                <Setter TargetName="border" Value="{StaticResource access_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="ButtonBase.IsPressed" Value="true">
-                <Setter TargetName="border" Value="{StaticResource access_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsEnabled" Value="false">
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
-                        Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}" Property="Border.BorderBrush"/>
-                <Setter TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"
-                        Property="TextElement.Foreground"/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style x:Key="startButtonStyle" TargetType="{x:Type Button}">
-      <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
-      <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}"/>
-      <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}"/>
-      <Setter Property="Control.Foreground"
-              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
-      <Setter Property="Control.BorderThickness" Value="1"/>
-      <Setter Property="Control.HorizontalContentAlignment" Value="Center"/>
-      <Setter Property="Control.VerticalContentAlignment" Value="Center"/>
-      <Setter Property="Control.Padding" Value="1"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type Button}">
-            <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
-                    BorderThickness="{TemplateBinding Control.BorderThickness}"
-                    Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
-              <ContentPresenter x:Name="contentPresenter" Focusable="false"
-                                HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
-                                Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
-                                SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
-                                VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <DataTrigger Value="False" Binding="{Binding Path=IsLogged}">
-                <Setter TargetName="border" Value="{StaticResource start_icon_locked}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}" Property="Border.BorderBrush"/>
-              </DataTrigger>
-              <MultiDataTrigger>
-                <MultiDataTrigger.Conditions>
-                  <Condition Binding="{Binding Path=IsLogged}" Value="true"/>
-                  <Condition Binding="{Binding Path=IsUpdating}" Value="true"/>
-                </MultiDataTrigger.Conditions>
-                <Setter TargetName="border" Value="{StaticResource start_icon_updating}" Property="Border.Background"/>
-              </MultiDataTrigger>
-              <MultiDataTrigger>
-                <MultiDataTrigger.Conditions>
-                  <Condition Binding="{Binding Path=IsLogged}" Value="true"/>
-                  <Condition Binding="{Binding Path=IsChecking}" Value="true"/>
-                </MultiDataTrigger.Conditions>
-                <Setter TargetName="border" Value="{StaticResource start_icon_verifing}" Property="Border.Background"/>
-              </MultiDataTrigger>
-              <MultiDataTrigger>
-                <MultiDataTrigger.Conditions>
-                  <Condition Binding="{Binding Path=IsLogged}" Value="true"/>
-                  <Condition Binding="{Binding Path=IsUpdating}" Value="false"/>
-                  <Condition Binding="{Binding Path=IsChecking}" Value="false"/>
-                  <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsMouseOver}" Value="True"/>
-                </MultiDataTrigger.Conditions>
-                <Setter TargetName="border" Value="{StaticResource start_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}" Property="Border.BorderBrush"/>
-              </MultiDataTrigger>
-              <MultiDataTrigger>
-                <MultiDataTrigger.Conditions>
-                  <Condition Binding="{Binding Path=IsLogged}" Value="true"/>
-                  <Condition Binding="{Binding Path=IsUpdating}" Value="false"/>
-                  <Condition Binding="{Binding Path=IsChecking}" Value="false"/>
-                  <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsPressed}" Value="True"/>
-                </MultiDataTrigger.Conditions>
-                <Setter TargetName="border" Value="{StaticResource start_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}" Property="Border.BorderBrush"/>
-              </MultiDataTrigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style x:Key="verifyButtonStyle" TargetType="{x:Type Button}">
-      <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
-      <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}"/>
-      <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}"/>
-      <Setter Property="Control.Foreground"
-              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
-      <Setter Property="Control.BorderThickness" Value="1"/>
-      <Setter Property="Control.HorizontalContentAlignment" Value="Center"/>
-      <Setter Property="Control.VerticalContentAlignment" Value="Center"/>
-      <Setter Property="Control.Padding" Value="1"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type Button}">
-            <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
-                    BorderThickness="{TemplateBinding Control.BorderThickness}"
-                    Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
-              <ContentPresenter x:Name="contentPresenter" Focusable="false"
-                                HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
-                                Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
-                                SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
-                                VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="Button.IsDefaulted" Value="true">
-                <Setter TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
-                        Property="Border.BorderBrush"/>
-              </Trigger>
-              <MultiDataTrigger>
-                <MultiDataTrigger.Conditions>
-                  <Condition Binding="{Binding Path=IsLogged}" Value="true"/>
-                  <Condition Binding="{Binding Path=IsUpdating}" Value="false"/>
-                  <Condition Binding="{Binding Path=IsChecking}" Value="false"/>
-                  <Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsMouseOver}" Value="True"/>
-                </MultiDataTrigger.Conditions>
-                <Setter TargetName="border" Value="{StaticResource verify_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}" Property="Border.BorderBrush"/>
-              </MultiDataTrigger>
-              <Trigger Property="ButtonBase.IsPressed" Value="true">
-                <Setter TargetName="border" Value="{StaticResource verify_icon}" Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}" Property="Border.BorderBrush"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsEnabled" Value="false">
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
-                        Property="Border.Background"/>
-                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}" Property="Border.BorderBrush"/>
-                <Setter TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"
-                        Property="TextElement.Foreground"/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style TargetType="{x:Type TextBox}">
-      <Setter Property="Control.Padding" Value="5"/>
-      <Setter Property="FrameworkElement.Margin" Value="5"/>
-      <Setter Property="Control.FontSize" Value="15"/>
-      <Setter Property="FrameworkElement.MinHeight" Value="20"/>
-      <Setter Property="Control.Foreground" Value="White"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type TextBox}">
-            <Border x:Name="border" CornerRadius="2" BorderBrush="#000" BorderThickness="1" Background="Transparent">
-              <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden"
-                            VerticalScrollBarVisibility="Hidden"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="UIElement.IsMouseOver" Value="true">
-                <Setter TargetName="border" Property="Border.BorderBrush" Value="#909090"/>
-                <Setter Property="Control.Foreground" Value="White"/>
-                <Setter Property="Control.FontWeight" Value="Bold"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsFocused" Value="true">
-                <Setter Property="Control.Foreground" Value="White"/>
-                <Setter TargetName="border" Property="Border.BorderBrush" Value="White"/>
-                <Setter Property="TextBox.Text" Value=""/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-    <Style TargetType="{x:Type PasswordBox}">
-      <Setter Property="Control.Padding" Value="5"/>
-      <Setter Property="FrameworkElement.Margin" Value="5"/>
-      <Setter Property="Control.FontSize" Value="15"/>
-      <Setter Property="FrameworkElement.MinHeight" Value="20"/>
-      <Setter Property="Control.Foreground" Value="White"/>
-      <Setter Property="Control.Template">
-        <Setter.Value>
-          <ControlTemplate TargetType="{x:Type PasswordBox}">
-            <Border x:Name="border" CornerRadius="2" BorderBrush="#000" BorderThickness="1" Background="Transparent">
-              <ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden"
-                            VerticalScrollBarVisibility="Hidden"/>
-            </Border>
-            <ControlTemplate.Triggers>
-              <Trigger Property="UIElement.IsMouseOver" Value="true">
-                <Setter TargetName="border" Property="Border.BorderBrush" Value="#909090"/>
-                <Setter Property="Control.Foreground" Value="White"/>
-                <Setter Property="Control.FontWeight" Value="Bold"/>
-              </Trigger>
-              <Trigger Property="UIElement.IsFocused" Value="true">
-                <Setter Property="Control.Foreground" Value="White"/>
-                <Setter TargetName="border" Property="Border.BorderBrush" Value="White"/>
-              </Trigger>
-            </ControlTemplate.Triggers>
-          </ControlTemplate>
-        </Setter.Value>
-      </Setter>
-    </Style>
-  </FrameworkElement.Resources>
-  <Grid>
-    <Grid.ColumnDefinitions>
-      <ColumnDefinition Width="55*"/>
-      <ColumnDefinition Width="268*"/>
-      <ColumnDefinition Width="422*"/>
-    </Grid.ColumnDefinitions>
-    <Panel.Background>
-      <ImageBrush ImageSource="Data/Img/back_img.png" Stretch="Fill"/>
-    </Panel.Background>
-    <Button Click="buttonClose_Click" x:Name="buttonClose" Panel.ZIndex="1000" BorderThickness="0"
-            Style="{DynamicResource closeButtonStyle}" Grid.Column="2" Margin="470,6,13,467"
-            RenderTransformOrigin="0.486,0.139">
-      <Control.Background>
-        <ImageBrush ImageSource="Data/Img/close.png" Stretch="Fill"/>
-      </Control.Background>
-    </Button>
-    <Button Click="buttonMinimizer_Click" x:Name="buttonMinimizer" Panel.ZIndex="1000" BorderThickness="0"
-            Style="{DynamicResource minimizerButtonStyle}" Grid.Column="2" Margin="435,6,48,467">
-      <Control.Background>
-        <ImageBrush ImageSource="Data/Img/minimizer.png" Stretch="Fill"/>
-      </Control.Background>
-    </Button>
-    <Button Click="buttonAccess_Click" x:Name="buttonAccess" Panel.ZIndex="1000" BorderThickness="0"
-            Style="{DynamicResource accessButtonStyle}" Grid.Column="1" Margin="177,233,476,223"
-            Grid.ColumnSpan="2">
-      <Control.Background>
-        <ImageBrush ImageSource="Data/Img/acessar.png" Stretch="Fill"/>
-      </Control.Background>
-    </Button>
-    <Button Click="buttonStart_Click" x:Name="buttonStart" Panel.ZIndex="1000" BorderThickness="0"
-            Style="{DynamicResource startButtonStyle}" Grid.Column="2" Margin="335,431,15,16">
-      <Control.Background>
-        <ImageBrush ImageSource="Data/Img/iniciar.png" Stretch="Fill"/>
-      </Control.Background>
-    </Button>
-    <Button Click="buttonVerify_Click" x:Name="buttonVerify" Panel.ZIndex="1000" BorderThickness="0"
-            Style="{DynamicResource verifyButtonStyle}" Grid.Column="2" Margin="202,437,220,39">
-      <Control.Background>
-        <ImageBrush ImageSource="Data/Img/verificar.png" Stretch="Fill"/>
-      </Control.Background>
-    </Button>
-    <Image Name="inputUsername" Source="Data/Img/input.png" Stretch="Fill" Grid.Column="1"
-           Margin="32,111,476,350" Grid.ColumnSpan="2"/>
-    <Image Name="inputPassword" Source="Data/Img/input.png" Stretch="Fill" Grid.Column="1"
-           Margin="32,179,476,281" Grid.ColumnSpan="2"/>
-    <TextBox x:Name="textUsername" Background="Transparent" BorderBrush="Transparent" TextAlignment="Center"
-             Text="" local1:SelectAllFocusBehavior.Enable="true" HorizontalAlignment="Left" Height="39"
-             Margin="32,111,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Padding="5" Width="326"
-             Grid.ColumnSpan="2" Grid.Column="1"/>
-    <PasswordBox x:Name="textPassword" PasswordChar="*" HorizontalContentAlignment="Center" Height="39"
-                 local1:SelectAllFocusBehavior.Enable="true" MaxLength="50" Grid.Column="1" Margin="32,179,476,282"
-                 Grid.ColumnSpan="2"/>
-    <Image x:Name="progressBar" Stretch="Fill" Source="Data/Img/update_bar.png" HorizontalAlignment="Left"
-           VerticalAlignment="Top" Height="6" Width="656" Grid.ColumnSpan="3" Margin="24,478,0,0"/>
-    <Label x:Name="lblWellcome" Content="Bem vindo Quenio" Grid.Column="1" HorizontalAlignment="Left"
-           Margin="10,6,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE" FontWeight="Bold"/>
-    <Label x:Name="lblTotalQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
-           Margin="32,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE"/>
-    <Label x:Name="label_Copy1" Content="Tamanho total:" HorizontalAlignment="Left" Margin="17,437,0,0"
-           VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2"/>
-    <Label x:Name="lblAtualQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
-           Margin="254,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE"/>
-    <Label x:Name="label_Copy3" Content="Tamanho do arquivo atual:" HorizontalAlignment="Left"
-           Margin="111,437,0,0" VerticalAlignment="Top" Foreground="#FF999999" Grid.Column="1"/>
-    <Label x:Name="label_Copy4" Content="Tamanho atualizado:" HorizontalAlignment="Left" Margin="10,437,0,0"
-           VerticalAlignment="Top" Foreground="#FF999999" Grid.Column="2"/>
-    <Label x:Name="lblTotalAtualizadoQtd" Content="17000MB" Grid.Column="2" HorizontalAlignment="Left"
-           Margin="121,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE"/>
-    <Label x:Name="lblMsgStatus" Foreground="Wheat" HorizontalAlignment="Center"
-           HorizontalContentAlignment="Center" Margin="32,324,473,0" VerticalAlignment="Top" Width="329"
-           Grid.ColumnSpan="2" Grid.Column="1"/>
-    <Label x:Name="lblDownloadSpeedQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
-           Margin="82,478,0,-4" VerticalAlignment="Top" Foreground="#FFF3EEEE"/>
-    <Label x:Name="lblDownloadSpeed" Content="Fazendo o download á:" HorizontalAlignment="Left"
-           Margin="17,478,0,-4" VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2"/>
-    <Label x:Name="lblFileDownloadingName" Content="----" Grid.Column="2" HorizontalAlignment="Left"
-           Margin="94,478,0,-4" VerticalAlignment="Top" Foreground="#FFF3EEEE"/>
-    <WebBrowser x:Name="wbSlide" HorizontalAlignment="Left" Height="230" Margin="17,82,0,0" VerticalAlignment="Top"
-                Width="467" Grid.ColumnSpan="3"/>
-    <Label x:Name="lblFileDownloading" Content="Fazendo o download do arquivo:" HorizontalAlignment="Left"
-           Margin="234,478,0,-4" VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2"
-           Grid.Column="1"/>
-    <ComboBox DropDownClosed="cmbLanguage_DropDownClosed" x:Name="cmbLanguage" Grid.Column="2"
-              HorizontalAlignment="Left" Margin="377,48,0,0" VerticalAlignment="Top" Width="120"
-              Text="{Binding Path=Lang}">
-      <ComboBoxItem Content="PT-BR" IsSelected="true"/>
-      <ComboBoxItem Content="ENG"/>
-    </ComboBox>
-  </Grid>
+    <FrameworkElement.Resources>
+        <ImageBrush x:Key="close_icon" ImageSource="Data/Img/close_hover.png" Stretch="Fill" />
+        <ImageBrush x:Key="minimizer_icon" ImageSource="Data/Img/minimizer_hover.png" Stretch="Fill" />
+        <ImageBrush x:Key="access_icon" ImageSource="Data/Img/acessar_hover.png" Stretch="Fill" />
+        <ImageBrush x:Key="start_icon" ImageSource="Data/Img/iniciar_hover.png" Stretch="Fill" />
+        <ImageBrush x:Key="start_icon_locked" ImageSource="Data/Img/iniciar_bw.png" Stretch="Fill" />
+        <ImageBrush x:Key="start_icon_updating" ImageSource="Data/Img/atualizando.png" Stretch="Fill" />
+        <ImageBrush x:Key="start_icon_verifing" ImageSource="Data/Img/verificando.png" Stretch="Fill" />
+        <ImageBrush x:Key="verify_icon" ImageSource="Data/Img/verificar_hover.png" Stretch="Fill" />
+        <Style x:Key="FocusVisual">
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate>
+                        <Rectangle Margin="2" SnapsToDevicePixels="true"
+                                   Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
+                                   StrokeThickness="1"
+                                   StrokeDashArray="1 2" />
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD" />
+        <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070" />
+        <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD" />
+        <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1" />
+        <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6" />
+        <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B" />
+        <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4" />
+        <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5" />
+        <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383" />
+        <Style x:Key="closeButtonStyle" TargetType="{x:Type Button}">
+            <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}" />
+            <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}" />
+            <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}" />
+            <Setter Property="Control.Foreground"
+                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
+            <Setter Property="Control.BorderThickness" Value="1" />
+            <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
+            <Setter Property="Control.VerticalContentAlignment" Value="Center" />
+            <Setter Property="Control.Padding" Value="1" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Button}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
+                                BorderThickness="{TemplateBinding Control.BorderThickness}"
+                                Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
+                            <ContentPresenter x:Name="contentPresenter" Focusable="false"
+                                              HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
+                                              Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
+                                              SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
+                                              VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="Button.IsDefaulted" Value="true">
+                                <Setter TargetName="border"
+                                        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsMouseOver" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource close_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="ButtonBase.IsPressed" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource close_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsEnabled" Value="false">
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}"
+                                        Property="Border.BorderBrush" />
+                                <Setter TargetName="contentPresenter"
+                                        Value="{StaticResource Button.Disabled.Foreground}"
+                                        Property="TextElement.Foreground" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="minimizerButtonStyle" TargetType="{x:Type Button}">
+            <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}" />
+            <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}" />
+            <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}" />
+            <Setter Property="Control.Foreground"
+                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
+            <Setter Property="Control.BorderThickness" Value="1" />
+            <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
+            <Setter Property="Control.VerticalContentAlignment" Value="Center" />
+            <Setter Property="Control.Padding" Value="1" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Button}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
+                                BorderThickness="{TemplateBinding Control.BorderThickness}"
+                                Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
+                            <ContentPresenter x:Name="contentPresenter" Focusable="false"
+                                              HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
+                                              Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
+                                              SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
+                                              VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="Button.IsDefaulted" Value="true">
+                                <Setter TargetName="border"
+                                        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsMouseOver" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource minimizer_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="ButtonBase.IsPressed" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource minimizer_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsEnabled" Value="false">
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}"
+                                        Property="Border.BorderBrush" />
+                                <Setter TargetName="contentPresenter"
+                                        Value="{StaticResource Button.Disabled.Foreground}"
+                                        Property="TextElement.Foreground" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="accessButtonStyle" TargetType="{x:Type Button}">
+            <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}" />
+            <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}" />
+            <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}" />
+            <Setter Property="Control.Foreground"
+                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
+            <Setter Property="Control.BorderThickness" Value="1" />
+            <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
+            <Setter Property="Control.VerticalContentAlignment" Value="Center" />
+            <Setter Property="Control.Padding" Value="1" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Button}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
+                                BorderThickness="{TemplateBinding Control.BorderThickness}"
+                                Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
+                            <ContentPresenter x:Name="contentPresenter" Focusable="false"
+                                              HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
+                                              Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
+                                              SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
+                                              VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="Button.IsDefaulted" Value="true">
+                                <Setter TargetName="border"
+                                        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsMouseOver" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource access_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="ButtonBase.IsPressed" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource access_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsEnabled" Value="false">
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}"
+                                        Property="Border.BorderBrush" />
+                                <Setter TargetName="contentPresenter"
+                                        Value="{StaticResource Button.Disabled.Foreground}"
+                                        Property="TextElement.Foreground" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="startButtonStyle" TargetType="{x:Type Button}">
+            <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}" />
+            <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}" />
+            <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}" />
+            <Setter Property="Control.Foreground"
+                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
+            <Setter Property="Control.BorderThickness" Value="1" />
+            <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
+            <Setter Property="Control.VerticalContentAlignment" Value="Center" />
+            <Setter Property="Control.Padding" Value="1" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Button}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
+                                BorderThickness="{TemplateBinding Control.BorderThickness}"
+                                Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
+                            <ContentPresenter x:Name="contentPresenter" Focusable="false"
+                                              HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
+                                              Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
+                                              SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
+                                              VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <DataTrigger Value="False" Binding="{Binding Path=IsLogged}">
+                                <Setter TargetName="border" Value="{StaticResource start_icon_locked}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}"
+                                        Property="Border.BorderBrush" />
+                            </DataTrigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsLogged}" Value="true" />
+                                    <Condition Binding="{Binding Path=IsUpdating}" Value="true" />
+                                </MultiDataTrigger.Conditions>
+                                <Setter TargetName="border" Value="{StaticResource start_icon_updating}"
+                                        Property="Border.Background" />
+                            </MultiDataTrigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsLogged}" Value="true" />
+                                    <Condition Binding="{Binding Path=IsChecking}" Value="true" />
+                                </MultiDataTrigger.Conditions>
+                                <Setter TargetName="border" Value="{StaticResource start_icon_verifing}"
+                                        Property="Border.Background" />
+                            </MultiDataTrigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsLogged}" Value="true" />
+                                    <Condition Binding="{Binding Path=IsUpdating}" Value="false" />
+                                    <Condition Binding="{Binding Path=IsChecking}" Value="false" />
+                                    <Condition
+                                        Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsMouseOver}"
+                                        Value="True" />
+                                </MultiDataTrigger.Conditions>
+                                <Setter TargetName="border" Value="{StaticResource start_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}"
+                                        Property="Border.BorderBrush" />
+                            </MultiDataTrigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsLogged}" Value="true" />
+                                    <Condition Binding="{Binding Path=IsUpdating}" Value="false" />
+                                    <Condition Binding="{Binding Path=IsChecking}" Value="false" />
+                                    <Condition
+                                        Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsPressed}"
+                                        Value="True" />
+                                </MultiDataTrigger.Conditions>
+                                <Setter TargetName="border" Value="{StaticResource start_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}"
+                                        Property="Border.BorderBrush" />
+                            </MultiDataTrigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style x:Key="verifyButtonStyle" TargetType="{x:Type Button}">
+            <Setter Property="FrameworkElement.FocusVisualStyle" Value="{StaticResource FocusVisual}" />
+            <Setter Property="Control.Background" Value="{StaticResource Button.Static.Background}" />
+            <Setter Property="Control.BorderBrush" Value="{StaticResource Button.Static.Border}" />
+            <Setter Property="Control.Foreground"
+                    Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
+            <Setter Property="Control.BorderThickness" Value="1" />
+            <Setter Property="Control.HorizontalContentAlignment" Value="Center" />
+            <Setter Property="Control.VerticalContentAlignment" Value="Center" />
+            <Setter Property="Control.Padding" Value="1" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type Button}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding Control.BorderBrush}"
+                                BorderThickness="{TemplateBinding Control.BorderThickness}"
+                                Background="{TemplateBinding Control.Background}" SnapsToDevicePixels="true">
+                            <ContentPresenter x:Name="contentPresenter" Focusable="false"
+                                              HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
+                                              Margin="{TemplateBinding Control.Padding}" RecognizesAccessKey="true"
+                                              SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
+                                              VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="Button.IsDefaulted" Value="true">
+                                <Setter TargetName="border"
+                                        Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <MultiDataTrigger>
+                                <MultiDataTrigger.Conditions>
+                                    <Condition Binding="{Binding Path=IsLogged}" Value="true" />
+                                    <Condition Binding="{Binding Path=IsUpdating}" Value="false" />
+                                    <Condition Binding="{Binding Path=IsChecking}" Value="false" />
+                                    <Condition
+                                        Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsMouseOver}"
+                                        Value="True" />
+                                </MultiDataTrigger.Conditions>
+                                <Setter TargetName="border" Value="{StaticResource verify_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.MouseOver.Border}"
+                                        Property="Border.BorderBrush" />
+                            </MultiDataTrigger>
+                            <Trigger Property="ButtonBase.IsPressed" Value="true">
+                                <Setter TargetName="border" Value="{StaticResource verify_icon}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Pressed.Border}"
+                                        Property="Border.BorderBrush" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsEnabled" Value="false">
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Background}"
+                                        Property="Border.Background" />
+                                <Setter TargetName="border" Value="{StaticResource Button.Disabled.Border}"
+                                        Property="Border.BorderBrush" />
+                                <Setter TargetName="contentPresenter"
+                                        Value="{StaticResource Button.Disabled.Foreground}"
+                                        Property="TextElement.Foreground" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style TargetType="{x:Type TextBox}">
+            <Setter Property="Control.Padding" Value="5" />
+            <Setter Property="FrameworkElement.Margin" Value="5" />
+            <Setter Property="Control.FontSize" Value="15" />
+            <Setter Property="FrameworkElement.MinHeight" Value="20" />
+            <Setter Property="Control.Foreground" Value="White" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TextBox}">
+                        <Border x:Name="border" CornerRadius="2" BorderBrush="#000" BorderThickness="1"
+                                Background="Transparent">
+                            <ScrollViewer x:Name="PART_ContentHost" Focusable="false"
+                                          HorizontalScrollBarVisibility="Hidden"
+                                          VerticalScrollBarVisibility="Hidden" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="UIElement.IsMouseOver" Value="true">
+                                <Setter TargetName="border" Property="Border.BorderBrush" Value="#909090" />
+                                <Setter Property="Control.Foreground" Value="White" />
+                                <Setter Property="Control.FontWeight" Value="Bold" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsFocused" Value="true">
+                                <Setter Property="Control.Foreground" Value="White" />
+                                <Setter TargetName="border" Property="Border.BorderBrush" Value="White" />
+                                <Setter Property="TextBox.Text" Value="" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+        <Style TargetType="{x:Type PasswordBox}">
+            <Setter Property="Control.Padding" Value="5" />
+            <Setter Property="FrameworkElement.Margin" Value="5" />
+            <Setter Property="Control.FontSize" Value="15" />
+            <Setter Property="FrameworkElement.MinHeight" Value="20" />
+            <Setter Property="Control.Foreground" Value="White" />
+            <Setter Property="Control.Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type PasswordBox}">
+                        <Border x:Name="border" CornerRadius="2" BorderBrush="#000" BorderThickness="1"
+                                Background="Transparent">
+                            <ScrollViewer x:Name="PART_ContentHost" Focusable="false"
+                                          HorizontalScrollBarVisibility="Hidden"
+                                          VerticalScrollBarVisibility="Hidden" />
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="UIElement.IsMouseOver" Value="true">
+                                <Setter TargetName="border" Property="Border.BorderBrush" Value="#909090" />
+                                <Setter Property="Control.Foreground" Value="White" />
+                                <Setter Property="Control.FontWeight" Value="Bold" />
+                            </Trigger>
+                            <Trigger Property="UIElement.IsFocused" Value="true">
+                                <Setter Property="Control.Foreground" Value="White" />
+                                <Setter TargetName="border" Property="Border.BorderBrush" Value="White" />
+                            </Trigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+        </Style>
+    </FrameworkElement.Resources>
+    <Grid>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="55*" />
+            <ColumnDefinition Width="268*" />
+            <ColumnDefinition Width="422*" />
+        </Grid.ColumnDefinitions>
+        <Panel.Background>
+            <ImageBrush ImageSource="Data/Img/back_img.png" Stretch="Fill" />
+        </Panel.Background>
+        <Button Click="buttonClose_Click" x:Name="buttonClose" Panel.ZIndex="1000" BorderThickness="0"
+                Style="{DynamicResource closeButtonStyle}" Grid.Column="2" Margin="470,6,13,467"
+                RenderTransformOrigin="0.486,0.139">
+            <Control.Background>
+                <ImageBrush ImageSource="Data/Img/close.png" Stretch="Fill" />
+            </Control.Background>
+        </Button>
+        <Button Click="buttonMinimizer_Click" x:Name="buttonMinimizer" Panel.ZIndex="1000" BorderThickness="0"
+                Style="{DynamicResource minimizerButtonStyle}" Grid.Column="2" Margin="435,6,48,467">
+            <Control.Background>
+                <ImageBrush ImageSource="Data/Img/minimizer.png" Stretch="Fill" />
+            </Control.Background>
+        </Button>
+        <Button Click="buttonAccess_Click" x:Name="buttonAccess" Panel.ZIndex="1000" BorderThickness="0"
+                Style="{DynamicResource accessButtonStyle}" Grid.Column="1" Margin="177,233,476,223"
+                Grid.ColumnSpan="2">
+            <Control.Background>
+                <ImageBrush ImageSource="Data/Img/acessar.png" Stretch="Fill" />
+            </Control.Background>
+        </Button>
+        <Button Click="buttonStart_Click" x:Name="buttonStart" Panel.ZIndex="1000" BorderThickness="0"
+                Style="{DynamicResource startButtonStyle}" Grid.Column="2" Margin="335,431,15,16">
+            <Control.Background>
+                <ImageBrush ImageSource="Data/Img/iniciar.png" Stretch="Fill" />
+            </Control.Background>
+        </Button>
+        <Button Click="buttonVerify_Click" x:Name="buttonVerify" Panel.ZIndex="1000" BorderThickness="0"
+                Style="{DynamicResource verifyButtonStyle}" Grid.Column="2" Margin="202,437,220,39">
+            <Control.Background>
+                <ImageBrush ImageSource="Data/Img/verificar.png" Stretch="Fill" />
+            </Control.Background>
+        </Button>
+        <Image Name="inputUsername" Source="Data/Img/input.png" Stretch="Fill" Grid.Column="1"
+               Margin="32,111,476,350" Grid.ColumnSpan="2" />
+        <Image Name="inputPassword" Source="Data/Img/input.png" Stretch="Fill" Grid.Column="1"
+               Margin="32,179,476,281" Grid.ColumnSpan="2" />
+        <TextBox x:Name="textUsername" Background="Transparent" BorderBrush="Transparent" TextAlignment="Center"
+                 Text="" local1:SelectAllFocusBehavior.Enable="true" HorizontalAlignment="Left" Height="39"
+                 Margin="32,111,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Padding="5" Width="326"
+                 Grid.ColumnSpan="2" Grid.Column="1" />
+        <PasswordBox x:Name="textPassword" PasswordChar="*" HorizontalContentAlignment="Center" Height="39"
+                     local1:SelectAllFocusBehavior.Enable="true" MaxLength="50" Grid.Column="1" Margin="32,179,476,282"
+                     Grid.ColumnSpan="2" />
+        <Image x:Name="progressBar" Stretch="Fill" Source="Data/Img/update_bar.png" HorizontalAlignment="Left"
+               VerticalAlignment="Top" Height="6" Width="656" Grid.ColumnSpan="3" Margin="24,478,0,0" />
+        <Label x:Name="lblWellcome" Content="Bem vindo Quenio" Grid.Column="1" HorizontalAlignment="Left"
+               Margin="10,6,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE" FontWeight="Bold" />
+        <Label x:Name="lblTotalQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
+               Margin="32,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE" />
+        <Label x:Name="label_Copy1" Content="Tamanho total:" HorizontalAlignment="Left" Margin="17,437,0,0"
+               VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2" />
+        <Label x:Name="lblAtualQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
+               Margin="254,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE" />
+        <Label x:Name="label_Copy3" Content="Tamanho do arquivo atual:" HorizontalAlignment="Left"
+               Margin="111,437,0,0" VerticalAlignment="Top" Foreground="#FF999999" Grid.Column="1" />
+        <Label x:Name="label_Copy4" Content="Tamanho atualizado:" HorizontalAlignment="Left" Margin="10,437,0,0"
+               VerticalAlignment="Top" Foreground="#FF999999" Grid.Column="2" />
+        <Label x:Name="lblTotalAtualizadoQtd" Content="17000MB" Grid.Column="2" HorizontalAlignment="Left"
+               Margin="121,437,0,0" VerticalAlignment="Top" Foreground="#FFF3EEEE" />
+        <Label x:Name="lblMsgStatus" Foreground="Wheat" HorizontalAlignment="Center"
+               HorizontalContentAlignment="Center" Margin="32,324,473,0" VerticalAlignment="Top" Width="329"
+               Grid.ColumnSpan="2" Grid.Column="1" />
+        <Label x:Name="lblDownloadSpeedQtd" Content="17000MB" Grid.Column="1" HorizontalAlignment="Left"
+               Margin="82,478,0,-4" VerticalAlignment="Top" Foreground="#FFF3EEEE" />
+        <Label x:Name="lblDownloadSpeed" Content="Fazendo o download á:" HorizontalAlignment="Left"
+               Margin="17,478,0,-4" VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2" />
+        <Label x:Name="lblFileDownloadingName" Content="----" Grid.Column="2" HorizontalAlignment="Left"
+               Margin="94,478,0,-4" VerticalAlignment="Top" Foreground="#FFF3EEEE" />
+        <WebBrowser x:Name="wbSlide" HorizontalAlignment="Left" Height="230" Margin="17,82,0,0" VerticalAlignment="Top"
+                    Width="467" Grid.ColumnSpan="3" />
+        <Label x:Name="lblFileDownloading" Content="Fazendo o download do arquivo:" HorizontalAlignment="Left"
+               Margin="234,478,0,-4" VerticalAlignment="Top" Foreground="#FF999999" Grid.ColumnSpan="2"
+               Grid.Column="1" />
+        <ComboBox DropDownClosed="cmbLanguage_DropDownClosed" x:Name="cmbLanguage" Grid.Column="2"
+                  HorizontalAlignment="Left" Margin="377,48,0,0" VerticalAlignment="Top" Width="120"
+                  Text="{Binding Path=Lang}">
+            <ComboBoxItem Content="PT-BR" IsSelected="true" />
+            <ComboBoxItem Content="ENG" />
+        </ComboBox>
+    </Grid>
 </Window>

+ 0 - 62
LauncherIcarus/obj/Debug/GeneratedInternalTypeHelper.g.cs

@@ -1,62 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     Этот код создан программой.
-//     Исполняемая версия:4.0.30319.42000
-//
-//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
-//     повторной генерации кода.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace XamlGeneratedNamespace {
-    
-    
-    /// <summary>
-    /// GeneratedInternalTypeHelper
-    /// </summary>
-    [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-    public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper {
-        
-        /// <summary>
-        /// CreateInstance
-        /// </summary>
-        protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) {
-            return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic) 
-                            | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture);
-        }
-        
-        /// <summary>
-        /// GetPropertyValue
-        /// </summary>
-        protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) {
-            return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture);
-        }
-        
-        /// <summary>
-        /// SetPropertyValue
-        /// </summary>
-        protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) {
-            propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture);
-        }
-        
-        /// <summary>
-        /// CreateDelegate
-        /// </summary>
-        protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) {
-            return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod 
-                            | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] {
-                        delegateType,
-                        handler}, null)));
-        }
-        
-        /// <summary>
-        /// AddEventHandler
-        /// </summary>
-        protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) {
-            eventInfo.AddEventHandler(target, handler);
-        }
-    }
-}
-

BIN
LauncherIcarus/obj/Debug/LauncherIcarus.Properties.Resources.resources


BIN
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.AssemblyReference.cache


+ 0 - 0
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.CopyComplete


+ 0 - 1
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.CoreCompileInputs.cache

@@ -1 +0,0 @@
-06426b5156282686637ba54025cb74ce381d9078

+ 0 - 17
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.FileListAbsolute.txt

@@ -1,17 +0,0 @@
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.csproj.AssemblyReference.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\mainwindow.g.cs
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\GeneratedInternalTypeHelper.g.cs
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus_MarkupCompile.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus_MarkupCompile.lref
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.csproj.SuggestedBindingRedirects.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.exe
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.pdb
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\bin\Debug\LauncherIcarus.exe
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\bin\Debug\LauncherIcarus.pdb
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\bin\Debug\Newtonsoft.Json.dll
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\mainwindow.baml
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.g.resources
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.Properties.Resources.resources
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.csproj.GenerateResource.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.csproj.CoreCompileInputs.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\LauncherIcarus.csproj.CopyComplete

BIN
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.GenerateResource.cache


+ 0 - 0
LauncherIcarus/obj/Debug/LauncherIcarus.csproj.SuggestedBindingRedirects.cache


BIN
LauncherIcarus/obj/Debug/LauncherIcarus.exe


BIN
LauncherIcarus/obj/Debug/LauncherIcarus.g.resources


BIN
LauncherIcarus/obj/Debug/LauncherIcarus.pdb


+ 0 - 20
LauncherIcarus/obj/Debug/LauncherIcarus_MarkupCompile.cache

@@ -1,20 +0,0 @@
-LauncherIcarus
-
-
-winexe
-C#
-.cs
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\obj\Debug\
-LauncherIcarus
-none
-false
-DEBUG;TRACE
-
-11150301917
-
-21-1820941277
-11370672440
-mainwindow.xaml;
-
-False
-

+ 0 - 4
LauncherIcarus/obj/Debug/LauncherIcarus_MarkupCompile.lref

@@ -1,4 +0,0 @@
-
-
-FD:\Icarus\projeto launcher\projeto launcher\launcher\LauncherIcarus\mainwindow.xaml;;
-

BIN
LauncherIcarus/obj/Debug/mainwindow.baml


+ 0 - 395
LauncherIcarus/obj/Debug/mainwindow.g.cs

@@ -1,395 +0,0 @@
-#pragma checksum "..\..\mainwindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D08DFFC073B33285D95B227F27B09061B04EF4704A3D4A96E2C943378754AB44"
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     Этот код создан программой.
-//     Исполняемая версия:4.0.30319.42000
-//
-//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
-//     повторной генерации кода.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-using LauncherIcarus;
-using LauncherIcarus.Daemon;
-using LauncherIcarus.Model;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace LauncherIcarus {
-    
-    
-    /// <summary>
-    /// MainWindow
-    /// </summary>
-    public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-        
-        
-        #line 367 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Button buttonClose;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 374 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Button buttonMinimizer;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 380 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Button buttonAccess;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 387 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Button buttonStart;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 393 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Button buttonVerify;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 399 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Image inputUsername;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 401 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Image inputPassword;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 403 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.TextBox textUsername;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 407 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.PasswordBox textPassword;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 410 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Image progressBar;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 412 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblWellcome;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 414 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblTotalQtd;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 416 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label label_Copy1;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 418 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblAtualQtd;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 420 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label label_Copy3;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 422 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label label_Copy4;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 424 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblTotalAtualizadoQtd;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 426 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblMsgStatus;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 429 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblDownloadSpeedQtd;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 431 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblDownloadSpeed;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 433 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblFileDownloadingName;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 435 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.WebBrowser wbSlide;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 437 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Label lblFileDownloading;
-        
-        #line default
-        #line hidden
-        
-        
-        #line 440 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.ComboBox cmbLanguage;
-        
-        #line default
-        #line hidden
-        
-        private bool _contentLoaded;
-        
-        /// <summary>
-        /// InitializeComponent
-        /// </summary>
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        public void InitializeComponent() {
-            if (_contentLoaded) {
-                return;
-            }
-            _contentLoaded = true;
-            System.Uri resourceLocater = new System.Uri("/LauncherIcarus;component/mainwindow.xaml", System.UriKind.Relative);
-            
-            #line 1 "..\..\mainwindow.xaml"
-            System.Windows.Application.LoadComponent(this, resourceLocater);
-            
-            #line default
-            #line hidden
-        }
-        
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
-        internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) {
-            return System.Delegate.CreateDelegate(delegateType, this, handler);
-        }
-        
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
-        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
-            switch (connectionId)
-            {
-            case 1:
-            
-            #line 9 "..\..\mainwindow.xaml"
-            ((LauncherIcarus.MainWindow)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
-            
-            #line default
-            #line hidden
-            return;
-            case 2:
-            this.buttonClose = ((System.Windows.Controls.Button)(target));
-            
-            #line 367 "..\..\mainwindow.xaml"
-            this.buttonClose.Click += new System.Windows.RoutedEventHandler(this.buttonClose_Click);
-            
-            #line default
-            #line hidden
-            return;
-            case 3:
-            this.buttonMinimizer = ((System.Windows.Controls.Button)(target));
-            
-            #line 374 "..\..\mainwindow.xaml"
-            this.buttonMinimizer.Click += new System.Windows.RoutedEventHandler(this.buttonMinimizer_Click);
-            
-            #line default
-            #line hidden
-            return;
-            case 4:
-            this.buttonAccess = ((System.Windows.Controls.Button)(target));
-            
-            #line 380 "..\..\mainwindow.xaml"
-            this.buttonAccess.Click += new System.Windows.RoutedEventHandler(this.buttonAccess_Click);
-            
-            #line default
-            #line hidden
-            return;
-            case 5:
-            this.buttonStart = ((System.Windows.Controls.Button)(target));
-            
-            #line 387 "..\..\mainwindow.xaml"
-            this.buttonStart.Click += new System.Windows.RoutedEventHandler(this.buttonStart_Click);
-            
-            #line default
-            #line hidden
-            return;
-            case 6:
-            this.buttonVerify = ((System.Windows.Controls.Button)(target));
-            
-            #line 393 "..\..\mainwindow.xaml"
-            this.buttonVerify.Click += new System.Windows.RoutedEventHandler(this.buttonVerify_Click);
-            
-            #line default
-            #line hidden
-            return;
-            case 7:
-            this.inputUsername = ((System.Windows.Controls.Image)(target));
-            return;
-            case 8:
-            this.inputPassword = ((System.Windows.Controls.Image)(target));
-            return;
-            case 9:
-            this.textUsername = ((System.Windows.Controls.TextBox)(target));
-            return;
-            case 10:
-            this.textPassword = ((System.Windows.Controls.PasswordBox)(target));
-            return;
-            case 11:
-            this.progressBar = ((System.Windows.Controls.Image)(target));
-            return;
-            case 12:
-            this.lblWellcome = ((System.Windows.Controls.Label)(target));
-            return;
-            case 13:
-            this.lblTotalQtd = ((System.Windows.Controls.Label)(target));
-            return;
-            case 14:
-            this.label_Copy1 = ((System.Windows.Controls.Label)(target));
-            return;
-            case 15:
-            this.lblAtualQtd = ((System.Windows.Controls.Label)(target));
-            return;
-            case 16:
-            this.label_Copy3 = ((System.Windows.Controls.Label)(target));
-            return;
-            case 17:
-            this.label_Copy4 = ((System.Windows.Controls.Label)(target));
-            return;
-            case 18:
-            this.lblTotalAtualizadoQtd = ((System.Windows.Controls.Label)(target));
-            return;
-            case 19:
-            this.lblMsgStatus = ((System.Windows.Controls.Label)(target));
-            return;
-            case 20:
-            this.lblDownloadSpeedQtd = ((System.Windows.Controls.Label)(target));
-            return;
-            case 21:
-            this.lblDownloadSpeed = ((System.Windows.Controls.Label)(target));
-            return;
-            case 22:
-            this.lblFileDownloadingName = ((System.Windows.Controls.Label)(target));
-            return;
-            case 23:
-            this.wbSlide = ((System.Windows.Controls.WebBrowser)(target));
-            return;
-            case 24:
-            this.lblFileDownloading = ((System.Windows.Controls.Label)(target));
-            return;
-            case 25:
-            this.cmbLanguage = ((System.Windows.Controls.ComboBox)(target));
-            
-            #line 440 "..\..\mainwindow.xaml"
-            this.cmbLanguage.DropDownClosed += new System.EventHandler(this.cmbLanguage_DropDownClosed);
-            
-            #line default
-            #line hidden
-            return;
-            }
-            this._contentLoaded = true;
-        }
-    }
-}
-

+ 32 - 34
LauncherIcarus/obj/Debug/mainwindow.g.i.cs

@@ -1,4 +1,4 @@
-#pragma checksum "..\..\mainwindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "D08DFFC073B33285D95B227F27B09061B04EF4704A3D4A96E2C943378754AB44"
+#pragma checksum "..\..\mainwindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "98827AEA7E413F10AF7A76BB0D59EB904127B1CB242DDEB670787DBEA6B03BF3"
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     Этот код создан программой.
@@ -9,9 +9,7 @@
 // </auto-generated>
 //------------------------------------------------------------------------------
 
-using LauncherIcarus;
 using LauncherIcarus.Daemon;
-using LauncherIcarus.Model;
 using System;
 using System.Diagnostics;
 using System.Windows;
@@ -43,7 +41,7 @@ namespace LauncherIcarus {
     public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
         
         
-        #line 367 "..\..\mainwindow.xaml"
+        #line 410 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Button buttonClose;
         
@@ -51,7 +49,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 374 "..\..\mainwindow.xaml"
+        #line 417 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Button buttonMinimizer;
         
@@ -59,7 +57,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 380 "..\..\mainwindow.xaml"
+        #line 423 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Button buttonAccess;
         
@@ -67,7 +65,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 387 "..\..\mainwindow.xaml"
+        #line 430 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Button buttonStart;
         
@@ -75,7 +73,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 393 "..\..\mainwindow.xaml"
+        #line 436 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Button buttonVerify;
         
@@ -83,7 +81,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 399 "..\..\mainwindow.xaml"
+        #line 442 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Image inputUsername;
         
@@ -91,7 +89,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 401 "..\..\mainwindow.xaml"
+        #line 444 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Image inputPassword;
         
@@ -99,7 +97,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 403 "..\..\mainwindow.xaml"
+        #line 446 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.TextBox textUsername;
         
@@ -107,7 +105,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 407 "..\..\mainwindow.xaml"
+        #line 450 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.PasswordBox textPassword;
         
@@ -115,7 +113,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 410 "..\..\mainwindow.xaml"
+        #line 453 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Image progressBar;
         
@@ -123,7 +121,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 412 "..\..\mainwindow.xaml"
+        #line 455 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblWellcome;
         
@@ -131,7 +129,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 414 "..\..\mainwindow.xaml"
+        #line 457 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblTotalQtd;
         
@@ -139,7 +137,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 416 "..\..\mainwindow.xaml"
+        #line 459 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label label_Copy1;
         
@@ -147,7 +145,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 418 "..\..\mainwindow.xaml"
+        #line 461 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblAtualQtd;
         
@@ -155,7 +153,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 420 "..\..\mainwindow.xaml"
+        #line 463 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label label_Copy3;
         
@@ -163,7 +161,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 422 "..\..\mainwindow.xaml"
+        #line 465 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label label_Copy4;
         
@@ -171,7 +169,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 424 "..\..\mainwindow.xaml"
+        #line 467 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblTotalAtualizadoQtd;
         
@@ -179,7 +177,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 426 "..\..\mainwindow.xaml"
+        #line 469 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblMsgStatus;
         
@@ -187,7 +185,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 429 "..\..\mainwindow.xaml"
+        #line 472 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblDownloadSpeedQtd;
         
@@ -195,7 +193,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 431 "..\..\mainwindow.xaml"
+        #line 474 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblDownloadSpeed;
         
@@ -203,7 +201,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 433 "..\..\mainwindow.xaml"
+        #line 476 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblFileDownloadingName;
         
@@ -211,7 +209,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 435 "..\..\mainwindow.xaml"
+        #line 478 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.WebBrowser wbSlide;
         
@@ -219,7 +217,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 437 "..\..\mainwindow.xaml"
+        #line 480 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.Label lblFileDownloading;
         
@@ -227,7 +225,7 @@ namespace LauncherIcarus {
         #line hidden
         
         
-        #line 440 "..\..\mainwindow.xaml"
+        #line 483 "..\..\mainwindow.xaml"
         [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
         internal System.Windows.Controls.ComboBox cmbLanguage;
         
@@ -273,7 +271,7 @@ namespace LauncherIcarus {
             {
             case 1:
             
-            #line 9 "..\..\mainwindow.xaml"
+            #line 5 "..\..\mainwindow.xaml"
             ((LauncherIcarus.MainWindow)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
             
             #line default
@@ -282,7 +280,7 @@ namespace LauncherIcarus {
             case 2:
             this.buttonClose = ((System.Windows.Controls.Button)(target));
             
-            #line 367 "..\..\mainwindow.xaml"
+            #line 410 "..\..\mainwindow.xaml"
             this.buttonClose.Click += new System.Windows.RoutedEventHandler(this.buttonClose_Click);
             
             #line default
@@ -291,7 +289,7 @@ namespace LauncherIcarus {
             case 3:
             this.buttonMinimizer = ((System.Windows.Controls.Button)(target));
             
-            #line 374 "..\..\mainwindow.xaml"
+            #line 417 "..\..\mainwindow.xaml"
             this.buttonMinimizer.Click += new System.Windows.RoutedEventHandler(this.buttonMinimizer_Click);
             
             #line default
@@ -300,7 +298,7 @@ namespace LauncherIcarus {
             case 4:
             this.buttonAccess = ((System.Windows.Controls.Button)(target));
             
-            #line 380 "..\..\mainwindow.xaml"
+            #line 423 "..\..\mainwindow.xaml"
             this.buttonAccess.Click += new System.Windows.RoutedEventHandler(this.buttonAccess_Click);
             
             #line default
@@ -309,7 +307,7 @@ namespace LauncherIcarus {
             case 5:
             this.buttonStart = ((System.Windows.Controls.Button)(target));
             
-            #line 387 "..\..\mainwindow.xaml"
+            #line 430 "..\..\mainwindow.xaml"
             this.buttonStart.Click += new System.Windows.RoutedEventHandler(this.buttonStart_Click);
             
             #line default
@@ -318,7 +316,7 @@ namespace LauncherIcarus {
             case 6:
             this.buttonVerify = ((System.Windows.Controls.Button)(target));
             
-            #line 393 "..\..\mainwindow.xaml"
+            #line 436 "..\..\mainwindow.xaml"
             this.buttonVerify.Click += new System.Windows.RoutedEventHandler(this.buttonVerify_Click);
             
             #line default
@@ -381,7 +379,7 @@ namespace LauncherIcarus {
             case 25:
             this.cmbLanguage = ((System.Windows.Controls.ComboBox)(target));
             
-            #line 440 "..\..\mainwindow.xaml"
+            #line 483 "..\..\mainwindow.xaml"
             this.cmbLanguage.DropDownClosed += new System.EventHandler(this.cmbLanguage_DropDownClosed);
             
             #line default

+ 9 - 0
LauncherIcarus/packages.config

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
+  <package id="System.Buffers" version="4.5.1" targetFramework="net472" />
+  <package id="System.IO.Hashing" version="8.0.0" targetFramework="net472" />
+  <package id="System.Memory" version="4.5.5" targetFramework="net472" />
+  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
+  <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" />
+</packages>

+ 2 - 2
LauncherUpdater/App.cs

@@ -9,14 +9,14 @@ namespace LauncherUpdater
     {
         [DebuggerNonUserCode]
         [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
-        public void InitializeComponent() => this.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
+        private void InitializeComponent() => StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
 
         [STAThread]
         [DebuggerNonUserCode]
         [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
         public static void Main()
         {
-            App app = new App();
+            var app = new App();
             app.InitializeComponent();
             app.Run();
         }

BIN
LauncherUpdater/Bin/Debug/LauncherUpdater.exe


BIN
LauncherUpdater/Bin/Debug/LauncherUpdater.pdb


BIN
LauncherUpdater/Bin/Debug/Newtonsoft.Json.dll


+ 3 - 21
LauncherUpdater/Function/Configuration.cs

@@ -2,35 +2,17 @@
 {
     public class Configuration
     {
-        public static readonly Configuration Default = new Configuration()
+        public static readonly Configuration Default = new Configuration
         {
-            ServerIP = "191.96.224.202",
+            ServerIp = "191.96.224.202",
             LauncherDir = "./Launcher/",
             CheckLauncherVersion = "/api/CheckLauncherVersion"
         };
 
-        public string ServerIP { get; set; }
-
-        public string LoginUrl { get; set; }
-
-        public string ListFileUrl { get; set; }
-
-        public string LauncherNewsUrl { get; set; }
-
-        public string CheckClientFiles { get; set; }
-
-        public string GetLauncherVersion { get; set; }
+        public string ServerIp { get; set; }
 
         public string LauncherDir { get; set; }
 
-        public string DownloadDir { get; set; }
-
-        public string UpdateLauncherVersion { get; set; }
-
-        public string DownloadClientFileUrl { get; set; }
-
-        public string DownloadUpdateFileUrl { get; set; }
-
         public string CheckLauncherVersion { get; set; }
     }
 }

+ 0 - 309
LauncherUpdater/Function/Crc32.cs

@@ -1,309 +0,0 @@
-using System.Security.Cryptography;
-using System.Text;
-
-namespace LauncherUpdater.Function
-{
-    public class Crc32 : HashAlgorithm
-    {
-        public const uint DefaultSeed = 4294967295;
-
-        private static readonly uint[] CrcTable = new uint[256]
-        {
-            0U,
-            1996959894U,
-            3993919788U,
-            2567524794U,
-            124634137U,
-            1886057615U,
-            3915621685U,
-            2657392035U,
-            249268274U,
-            2044508324U,
-            3772115230U,
-            2547177864U,
-            162941995U,
-            2125561021U,
-            3887607047U,
-            2428444049U,
-            498536548U,
-            1789927666U,
-            4089016648U,
-            2227061214U,
-            450548861U,
-            1843258603U,
-            4107580753U,
-            2211677639U,
-            325883990U,
-            1684777152U,
-            4251122042U,
-            2321926636U,
-            335633487U,
-            1661365465U,
-            4195302755U,
-            2366115317U,
-            997073096U,
-            1281953886U,
-            3579855332U,
-            2724688242U,
-            1006888145U,
-            1258607687U,
-            3524101629U,
-            2768942443U,
-            901097722U,
-            1119000684U,
-            3686517206U,
-            2898065728U,
-            853044451U,
-            1172266101U,
-            3705015759U,
-            2882616665U,
-            651767980U,
-            1373503546U,
-            3369554304U,
-            3218104598U,
-            565507253U,
-            1454621731U,
-            3485111705U,
-            3099436303U,
-            671266974U,
-            1594198024U,
-            3322730930U,
-            2970347812U,
-            795835527U,
-            1483230225U,
-            3244367275U,
-            3060149565U,
-            1994146192U,
-            31158534U,
-            2563907772U,
-            4023717930U,
-            1907459465U,
-            112637215U,
-            2680153253U,
-            3904427059U,
-            2013776290U,
-            251722036U,
-            2517215374U,
-            3775830040U,
-            2137656763U,
-            141376813U,
-            2439277719U,
-            3865271297U,
-            1802195444U,
-            476864866U,
-            2238001368U,
-            4066508878U,
-            1812370925U,
-            453092731U,
-            2181625025U,
-            4111451223U,
-            1706088902U,
-            314042704U,
-            2344532202U,
-            4240017532U,
-            1658658271U,
-            366619977U,
-            2362670323U,
-            4224994405U,
-            1303535960U,
-            984961486U,
-            2747007092U,
-            3569037538U,
-            1256170817U,
-            1037604311U,
-            2765210733U,
-            3554079995U,
-            1131014506U,
-            879679996U,
-            2909243462U,
-            3663771856U,
-            1141124467U,
-            855842277U,
-            2852801631U,
-            3708648649U,
-            1342533948U,
-            654459306U,
-            3188396048U,
-            3373015174U,
-            1466479909U,
-            544179635U,
-            3110523913U,
-            3462522015U,
-            1591671054U,
-            702138776U,
-            2966460450U,
-            3352799412U,
-            1504918807U,
-            783551873U,
-            3082640443U,
-            3233442989U,
-            3988292384U,
-            2596254646U,
-            62317068U,
-            1957810842U,
-            3939845945U,
-            2647816111U,
-            81470997U,
-            1943803523U,
-            3814918930U,
-            2489596804U,
-            225274430U,
-            2053790376U,
-            3826175755U,
-            2466906013U,
-            167816743U,
-            2097651377U,
-            4027552580U,
-            2265490386U,
-            503444072U,
-            1762050814U,
-            4150417245U,
-            2154129355U,
-            426522225U,
-            1852507879U,
-            4275313526U,
-            2312317920U,
-            282753626U,
-            1742555852U,
-            4189708143U,
-            2394877945U,
-            397917763U,
-            1622183637U,
-            3604390888U,
-            2714866558U,
-            953729732U,
-            1340076626U,
-            3518719985U,
-            2797360999U,
-            1068828381U,
-            1219638859U,
-            3624741850U,
-            2936675148U,
-            906185462U,
-            1090812512U,
-            3747672003U,
-            2825379669U,
-            829329135U,
-            1181335161U,
-            3412177804U,
-            3160834842U,
-            628085408U,
-            1382605366U,
-            3423369109U,
-            3138078467U,
-            570562233U,
-            1426400815U,
-            3317316542U,
-            2998733608U,
-            733239954U,
-            1555261956U,
-            3268935591U,
-            3050360625U,
-            752459403U,
-            1541320221U,
-            2607071920U,
-            3965973030U,
-            1969922972U,
-            40735498U,
-            2617837225U,
-            3943577151U,
-            1913087877U,
-            83908371U,
-            2512341634U,
-            3803740692U,
-            2075208622U,
-            213261112U,
-            2463272603U,
-            3855990285U,
-            2094854071U,
-            198958881U,
-            2262029012U,
-            4057260610U,
-            1759359992U,
-            534414190U,
-            2176718541U,
-            4139329115U,
-            1873836001U,
-            414664567U,
-            2282248934U,
-            4279200368U,
-            1711684554U,
-            285281116U,
-            2405801727U,
-            4167216745U,
-            1634467795U,
-            376229701U,
-            2685067896U,
-            3608007406U,
-            1308918612U,
-            956543938U,
-            2808555105U,
-            3495958263U,
-            1231636301U,
-            1047427035U,
-            2932959818U,
-            3654703836U,
-            1088359270U,
-            936918000U,
-            2847714899U,
-            3736837829U,
-            1202900863U,
-            817233897U,
-            3183342108U,
-            3401237130U,
-            1404277552U,
-            615818150U,
-            3134207493U,
-            3453421203U,
-            1423857449U,
-            601450431U,
-            3009837614U,
-            3294710456U,
-            1567103746U,
-            711928724U,
-            3020668471U,
-            3272380065U,
-            1510334235U,
-            755167117U
-        };
-
-        private uint crcValue;
-
-        public uint CrcValue =>
-            (uint) ((int) this.HashValue[0] << 24 | (int) this.HashValue[1] << 16 | (int) this.HashValue[2] << 8) |
-            (uint) this.HashValue[3];
-
-        public override int HashSize => 32;
-
-        public static uint Calculate(string data)
-        {
-            UTF8Encoding utF8Encoding = new UTF8Encoding();
-            Crc32 crc32 = new Crc32();
-            crc32.ComputeHash(utF8Encoding.GetBytes(data));
-            return crc32.CrcValue;
-        }
-
-        public override void Initialize() => this.crcValue = 0U;
-
-        protected override void HashCore(byte[] buffer, int start, int length)
-        {
-            this.crcValue ^= uint.MaxValue;
-            while (--length >= 0)
-                this.crcValue = Crc32.CrcTable[((int) this.crcValue ^ (int) buffer[start++]) & (int) byte.MaxValue] ^
-                                this.crcValue >> 8;
-            this.crcValue ^= uint.MaxValue;
-        }
-
-        protected override byte[] HashFinal()
-        {
-            this.HashValue = new byte[4]
-            {
-                (byte) (this.crcValue >> 24 & (uint) byte.MaxValue),
-                (byte) (this.crcValue >> 16 & (uint) byte.MaxValue),
-                (byte) (this.crcValue >> 8 & (uint) byte.MaxValue),
-                (byte) (this.crcValue & (uint) byte.MaxValue)
-            };
-            return this.HashValue;
-        }
-    }
-}

+ 42 - 40
LauncherUpdater/Function/EncryptionHelper.cs

@@ -9,32 +9,33 @@ namespace LauncherUpdater.Function
     {
         public static string Encrypt(string clearText)
         {
-            string password = "N1PEUPQX";
-            byte[] bytes = Encoding.Unicode.GetBytes(clearText);
-            using (Aes aes = Aes.Create())
+            const string password = "N1PEUPQX";
+            var bytes = Encoding.Unicode.GetBytes(clearText);
+            using (var aes = Aes.Create())
             {
-                Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, new byte[13]
+                var rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, new byte[]
                 {
-                    (byte) 73,
-                    (byte) 118,
-                    (byte) 97,
-                    (byte) 110,
-                    (byte) 32,
-                    (byte) 77,
-                    (byte) 101,
-                    (byte) 100,
-                    (byte) 118,
-                    (byte) 101,
-                    (byte) 100,
-                    (byte) 101,
-                    (byte) 118
+                    73,
+                    118,
+                    97,
+                    110,
+                    32,
+                    77,
+                    101,
+                    100,
+                    118,
+                    101,
+                    100,
+                    101,
+                    118
                 });
                 aes.Key = rfc2898DeriveBytes.GetBytes(32);
                 aes.IV = rfc2898DeriveBytes.GetBytes(16);
-                using (MemoryStream memoryStream = new MemoryStream())
+                using (var memoryStream = new MemoryStream())
                 {
-                    using (CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, aes.CreateEncryptor(),
-                               CryptoStreamMode.Write))
+                    using (
+                        var cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write)
+                    )
                     {
                         cryptoStream.Write(bytes, 0, bytes.Length);
                         cryptoStream.Close();
@@ -49,33 +50,34 @@ namespace LauncherUpdater.Function
 
         public static string Decrypt(string cipherText)
         {
-            string password = "N1PEUPQX";
+            const string password = "N1PEUPQX";
             cipherText = cipherText.Replace(" ", "+");
-            byte[] buffer = Convert.FromBase64String(cipherText);
-            using (Aes aes = Aes.Create())
+            var buffer = Convert.FromBase64String(cipherText);
+            using (var aes = Aes.Create())
             {
-                Rfc2898DeriveBytes rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, new byte[13]
+                var rfc2898DeriveBytes = new Rfc2898DeriveBytes(password, new byte[]
                 {
-                    (byte) 73,
-                    (byte) 118,
-                    (byte) 97,
-                    (byte) 110,
-                    (byte) 32,
-                    (byte) 77,
-                    (byte) 101,
-                    (byte) 100,
-                    (byte) 118,
-                    (byte) 101,
-                    (byte) 100,
-                    (byte) 101,
-                    (byte) 118
+                    73,
+                    118,
+                    97,
+                    110,
+                    32,
+                    77,
+                    101,
+                    100,
+                    118,
+                    101,
+                    100,
+                    101,
+                    118
                 });
                 aes.Key = rfc2898DeriveBytes.GetBytes(32);
                 aes.IV = rfc2898DeriveBytes.GetBytes(16);
-                using (MemoryStream memoryStream = new MemoryStream())
+                using (var memoryStream = new MemoryStream())
                 {
-                    using (CryptoStream cryptoStream = new CryptoStream((Stream) memoryStream, aes.CreateDecryptor(),
-                               CryptoStreamMode.Write))
+                    using (
+                        var cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Write)
+                    )
                     {
                         cryptoStream.Write(buffer, 0, buffer.Length);
                         cryptoStream.Close();

+ 4 - 4
LauncherUpdater/Function/FileConfig.cs

@@ -5,13 +5,13 @@ namespace LauncherUpdater.Function
 {
     public class FileConfig
     {
-        private string LauncherVersionSetting = nameof(LauncherVersionSetting);
+        private string _launcherVersionSetting = nameof(_launcherVersionSetting);
 
         public void SetLauncherIsChecked(string text) =>
-            File.WriteAllText("./Launcher/" + this.LauncherVersionSetting, text + Environment.NewLine);
+            File.WriteAllText("./Launcher/" + _launcherVersionSetting, text + Environment.NewLine);
 
-        public string GetLauncherIsChecked() => File.Exists(this.LauncherVersionSetting)
-            ? File.ReadAllText("./Launcher/" + this.LauncherVersionSetting).Replace("\r\n", string.Empty)
+        public string GetLauncherIsChecked() => File.Exists(_launcherVersionSetting)
+            ? File.ReadAllText("./Launcher/" + _launcherVersionSetting).Replace("\r\n", string.Empty)
             : "FALSE";
     }
 }

+ 9 - 5
LauncherUpdater/HTTP/HttpRequest.cs

@@ -6,15 +6,19 @@ namespace LauncherUpdater.HTTP
 {
     public class HttpRequest
     {
-        private string CheckLauncherVersion =
-            Configuration.Default.ServerIP + Configuration.Default.CheckLauncherVersion;
+        private readonly string _checkLauncherVersion =
+            Configuration.Default.ServerIp + Configuration.Default.CheckLauncherVersion;
 
         public async Task<string> GetLauncherFileAsync()
         {
             string launcherFileAsync;
-            using (HttpClient client = new HttpClient())
-                launcherFileAsync =
-                    await (await client.GetAsync(this.CheckLauncherVersion)).Content.ReadAsStringAsync();
+            using (var client = new HttpClient())
+            {
+                launcherFileAsync = await (await client.GetAsync(_checkLauncherVersion))
+                    .Content
+                    .ReadAsStringAsync();
+            }
+
             return launcherFileAsync;
         }
     }

+ 28 - 3
LauncherUpdater/LauncherUpdater.csproj

@@ -31,14 +31,34 @@
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>icon4.ico</ApplicationIcon>
+  </PropertyGroup>
   <ItemGroup>
-    <Reference Include="Newtonsoft.Json">
-      <HintPath>lib\Newtonsoft.Json.dll</HintPath>
+    <Reference Include="mscorlib" />
+    <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
     <Reference Include="PresentationCore" />
     <Reference Include="PresentationFramework" />
     <Reference Include="System" />
+    <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
+    </Reference>
+    <Reference Include="System.IO.Hashing, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\System.IO.Hashing.8.0.0\lib\net462\System.IO.Hashing.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
+    </Reference>
     <Reference Include="System.Net.Http" />
+    <Reference Include="System.Numerics" />
+    <Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
+    </Reference>
+    <Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+      <HintPath>..\LauncherIcarus\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
+    </Reference>
     <Reference Include="System.Xaml" />
     <Reference Include="WindowsBase" />
   </ItemGroup>
@@ -52,7 +72,6 @@
     <Compile Include="Function\EncryptionHelper.cs" />
     <Compile Include="Function\FileConfig.cs" />
     <Compile Include="Function\Configuration.cs" />
-    <Compile Include="Function\Crc32.cs" />
     <Compile Include="Function\Logger.cs" />
     <Compile Include="MainWindow.xaml.cs">
       <DependentUpon>mainwindow.xaml</DependentUpon>
@@ -73,5 +92,11 @@
       <SubType>Designer</SubType>
     </Page>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="obj\Debug" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 51 - 63
LauncherUpdater/MainWindow.xaml.cs

@@ -3,119 +3,107 @@ using LauncherUpdater.HTTP;
 using LauncherUpdater.Response;
 using Newtonsoft.Json;
 using System;
-using System.CodeDom.Compiler;
-using System.ComponentModel;
 using System.Diagnostics;
 using System.IO;
+using System.IO.Hashing;
+using System.Linq;
 using System.Net;
 using System.Threading.Tasks;
 using System.Windows;
-using System.Windows.Controls;
 using System.Windows.Markup;
 
 namespace LauncherUpdater
 {
     public partial class MainWindow : Window, IComponentConnector
     {
-        private readonly HttpRequest httpRequest;
-        public DirectoryInfo lDir;
-        private FileConfig fileConfig;
+        private readonly HttpRequest _httpRequest;
+        private readonly FileConfig _fileConfig;
 
         public MainWindow()
         {
-            this.httpRequest = new HttpRequest();
-            this.fileConfig = new FileConfig();
-            this.InitializeComponent();
-            this.lDir = new DirectoryInfo(Environment.CurrentDirectory);
-            this.CheckLauncherFiles();
+            _httpRequest = new HttpRequest();
+            _fileConfig = new FileConfig();
+            InitializeComponent();
+            CheckLauncherFiles();
         }
 
-        public async Task CheckLauncherFiles()
+        private async Task CheckLauncherFiles()
         {
             try
             {
-                foreach (Process process in Process.GetProcessesByName("LauncherIcarus"))
+                foreach (var process in Process.GetProcessesByName("LauncherIcarus"))
+                {
                     process.Kill();
+                }
+
                 if (!Directory.Exists(Configuration.Default.LauncherDir))
+                {
                     Directory.CreateDirectory(Configuration.Default.LauncherDir);
-                this.progressBar.Width = 0.0;
-                double totalDownloaded = 0.0;
-                ResponseListLauncherFiles get =
-                    JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
-                        await this.httpRequest.GetLauncherFileAsync());
-                if (get.TotalBytes > 0.0)
+                }
+
+                ProgressBar.Width = 0.0;
+                var launcherFiles = JsonConvert.DeserializeObject<ResponseListLauncherFiles>(
+                    await _httpRequest.GetLauncherFileAsync()
+                );
+                if (launcherFiles?.TotalBytes > 0.0)
                 {
-                    foreach (Files k in get.File)
+                    foreach (var file in launcherFiles.Files)
                     {
-                        Crc32 crc32 = new Crc32();
-                        string empty = string.Empty;
-                        if (System.IO.File.Exists(Configuration.Default.LauncherDir + k.filename))
+                        var hash = string.Empty;
+                        if (File.Exists(Configuration.Default.LauncherDir + file.Filename))
                         {
-                            using (FileStream inputStream =
-                                   System.IO.File.Open(Configuration.Default.LauncherDir + k.filename, FileMode.Open))
+                            using (var fileStream =
+                                   File.Open(Configuration.Default.LauncherDir + file.Filename, FileMode.Open)
+                                  )
                             {
-                                foreach (byte num in crc32.ComputeHash((Stream) inputStream))
-                                    empty += num.ToString("x2").ToLower();
-                            }
-
-                            if (k.crc32 != empty)
-                            {
-                                int num1 = await this.DownloadArchiveAsync(k.filename,
-                                    Configuration.Default.LauncherDir, k.url)
-                                    ? 1
-                                    : 0;
+                                using (var memoryStream = new MemoryStream())
+                                {
+                                    await fileStream.CopyToAsync(memoryStream);
+                                    hash = Crc32.Hash(memoryStream.ToArray())
+                                        .Aggregate(hash, (current, next) => current + next.ToString("x2"))
+                                        .ToLower();
+                                }
                             }
                         }
-                        else
+
+                        if (file.Crc32 != hash)
                         {
-                            int num2 = await this.DownloadArchiveAsync(k.filename, Configuration.Default.LauncherDir,
-                                k.url)
-                                ? 1
-                                : 0;
+                            await DownloadArchiveAsync(file.Filename, Configuration.Default.LauncherDir, file.Url);
                         }
 
-                        double num3 = k.size / get.TotalBytes * 370.0;
-                        totalDownloaded += k.size;
-                        this.progressBar.Width += Math.Round(num3, 0);
+                        var num3 = file.Size / launcherFiles.TotalBytes * 370.0;
+                        ProgressBar.Width += Math.Round(num3, 0);
                     }
                 }
 
-                this.fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("TRUE"));
-                DirectoryInfo directoryInfo = new DirectoryInfo(Environment.CurrentDirectory);
-                Process.Start(new ProcessStartInfo()
+                _fileConfig.SetLauncherIsChecked(EncryptionHelper.Encrypt("TRUE"));
+                Process.Start(new ProcessStartInfo
                 {
-                    WorkingDirectory = directoryInfo.FullName + "\\Launcher\\",
+                    WorkingDirectory = Configuration.Default.LauncherDir,
                     FileName = "LauncherIcarus.exe",
-                    CreateNoWindow = true
+                    CreateNoWindow = true,
                 });
                 Environment.Exit(0);
-                get = (ResponseListLauncherFiles) null;
             }
             catch (Exception ex)
             {
-                Logger.WriteLog(Application.Current?.ToString() + " : " + ex.Message);
+                Logger.WriteLog(Application.Current + " : " + ex.Message);
                 Environment.Exit(0);
             }
         }
 
-        private async Task<bool> DownloadArchiveAsync(
-            string filename,
-            string downloadPath,
-            string url)
+        private static async Task DownloadArchiveAsync(string filename, string downloadPath, string url)
         {
-            DownloadProgressChangedEventHandler changedEventHandler =
-                (DownloadProgressChangedEventHandler) ((s, e) => { });
-            DownloadDataCompletedEventHandler completedEventHandler =
-                (DownloadDataCompletedEventHandler) ((s, e) => { });
-            using (WebClient webClient = new WebClient())
+            var changedEventHandler = (DownloadProgressChangedEventHandler) ((s, e) => { });
+            var completedEventHandler = (DownloadDataCompletedEventHandler) ((s, e) => { });
+            using (var webClient = new WebClient())
             {
                 webClient.DownloadProgressChanged += changedEventHandler;
                 webClient.DownloadDataCompleted += completedEventHandler;
-                await webClient.DownloadFileTaskAsync(new Uri(Configuration.Default.ServerIP + url),
-                    downloadPath + filename);
+                await webClient.DownloadFileTaskAsync(
+                    new Uri(Configuration.Default.ServerIp + url), downloadPath + filename
+                );
             }
-
-            return true;
         }
     }
 }

+ 4 - 21
LauncherUpdater/Properties/Resources.cs

@@ -12,30 +12,13 @@ namespace LauncherUpdater.Properties
     [CompilerGenerated]
     internal class Resources
     {
-        private static ResourceManager resourceMan;
-        private static CultureInfo resourceCulture;
-
-        internal Resources()
-        {
-        }
+        private static ResourceManager _resourceMan;
 
         [EditorBrowsable(EditorBrowsableState.Advanced)]
-        internal static ResourceManager ResourceManager
-        {
-            get
-            {
-                if (LauncherUpdater.Properties.Resources.resourceMan == null)
-                    LauncherUpdater.Properties.Resources.resourceMan = new ResourceManager(
-                        "LauncherUpdater.Properties.Resources", typeof(LauncherUpdater.Properties.Resources).Assembly);
-                return LauncherUpdater.Properties.Resources.resourceMan;
-            }
-        }
+        internal static ResourceManager ResourceManager => _resourceMan ?? (_resourceMan =
+            new ResourceManager("LauncherUpdater.Properties.Resources", typeof(Resources).Assembly));
 
         [EditorBrowsable(EditorBrowsableState.Advanced)]
-        internal static CultureInfo Culture
-        {
-            get => LauncherUpdater.Properties.Resources.resourceCulture;
-            set => LauncherUpdater.Properties.Resources.resourceCulture = value;
-        }
+        internal static CultureInfo Culture { get; set; }
     }
 }

+ 1 - 3
LauncherUpdater/Properties/Settings.cs

@@ -8,8 +8,6 @@ namespace LauncherUpdater.Properties
     [GeneratedCode("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
     internal sealed class Settings : ApplicationSettingsBase
     {
-        private static Settings defaultInstance = (Settings) SettingsBase.Synchronized((SettingsBase) new Settings());
-
-        public static Settings Default => Settings.defaultInstance;
+        public static Settings Default { get; } = (Settings) Synchronized(new Settings());
     }
 }

+ 5 - 5
LauncherUpdater/Response/Files.cs

@@ -4,14 +4,14 @@ namespace LauncherUpdater.Response
 {
     public class Files
     {
-        [JsonProperty("filename")] public string filename { get; set; }
+        [JsonProperty("filename")] public string Filename { get; set; }
 
-        [JsonProperty("url")] public string url { get; set; }
+        [JsonProperty("url")] public string Url { get; set; }
 
-        [JsonProperty("version")] public long version { get; set; }
+        [JsonProperty("version")] public long Version { get; set; }
 
-        [JsonProperty("size")] public double size { get; set; }
+        [JsonProperty("size")] public double Size { get; set; }
 
-        [JsonProperty("crc32")] public string crc32 { get; set; }
+        [JsonProperty("crc32")] public string Crc32 { get; set; }
     }
 }

+ 1 - 1
LauncherUpdater/Response/ResponseListLauncherFiles.cs

@@ -7,6 +7,6 @@ namespace LauncherUpdater.Response
     {
         [JsonProperty("totalBytes")] public double TotalBytes { get; set; }
 
-        [JsonProperty("files")] public List<Files> File { get; set; }
+        [JsonProperty("files")] public List<Files> Files { get; set; }
     }
 }

+ 4 - 7
LauncherUpdater/mainwindow.xaml

@@ -1,13 +1,10 @@
 <Window x:Class="LauncherUpdater.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:local="clr-namespace:LauncherUpdater"
         WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" Title="MainWindow"
         Height="88.031" Width="390.667">
-  <Grid Background="#FF1F1E1E">
-    <Image x:Name="progressBar" Stretch="Fill" Source="Data/Img/update_bar.png" HorizontalAlignment="Left"
-           VerticalAlignment="Top" Height="6" Width="370" Margin="10,41,0,0"/>
-  </Grid>
+    <Grid Background="#FF1F1E1E">
+        <Image x:Name="ProgressBar" Stretch="Fill" Source="Data/Img/update_bar.png" HorizontalAlignment="Left"
+               VerticalAlignment="Top" Height="6" Width="370" Margin="10,41,0,0" />
+    </Grid>
 </Window>

BIN
LauncherUpdater/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


BIN
LauncherUpdater/obj/Debug/LauncherUpdater.Properties.Resources.resources


BIN
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.AssemblyReference.cache


+ 0 - 0
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.CopyComplete


+ 0 - 1
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.CoreCompileInputs.cache

@@ -1 +0,0 @@
-9156af3d599cec12a3b1e9c3b872fc8afd4a857c

+ 0 - 16
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.FileListAbsolute.txt

@@ -1,16 +0,0 @@
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\bin\Debug\LauncherUpdater.exe
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\bin\Debug\LauncherUpdater.pdb
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\bin\Debug\Newtonsoft.Json.dll
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.csproj.AssemblyReference.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.csproj.SuggestedBindingRedirects.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\mainwindow.g.cs
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater_MarkupCompile.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater_MarkupCompile.lref
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\mainwindow.baml
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.g.resources
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.Properties.Resources.resources
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.csproj.GenerateResource.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.csproj.CoreCompileInputs.cache
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.csproj.CopyComplete
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.exe
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\LauncherUpdater.pdb

BIN
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.GenerateResource.cache


+ 0 - 0
LauncherUpdater/obj/Debug/LauncherUpdater.csproj.SuggestedBindingRedirects.cache


BIN
LauncherUpdater/obj/Debug/LauncherUpdater.exe


BIN
LauncherUpdater/obj/Debug/LauncherUpdater.g.resources


BIN
LauncherUpdater/obj/Debug/LauncherUpdater.pdb


+ 0 - 20
LauncherUpdater/obj/Debug/LauncherUpdater_MarkupCompile.cache

@@ -1,20 +0,0 @@
-LauncherUpdater
-
-
-winexe
-C#
-.cs
-D:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\obj\Debug\
-LauncherUpdater
-none
-false
-DEBUG;TRACE
-
-11150301917
-
-13-705604715
-996345656
-mainwindow.xaml;
-
-False
-

+ 0 - 4
LauncherUpdater/obj/Debug/LauncherUpdater_MarkupCompile.lref

@@ -1,4 +0,0 @@
-
-
-FD:\Icarus\projeto launcher\projeto launcher\launcher\LauncherUpdater\mainwindow.xaml;;
-

BIN
LauncherUpdater/obj/Debug/mainwindow.baml


+ 0 - 89
LauncherUpdater/obj/Debug/mainwindow.g.cs

@@ -1,89 +0,0 @@
-#pragma checksum "..\..\mainwindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "66CE21931E9412C714FD997EF08F09B0ADB8B382E5269DE48EC4AA0604AB0143"
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     Этот код создан программой.
-//     Исполняемая версия:4.0.30319.42000
-//
-//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
-//     повторной генерации кода.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-using LauncherUpdater;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace LauncherUpdater {
-    
-    
-    /// <summary>
-    /// MainWindow
-    /// </summary>
-    public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-        
-        
-        #line 10 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Image progressBar;
-        
-        #line default
-        #line hidden
-        
-        private bool _contentLoaded;
-        
-        /// <summary>
-        /// InitializeComponent
-        /// </summary>
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        public void InitializeComponent() {
-            if (_contentLoaded) {
-                return;
-            }
-            _contentLoaded = true;
-            System.Uri resourceLocater = new System.Uri("/LauncherUpdater;component/mainwindow.xaml", System.UriKind.Relative);
-            
-            #line 1 "..\..\mainwindow.xaml"
-            System.Windows.Application.LoadComponent(this, resourceLocater);
-            
-            #line default
-            #line hidden
-        }
-        
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
-        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
-            switch (connectionId)
-            {
-            case 1:
-            this.progressBar = ((System.Windows.Controls.Image)(target));
-            return;
-            }
-            this._contentLoaded = true;
-        }
-    }
-}
-

+ 0 - 89
LauncherUpdater/obj/Debug/mainwindow.g.i.cs

@@ -1,89 +0,0 @@
-#pragma checksum "..\..\mainwindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "66CE21931E9412C714FD997EF08F09B0ADB8B382E5269DE48EC4AA0604AB0143"
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     Этот код создан программой.
-//     Исполняемая версия:4.0.30319.42000
-//
-//     Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
-//     повторной генерации кода.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-using LauncherUpdater;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace LauncherUpdater {
-    
-    
-    /// <summary>
-    /// MainWindow
-    /// </summary>
-    public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-        
-        
-        #line 10 "..\..\mainwindow.xaml"
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
-        internal System.Windows.Controls.Image progressBar;
-        
-        #line default
-        #line hidden
-        
-        private bool _contentLoaded;
-        
-        /// <summary>
-        /// InitializeComponent
-        /// </summary>
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        public void InitializeComponent() {
-            if (_contentLoaded) {
-                return;
-            }
-            _contentLoaded = true;
-            System.Uri resourceLocater = new System.Uri("/LauncherUpdater;component/mainwindow.xaml", System.UriKind.Relative);
-            
-            #line 1 "..\..\mainwindow.xaml"
-            System.Windows.Application.LoadComponent(this, resourceLocater);
-            
-            #line default
-            #line hidden
-        }
-        
-        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
-        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
-        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
-        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
-        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
-            switch (connectionId)
-            {
-            case 1:
-            this.progressBar = ((System.Windows.Controls.Image)(target));
-            return;
-            }
-            this._contentLoaded = true;
-        }
-    }
-}
-

+ 9 - 0
LauncherUpdater/packages.config

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
+  <package id="System.Buffers" version="4.5.1" targetFramework="net472" />
+  <package id="System.IO.Hashing" version="8.0.0" targetFramework="net472" />
+  <package id="System.Memory" version="4.5.5" targetFramework="net472" />
+  <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
+  <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" />
+</packages>