diff --git a/Drag-Drop/.vscode/launch.json b/Drag-Drop/.vscode/launch.json
new file mode 100644
index 0000000..5926784
--- /dev/null
+++ b/Drag-Drop/.vscode/launch.json
@@ -0,0 +1,26 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ // Use IntelliSense to find out which attributes exist for C# debugging
+ // Use hover for the description of the existing attributes
+ // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
+ "name": ".NET Core Launch (console)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ // If you have changed target frameworks, make sure to update the program path.
+ "program": "${workspaceFolder}/bin/Debug/net6.0-windows/win-x64/Drag-Drop.dll",
+ "args": [],
+ "cwd": "${workspaceFolder}",
+ // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
+ "console": "internalConsole",
+ "stopAtEntry": false
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Drag-Drop/.vscode/tasks.json b/Drag-Drop/.vscode/tasks.json
new file mode 100644
index 0000000..d14de89
--- /dev/null
+++ b/Drag-Drop/.vscode/tasks.json
@@ -0,0 +1,41 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/Drag-Drop.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/Drag-Drop.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "--project",
+ "${workspaceFolder}/Drag-Drop.csproj"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Drag-Drop/Drag-Drop.csproj b/Drag-Drop/Drag-Drop.csproj
new file mode 100644
index 0000000..27fe8c0
--- /dev/null
+++ b/Drag-Drop/Drag-Drop.csproj
@@ -0,0 +1,54 @@
+
+
+ enable
+ 10.0
+ enable
+ WinExe
+ win-x64
+ net6.0-windows
+ true
+
+
+ true
+ true
+ true
+
+
+ Windows
+
+
+ OSX
+
+
+ Linux
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
\ No newline at end of file
diff --git a/Drag-Drop/Form.Designer.cs b/Drag-Drop/Form.Designer.cs
new file mode 100644
index 0000000..c93bd8b
--- /dev/null
+++ b/Drag-Drop/Form.Designer.cs
@@ -0,0 +1,39 @@
+namespace View_by_Distance.Drag_Drop;
+
+partial class Form
+{
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(640, 100);
+ this.StartPosition = FormStartPosition.CenterScreen;
+ this.Text = "Form1";
+ }
+
+ #endregion
+}
diff --git a/Drag-Drop/Form.cs b/Drag-Drop/Form.cs
new file mode 100644
index 0000000..68270e3
--- /dev/null
+++ b/Drag-Drop/Form.cs
@@ -0,0 +1,150 @@
+using Microsoft.Extensions.Configuration;
+using Phares.Shared;
+using Serilog;
+using System.Diagnostics;
+using System.Reflection;
+using View_by_Distance.Drag_Drop.Models;
+using View_by_Distance.Resize.Models;
+using View_by_Distance.Shared.Models;
+using View_by_Distance.Shared.Models.Stateless.Methods;
+
+namespace View_by_Distance.Drag_Drop;
+
+public partial class Form : System.Windows.Forms.Form
+{
+
+ private readonly ILogger _Logger;
+ private readonly TextBox _TextBox;
+ private readonly AppSettings _AppSettings;
+ private readonly string _WorkingDirectory;
+ private readonly Configuration _Configuration;
+ private readonly IsEnvironment _IsEnvironment;
+ private readonly string _ResizeFileNameExtension;
+ private readonly IConfigurationRoot _ConfigurationRoot;
+ private readonly Property.Models.Configuration _PropertyConfiguration;
+ private readonly Dictionary _IdToMappingFromItem;
+
+ public Form()
+ {
+ InitializeComponent();
+ ILogger logger;
+ AppSettings appSettings;
+ string workingDirectory;
+ Configuration configuration;
+ IsEnvironment isEnvironment;
+ _IdToMappingFromItem = new();
+ IConfigurationRoot configurationRoot;
+ LoggerConfiguration loggerConfiguration = new();
+ Property.Models.Configuration propertyConfiguration;
+ Assembly assembly = Assembly.GetExecutingAssembly();
+ bool debuggerWasAttachedAtLineZero = Debugger.IsAttached || assembly.Location.Contains(@"\bin\Debug");
+ isEnvironment = new(processesCount: null, nullASPNetCoreEnvironmentIsDevelopment: debuggerWasAttachedAtLineZero, nullASPNetCoreEnvironmentIsProduction: !debuggerWasAttachedAtLineZero);
+ IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
+ .AddEnvironmentVariables()
+ .AddJsonFile(isEnvironment.AppSettingsFileName);
+ configurationRoot = configurationBuilder.Build();
+ appSettings = Models.Binder.AppSettings.Get(configurationRoot);
+ workingDirectory = IWorkingDirectory.GetWorkingDirectory(assembly.GetName().Name, appSettings.WorkingDirectoryName);
+ Environment.SetEnvironmentVariable(nameof(workingDirectory), workingDirectory);
+ _ = ConfigurationLoggerConfigurationExtensions.Configuration(loggerConfiguration.ReadFrom, configurationRoot);
+ Log.Logger = loggerConfiguration.CreateLogger();
+ logger = Log.ForContext