MonoDevelop.VersionControl.TFS.GUI.VersionControl.SourceControlExplorerView.CreateAddFileMenuItem C# (CSharp) Method

CreateAddFileMenuItem() private method

private CreateAddFileMenuItem ( ExtendedItem item ) : Gtk.MenuItem
item ExtendedItem
return Gtk.MenuItem
        private MenuItem CreateAddFileMenuItem(ExtendedItem item)
        {
            MenuItem addItem = new MenuItem(GettextCatalog.GetString("Add new item"));
            addItem.Activated += (sender, e) =>
            {
                var path = item.LocalItem;
                if (string.IsNullOrEmpty(path))
                    path = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath);

                using (Xwt.OpenFileDialog openFileDialog = new Xwt.OpenFileDialog("Browse For File"))
                {
                    openFileDialog.CurrentFolder = path;
                    openFileDialog.Multiselect = true;
                    if (openFileDialog.Run())
                    {
                        List<FilePath> files = new List<FilePath>();
                        foreach (var fileName in openFileDialog.FileNames) 
                        {
                            //Check if file is in other folder
                            if (!string.Equals(Path.GetDirectoryName(fileName), path))
                            {
                                var newPath = Path.Combine(path, Path.GetFileName(fileName));
                                File.Copy(fileName, newPath);
                                files.Add(newPath);
                            }
                            else
                                files.Add(fileName);
                        }
                        _currentWorkspace.PendAdd(files, false);
                        CheckInDialog.Open(new List<ExtendedItem> { item }, _currentWorkspace);
                    }
                }
            };
            return addItem;
        }