private void AddTarget()
        {
            this.NewTargetFolder.Validate();

            var selectedPath = this.NewTargetFolder.FolderPath;
            var targetPath   = Path.Combine(selectedPath, "VirgilDisk");

            var errors = this.folderSettingsStorage.ValidateAddTarget(targetPath);

            this.NewTargetFolder.AddErrors(errors.SelectMany(it => it.Value).ToList());

            if (this.NewTargetFolder.HasErrors)
            {
                return;
            }

            if (!Directory.Exists(targetPath))
            {
                var di = Directory.CreateDirectory(targetPath);
                di.Attributes |= FileAttributes.Hidden;
            }

            var targetAlias = Path.GetDirectoryName(selectedPath)
                              ?.Split(Path.DirectorySeparatorChar)
                              .LastOrDefault(it => !string.IsNullOrWhiteSpace(it)) ?? "";

            var folderDescriptor = new Folder
            {
                Alias      = targetAlias,
                FolderPath = targetPath
            };

            var model = new FolderViewModel(folderDescriptor);

            model.OnSuccessfullyChanged += this.OnFolderChanged;

            this.TargetFolders.Add(model);
            this.UpdateStorage();
            this.NewTargetFolder.Reset();
        }
 private void OnFolderChanged(FolderViewModel model)
 {
     this.UpdateStorage();
 }
 private void RemoveTarget(FolderViewModel item)
 {
     item.OnSuccessfullyChanged -= this.OnFolderChanged;
     this.TargetFolders.Remove(item);
     this.UpdateStorage();
 }