diff --git a/WeeXnes/Core/Global.cs b/WeeXnes/Core/Global.cs index f234d4d..e54d8c9 100644 --- a/WeeXnes/Core/Global.cs +++ b/WeeXnes/Core/Global.cs @@ -8,7 +8,7 @@ namespace WeeXnes.Core { public class Information { - public const string Version = "4.2.8"; + public const string Version = "4.3.0"; public const string EncryptionHash = "8zf5#RdyQ]$4x4_"; public const string ApiUrl = "https://api.github.com/repos/weexnes/weexnessuite/releases/latest"; } diff --git a/WeeXnes/Views/KeyManager/KeyItem.cs b/WeeXnes/Views/KeyManager/KeyItem.cs index 88c3f9b..d699424 100644 --- a/WeeXnes/Views/KeyManager/KeyItem.cs +++ b/WeeXnes/Views/KeyManager/KeyItem.cs @@ -1,4 +1,11 @@ using System; +using System.Windows.Shapes; +using WeeXnes.Core; +using System.IO; +using System.Net; +using Wpf.Ui.Controls; +using Microsoft.Win32; +using Path = System.Windows.Shapes.Path; namespace WeeXnes.Views.KeyManager { @@ -18,5 +25,47 @@ namespace WeeXnes.Views.KeyManager { return this.Name; } + + + public void Export() + { + string filePath = Global.AppDataPathKEY.Value + "\\" + this.Filename; + Console.WriteLine(filePath); + + SaveFileDialog dialog = new SaveFileDialog() + { + Filter = "WXFiles (*.wx)|*.wx", + Title = "Export KeyFile" + }; + if (dialog.ShowDialog() == true) + { + File.Copy(filePath, dialog.FileName, true); + Console.WriteLine("Exported to: " + dialog.FileName); + } + } + + public static void Import() + { + OpenFileDialog dialog = new OpenFileDialog() + { + Filter = "WXFiles (*.wx)|*.wx" + }; + if (dialog.ShowDialog() == true) + { + WXFile wxFile = new WXFile(dialog.FileName); + KeyItem newItem = new KeyItem( + wxFile.GetName(), + EncryptionLib.EncryptorLibary.decrypt( + Information.EncryptionHash, + wxFile.GetValue() + ) + ); + newItem.Filename = System.IO.Path.GetFileName(dialog.FileName); + WXFile newWxFile = new WXFile(Global.AppDataPathKEY.Value + "\\" + newItem.Filename); + WXFile.Methods.WriteFile(newItem, newWxFile); + KeyManagerView.Data.KeyItemsList.Add(newItem); + Console.WriteLine("Imported: " + dialog.FileName); + } + } } } \ No newline at end of file diff --git a/WeeXnes/Views/KeyManager/KeyManagerView.xaml b/WeeXnes/Views/KeyManager/KeyManagerView.xaml index 49c56eb..a0f8916 100644 --- a/WeeXnes/Views/KeyManager/KeyManagerView.xaml +++ b/WeeXnes/Views/KeyManager/KeyManagerView.xaml @@ -21,7 +21,13 @@ + Click="ContextMenu_Remove"/> + + diff --git a/WeeXnes/Views/KeyManager/KeyManagerView.xaml.cs b/WeeXnes/Views/KeyManager/KeyManagerView.xaml.cs index 8f0747e..6e9bb7e 100644 --- a/WeeXnes/Views/KeyManager/KeyManagerView.xaml.cs +++ b/WeeXnes/Views/KeyManager/KeyManagerView.xaml.cs @@ -34,6 +34,7 @@ namespace WeeXnes.Views.KeyManager if(String.IsNullOrEmpty(tb_keyvalue.Text)) return; + try { KeyItem newKey = new KeyItem( @@ -43,12 +44,13 @@ namespace WeeXnes.Views.KeyManager WXFile wxFile = new WXFile( Global.AppDataPathKEY.Value + "\\" + newKey.Filename); WXFile.Methods.WriteFile(newKey, wxFile); - Data.KeyItemsList.Add(newKey); + KeyManagerView.Data.KeyItemsList.Add(newKey); } catch (Exception ex) { Console.WriteLine(ex.Message); } + ClearInputs(); } @@ -74,10 +76,19 @@ namespace WeeXnes.Views.KeyManager } } - private void MenuItem_OnClick(object sender, RoutedEventArgs e) + private void ContextMenu_Remove(object sender, RoutedEventArgs e) { DeleteItem((KeyItem)ListviewKeys.SelectedItem); } + private void ContextMenu_Import(object sender, RoutedEventArgs e) + { + KeyItem.Import(); + } + private void ContextMenu_Export(object sender, RoutedEventArgs e) + { + var item = (KeyItem)ListviewKeys.SelectedItem; + item.Export(); + } private void KeyValue_OnLoaded(object sender, RoutedEventArgs e) { diff --git a/WeeXnes/WeeXnes.csproj b/WeeXnes/WeeXnes.csproj index 03f7514..6f6b99c 100644 --- a/WeeXnes/WeeXnes.csproj +++ b/WeeXnes/WeeXnes.csproj @@ -4,7 +4,7 @@ Debug AnyCPU - 4.2.8 + 4.3.0 {4B33CEE7-C74D-43B9-B99A-8B273D5195BC} WinExe WeeXnes