public DirectoryCloneFacade(CurrentSessionSetting settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     sessionSetting = settings;
     initializeWorker = new BackgroundWorker {WorkerReportsProgress = true};
     initializeWorker.DoWork += InitializeClone;
     initializeWorker.RunWorkerCompleted += StartClone;
 }
 private static DirectoryCloneConfiguration CreateConfiguration(CurrentSessionSetting settings)
 {
     if (settings == null)
     {
         throw new ArgumentNullException(nameof(settings));
     }
     return new DirectoryCloneConfiguration
     {
         FileServerIpAdress = Dns.GetHostEntry(Dns.GetHostName())
             .AddressList.First(ip => GroupsEditorValidator
                 .ValidateIpAdress(ip.ToString())).ToString(),
         FileServerPort = settings.FileServerPort,
         MultithreadLoadFile = SettingsHandler.MultithreadLoad,
         TargetDirectory = settings.DestinationPath
     };
 }