Пример #1
0
 // Выбрать dwg-файл для добавления в него нового блока
 private void BtSelectDwgFile_OnClick(object sender, RoutedEventArgs e)
 {
     try
     {
         var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog(
             ModPlusAPI.Language.GetItem(LangItem, "msg47"), _dwgBaseFolder, "dwg", "name",
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites |
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions |
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls |
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder |
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder |
             Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
         var needLoop = true;
         while (needLoop)
         {
             var ofdresult = ofd.ShowDialog();
             if (ofdresult == System.Windows.Forms.DialogResult.OK)
             {
                 var selectedFile = ofd.Filename;
                 if (selectedFile.Contains(_dwgBaseFolder))
                 {
                     if (DwgBaseHelpers.Is2010DwgVersion(selectedFile))
                     {
                         TbSourceFile.Text = DwgBaseHelpers.TrimStart(selectedFile, _dwgBaseFolder).TrimStart('\\');
                         needLoop          = false;
                     }
                     else
                     {
                         ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg48"));
                     }
                 }
                 else
                 {
                     ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg49") + " " + _dwgBaseFolder);
                 }
             }
             else if (ofdresult == System.Windows.Forms.DialogResult.Cancel)
             {
                 return;
             }
             else
             {
                 needLoop = false;
             }
         }
     }
     catch (Exception exception)
     {
         ExceptionBox.Show(exception);
     }
     finally
     {
         Focus();
     }
 }
Пример #2
0
        private void BtCopyDwgFile_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var selectedFile = string.Empty;
                var selectedPath = string.Empty;
                var copiedFile   = string.Empty;

                // Сначала нужно выбрать файл, проверив версию его
                var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog(ModPlusAPI.Language.GetItem(LangItem, "msg59"), _dwgBaseFolder, "dwg", "name",
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites |
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions |
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls |
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder |
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder |
                                                                      Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles);
                var needLoop = true;
                while (needLoop)
                {
                    var ofdresult = ofd.ShowDialog();
                    if (ofdresult == System.Windows.Forms.DialogResult.OK)
                    {
                        selectedFile = ofd.Filename;
                        if (DwgBaseHelpers.Is2010DwgVersion(selectedFile))
                        {
                            if (!DwgBaseHelpers.HasProxyEntities(selectedFile))
                            {
                                needLoop = false;
                            }
                            else
                            {
                                ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg60"));
                            }
                        }
                        else
                        {
                            ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg48"));
                        }
                    }
                    else if (ofdresult == System.Windows.Forms.DialogResult.Cancel)
                    {
                        return;
                    }
                    else
                    {
                        needLoop = false;
                    }
                }

                // Теперь нужно указать папку для расположения файла
                var fbd = new System.Windows.Forms.FolderBrowserDialog
                {
                    Description         = ModPlusAPI.Language.GetItem(LangItem, "msg61"),
                    SelectedPath        = _dwgBaseFolder,
                    ShowNewFolderButton = true
                };
                needLoop = true;
                while (needLoop)
                {
                    var fbdResult = fbd.ShowDialog();
                    if (fbdResult == System.Windows.Forms.DialogResult.OK)
                    {
                        selectedPath = fbd.SelectedPath;
                        if (selectedPath.Contains(_dwgBaseFolder))
                        {
                            if (!selectedPath.Equals(_dwgBaseFolder))
                            {
                                var fi = new FileInfo(selectedFile);
                                copiedFile = System.IO.Path.Combine(selectedPath, fi.Name);
                                if (File.Exists(copiedFile))
                                {
                                    needLoop =
                                        !ModPlusAPI.Windows.MessageBox.ShowYesNo(
                                            ModPlusAPI.Language.GetItem(LangItem, "msg62") + " " + fi.Name +
                                            Environment.NewLine + ModPlusAPI.Language.GetItem(LangItem, "msg63"), MessageBoxIcon.Question);
                                }
                                else
                                {
                                    needLoop = false;
                                }
                            }
                            else
                            {
                                ModPlusAPI.Windows.MessageBox.Show(
                                    ModPlusAPI.Language.GetItem(LangItem, "msg64") + " " + _dwgBaseFolder + Environment.NewLine +
                                    ModPlusAPI.Language.GetItem(LangItem, "msg52"));
                            }
                        }
                        else
                        {
                            ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg65") + " " + _dwgBaseFolder);
                        }
                    }
                    else if (fbdResult == System.Windows.Forms.DialogResult.Cancel)
                    {
                        return;
                    }
                    else
                    {
                        needLoop = true;
                    }
                }

                // then copy file
                if (!string.IsNullOrEmpty(selectedFile) & !string.IsNullOrEmpty(selectedPath))
                {
                    if (File.Exists(selectedFile))
                    {
                        File.Copy(selectedFile, copiedFile, true);
                        if (File.Exists(copiedFile))
                        {
                            TbSourceFile.Text  = DwgBaseHelpers.TrimStart(copiedFile, _dwgBaseFolder).TrimStart('\\');
                            BtAccept.IsEnabled = true;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                ExceptionBox.Show(exception);
            }
            finally
            {
                Focus();
            }
        }