Amoeba.Windows.ShareControl._listViewCheckExistMenuItem_Click C# (CSharp) Method

_listViewCheckExistMenuItem_Click() private method

private _listViewCheckExistMenuItem_Click ( object sender, RoutedEventArgs e ) : void
sender object
e System.Windows.RoutedEventArgs
return void
        private void _listViewCheckExistMenuItem_Click(object sender, RoutedEventArgs e)
        {
            _listViewCheckExistMenuItem_IsEnabled = false;

            Task.Run(() =>
            {
                Thread.CurrentThread.IsBackground = true;

                try
                {
                    var sb = new StringBuilder();
                    sb.AppendLine("Share Delete");

                    var paths = _amoebaManager.ShareInformation.ToArray()
                        .Where(n => n.Contains("Path"))
                        .Select(n => (string)n["Path"]);

                    var dic = new ConcurrentDictionary<string, HashSet<string>>();

                    foreach (var path in paths)
                    {
                        var directoryPath = System.IO.Path.GetDirectoryName(path);

                        var hashSet = dic.GetOrAdd(directoryPath, _ =>
                        {
                            return new HashSet<string>(Directory.GetFiles(directoryPath, "*", SearchOption.TopDirectoryOnly));
                        });

                        if (!hashSet.Contains(path))
                        {
                            _amoebaManager.RemoveShare(path);
                            sb.AppendLine(path);
                        }
                    }

                    Log.Information(sb.ToString().TrimEnd('\r', '\n'));
                }
                catch (Exception)
                {

                }

                _listViewCheckExistMenuItem_IsEnabled = true;
            });
        }