diff --git a/CleanCode/.vs/CleanCode/FileContentIndex/b59a830b-641e-4bea-a21a-cfe1cef21b75.vsidx b/CleanCode/.vs/CleanCode/FileContentIndex/b59a830b-641e-4bea-a21a-cfe1cef21b75.vsidx
new file mode 100644
index 0000000..d71a72c
Binary files /dev/null and b/CleanCode/.vs/CleanCode/FileContentIndex/b59a830b-641e-4bea-a21a-cfe1cef21b75.vsidx differ
diff --git a/CleanCode/.vs/CleanCode/v17/.suo b/CleanCode/.vs/CleanCode/v17/.suo
new file mode 100644
index 0000000..cea3646
Binary files /dev/null and b/CleanCode/.vs/CleanCode/v17/.suo differ
diff --git a/CleanCode/App.config b/CleanCode/App.config
new file mode 100644
index 0000000..033746a
--- /dev/null
+++ b/CleanCode/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CleanCode/App.xaml b/CleanCode/App.xaml
new file mode 100644
index 0000000..b157acb
--- /dev/null
+++ b/CleanCode/App.xaml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/CleanCode/App.xaml.cs b/CleanCode/App.xaml.cs
new file mode 100644
index 0000000..12b1d22
--- /dev/null
+++ b/CleanCode/App.xaml.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+namespace CleanCode
+{
+ public partial class App : Application
+ {
+ }
+}
diff --git a/CleanCode/CleanCode.csproj b/CleanCode/CleanCode.csproj
new file mode 100644
index 0000000..0e55716
--- /dev/null
+++ b/CleanCode/CleanCode.csproj
@@ -0,0 +1,151 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {5747D465-1852-446C-B640-C518A6885181}
+ WinExe
+ CleanCode
+ CleanCode
+ v4.8
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\packages\MaterialDesignColors.2.1.4\lib\net462\MaterialDesignColors.dll
+
+
+ ..\packages\MaterialDesignThemes.4.9.0\lib\net462\MaterialDesignThemes.Wpf.dll
+
+
+ ..\packages\Microsoft.Xaml.Behaviors.Wpf.1.1.39\lib\net45\Microsoft.Xaml.Behaviors.dll
+
+
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+ True
+ True
+ Resource1.resx
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+ ResXFileCodeGenerator
+ Resource1.Designer.cs
+ Designer
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+ {AA9A2205-75AA-43AD-9138-1767F1BB5E0C}
+ 1
+ 0
+ 0
+ tlbimp
+ False
+ True
+
+
+ {00020430-0000-0000-C000-000000000046}
+ 2
+ 0
+ 0
+ primary
+ False
+ True
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
\ No newline at end of file
diff --git a/CleanCode/CleanCode.sln b/CleanCode/CleanCode.sln
new file mode 100644
index 0000000..94f3569
--- /dev/null
+++ b/CleanCode/CleanCode.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34024.191
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CleanCode", "CleanCode.csproj", "{5747D465-1852-446C-B640-C518A6885181}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5747D465-1852-446C-B640-C518A6885181}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5747D465-1852-446C-B640-C518A6885181}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5747D465-1852-446C-B640-C518A6885181}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5747D465-1852-446C-B640-C518A6885181}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {5A1C0B45-06E1-4C0D-A9C4-71D331BAD3BA}
+ EndGlobalSection
+EndGlobal
diff --git a/CleanCode/Model/ResItem.cs b/CleanCode/Model/ResItem.cs
new file mode 100644
index 0000000..32bde20
--- /dev/null
+++ b/CleanCode/Model/ResItem.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+namespace CleanCode
+{
+ public class ResItem
+ {
+ public string StringContent { get; set; }
+ public string NameinResx { get; set; }
+ public string NameInSource { get; set; }
+ }
+}
diff --git a/CleanCode/Properties/AssemblyInfo.cs b/CleanCode/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1f4602f
--- /dev/null
+++ b/CleanCode/Properties/AssemblyInfo.cs
@@ -0,0 +1,20 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+[assembly: AssemblyTitle("CleanCode")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CleanCode")]
+[assembly: AssemblyCopyright("Copyright © 2023")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None,
+ ResourceDictionaryLocation.SourceAssembly
+)]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/CleanCode/Properties/Resources.Designer.cs b/CleanCode/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..08e2518
--- /dev/null
+++ b/CleanCode/Properties/Resources.Designer.cs
@@ -0,0 +1,42 @@
+namespace CleanCode.Properties {
+ using System;
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+ private static global::System.Resources.ResourceManager resourceMan;
+ private static global::System.Globalization.CultureInfo resourceCulture;
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CleanCode.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/CleanCode/Properties/Resources.resx b/CleanCode/Properties/Resources.resx
new file mode 100644
index 0000000..90bf6e2
--- /dev/null
+++ b/CleanCode/Properties/Resources.resx
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/CleanCode/Properties/Settings.Designer.cs b/CleanCode/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..9354d0d
--- /dev/null
+++ b/CleanCode/Properties/Settings.Designer.cs
@@ -0,0 +1,12 @@
+namespace CleanCode.Properties {
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/CleanCode/Properties/Settings.settings b/CleanCode/Properties/Settings.settings
new file mode 100644
index 0000000..9010101
--- /dev/null
+++ b/CleanCode/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CleanCode/Resource1.Designer.cs b/CleanCode/Resource1.Designer.cs
new file mode 100644
index 0000000..0cb43b9
--- /dev/null
+++ b/CleanCode/Resource1.Designer.cs
@@ -0,0 +1,82 @@
+namespace CleanCode {
+ using System;
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resource1 {
+ private static global::System.Resources.ResourceManager resourceMan;
+ private static global::System.Globalization.CultureInfo resourceCulture;
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resource1() {
+ }
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CleanCode.Resource1", typeof(Resource1).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ ///
+ /// Looks up a localized string similar to ActiveTab.
+ ///
+ internal static string ActiveTab {
+ get {
+ return ResourceManager.GetString("ActiveTab", resourceCulture);
+ }
+ }
+ ///
+ /// Looks up a localized string similar to Options.
+ ///
+ internal static string Options {
+ get {
+ return ResourceManager.GetString("Options", resourceCulture);
+ }
+ }
+ ///
+ /// Looks up a localized string similar to OPTIONS_DIALOG.
+ ///
+ internal static string OPTIONSDIALOG {
+ get {
+ return ResourceManager.GetString("OPTIONSDIALOG", resourceCulture);
+ }
+ }
+ ///
+ /// Looks up a localized string similar to {productKey}\Profiles\{acPrefComObj.Profiles.ActiveProfile}\Dialogs\OptionsDialog.
+ ///
+ internal static string productKeyProfilesacPrefComObjProfilesActiveProfileDialogsOptionsDialog {
+ get {
+ return ResourceManager.GetString("productKeyProfilesacPrefComObjProfilesActiveProfileDialogsOptionsDialog", resourceCulture);
+ }
+ }
+ ///
+ /// Looks up a localized string similar to Abc.
+ ///
+ internal static string test {
+ get {
+ return ResourceManager.GetString("test", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/CleanCode/Resource1.resx b/CleanCode/Resource1.resx
new file mode 100644
index 0000000..a3e3b08
--- /dev/null
+++ b/CleanCode/Resource1.resx
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Abc
+
+ OPTIONS_DIALOG
+ Options
+ {productKey}\Profiles\{acPrefComObj.Profiles.ActiveProfile}\Dialogs\OptionsDialog
+ ActiveTab
+
+
+
\ No newline at end of file
diff --git a/CleanCode/View/MainWindow.xaml b/CleanCode/View/MainWindow.xaml
new file mode 100644
index 0000000..9ffa7ce
--- /dev/null
+++ b/CleanCode/View/MainWindow.xaml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CleanCode/View/MainWindow.xaml.cs b/CleanCode/View/MainWindow.xaml.cs
new file mode 100644
index 0000000..1253b0a
--- /dev/null
+++ b/CleanCode/View/MainWindow.xaml.cs
@@ -0,0 +1,34 @@
+using CleanCode;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Security.Cryptography.X509Certificates;
+using System.Text.RegularExpressions;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Shapes;
+using static System.Net.Mime.MediaTypeNames;
+namespace CleanCode
+{
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ DataContext = new CleanCodeViewModel();
+ }
+ private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ Path.SelectAll();
+ }
+ private void Window_Activated(object sender, EventArgs e)
+ {
+ //Path.Text = Clipboard.GetText();
+ }
+
+ }
+}
diff --git a/CleanCode/ViewModel/CleanCodeViewModel.cs b/CleanCode/ViewModel/CleanCodeViewModel.cs
new file mode 100644
index 0000000..e1bfd80
--- /dev/null
+++ b/CleanCode/ViewModel/CleanCodeViewModel.cs
@@ -0,0 +1,306 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Windows;
+using System.Windows.Markup;
+using Utilities;
+namespace CleanCode
+{
+ public class CleanCodeViewModel : ViewModelBase
+ {
+ #region Properties
+ public MainWindow MainWindowView
+ {
+ get
+ {
+ if (MainWindowView == null)
+ {
+ MainWindowView = new MainWindow() { DataContext = this };
+ }
+ return MainWindowView;
+ }
+ set
+ {
+ MainWindowView = value;
+ OnPropertyChanged(nameof(MainWindowView));
+ }
+ }
+ private ObservableCollection _liststring;
+ public ObservableCollection liststring
+ {
+ get { return _liststring; }
+ set
+ {
+ if (_liststring != value)
+ {
+ _liststring = value;
+ OnPropertyChanged(nameof(_liststring));
+ }
+ }
+ }
+ private string _path;
+ public string Path
+ {
+ get { return _path; }
+ set
+ {
+ if (_path != value)
+ {
+ _path = value;
+ OnPropertyChanged(nameof(_path));
+ }
+ }
+ }
+ private string _NameCommand;
+ public string NameCommand
+ {
+ get { return _NameCommand; }
+ set
+ {
+ if (_NameCommand != value)
+ {
+ _NameCommand = value;
+ OnPropertyChanged(nameof(_NameCommand));
+ }
+ }
+ }
+ #endregion
+ #region Initialize
+ public CleanCodeViewModel()
+ {
+ Path = string.Empty;
+ NameCommand = string.Empty;
+ ButtonRemoveComment = new RelayCommand