Beispiel #1
0
        public static bool OpenIfExist(string FilePath, VaultSystem.VentsCadFile.Type type, DateTime?lastChange)
        {
            var open = false;

            //Получение файлов в хранилище
            if (string.IsNullOrEmpty(FilePath))
            {
                return(true);
            }
            var fileName = Path.GetFileNameWithoutExtension(FilePath);

            var cadFiles = VaultSystem.VentsCadFile.Get(fileName, type, Settings.Default.PdmBaseName);

            if (cadFiles == null)
            {
                return(false);
            }

            VaultSystem.VentsCadFile findedFile = null;

            try
            {
                findedFile = cadFiles.Single(x => Path.GetFileNameWithoutExtension(x.Path).ToLower() == fileName.ToLower());
            }
            catch (Exception exception)
            {
                // //MessageBox.Show(exception.ToString(), "findedFile");
            }

            if (findedFile == null)
            {
                return(false);
            }

            #region To delete

            //var filesList = "";
            //foreach (var file in cadFiles)
            //{
            //    filesList = filesList + "\n" + file.Path;
            //}
            // //MessageBox.Show(filesList);

            ////Совпавший по наименованию и типу файл
            // //MessageBox.Show(cadFiles[0].Path + "\n" + fileName);
            //var findedFile = cadFiles[0].ToString().ToLower().Equals(fileName.ToLower()) ? cadFiles[0] : null;
            //if (findedFile == null) return false;

            #endregion

            //Определение и получение данных в объект -olderFile- если файл записан раньше чем изменен шаблон (findedFile.Time < lastChange)
            var olderFile = VersionsFileInfo.Replaced.GetIfOlder(findedFile.Path, lastChange, findedFile.Time);

            bool result;
            if (olderFile == null)
            {
                result = true;  //MessageBox.Show(fileName + " уже есть в базе. Открыть? ", "", MessageBoxButton.YesNo);
            }
            else
            {
                result = true;  //MessageBox.Show(fileName + " уже есть в базе, но конструкция устарела.\nЧтобы обновить нажмите \"Да\",\nоткрыть существующую без обновления -  \"Отмена\"? ", "Обновить?", MessageBoxButton.YesNoCancel);
            }

            if (result == false)
            {
                open = true;
            }
            else if (result != false)
            {
                if (result == true)
                {
                    if (olderFile == null)
                    {
                        var processes = Process.GetProcessesByName("SLDWORKS");
                        if (processes?.Length > 0)
                        {
                            VentsCad.OpenSwDoc(findedFile.Path);
                        }
                        else
                        {
                            Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                                          "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                        }
                        open = true;
                    }
                    else
                    {
                        VaultSystem.CheckInOutPdm(new List <FileInfo> {
                            new FileInfo(findedFile.Path)
                        }, false);
                        open = false;
                    }
                }
                if (result == false)
                {
                    var processes = Process.GetProcessesByName("SLDWORKS");
                    if (processes?.Length > 0)
                    {
                        VentsCad.OpenSwDoc(findedFile.Path);
                    }
                    else
                    {
                        Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                                      "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                    }
                    open = true;

                    //VaultSystem.CheckInOutPdm(new List<FileInfo> { new FileInfo(findedFile.Path) }, false);
                    //open = false;
                }
            }
            return(open);
        }
        void SaveSettingsClick(object sender, RoutedEventArgs e)
        {
            Логгер.Информация("Сохранение настроек программы", "", "Сохранение настроек программы", "SettingsW");

            var testVaultSwEpdmRootPath = VaultSystem.GetSwEpdRootFolder("Tets_debag");

            //VaultSystem.SetPmdVaultName(VaultsComboBox.Text);
            var pdmRootPath = VaultSystem.GetSwEpdRootFolder(VaultsComboBox.Text);

            switch (VaultsComboBox.Text)
            {
            case "Tets_debag":
                //Settings.Default.SourceFolder = testVaultSwEpdmRootPath;
                MessageBox.Show(testVaultSwEpdmRootPath);
                Settings.Default.DestinationFolder = testVaultSwEpdmRootPath + "\\Vents-PDM";
                Settings.Default.PdmBaseName       = "Vents-PDM";
                //VaultsComboBox.Text;
                Settings.Default.TestPdmBaseName = VaultsComboBox.Text;
                Settings.Default.Save();
                MessageBox.Show(Settings.Default.DestinationFolder);

                Settings.Default.TestPdmBaseName = @"Tets_debag";
                break;

            case "Vents-PDM":
                Settings.Default.PdmBaseName       = VaultsComboBox.Text;
                Settings.Default.TestPdmBaseName   = VaultsComboBox.Text;
                Settings.Default.SourceFolder      = pdmRootPath;
                Settings.Default.DestinationFolder = pdmRootPath;
                break;

            default:
                Settings.Default.PdmBaseName       = VaultsComboBox.Text;
                Settings.Default.TestPdmBaseName   = VaultsComboBox.Text;
                Settings.Default.SourceFolder      = pdmRootPath;
                Settings.Default.DestinationFolder = pdmRootPath;
                break;
            }

            #region To Delete
            //switch (SQLBase.Text)
            //{
            //    case "Тестовая":
            //        Settings.Default.ConnectionToSQL = App.SqlTestConnectionString;
            //        break;
            //    default:
            //        Settings.Default.ConnectionToSQL = App.SqlConnectionString;
            //        break;
            //}
            #endregion

            var selectedItem = (KeyValuePair <string, int>)VaultsComboBox.SelectedItem;
            Settings.Default.VaultSystemType = selectedItem.Value;

            Settings.Default.ServiceAddress = VentsServiceAddress.Text;
            App.Service.SetAddress(Settings.Default.ServiceAddress);

            Settings.Default.Save();

            PdmBaseName.Content       = " PdmBaseName - " + Settings.Default.PdmBaseName;
            TestPdmBaseName.Content   = " TestPdmBaseName - " + Settings.Default.TestPdmBaseName;
            SourceFolder.Content      = " SourceFolder - " + Settings.Default.SourceFolder;
            DestinationFolder.Content = " DestinationFolder - " + Settings.Default.DestinationFolder;
            MessageBox.Show(Settings.Default.DestinationFolder);

            Логгер.Информация($"Сохранение настроек программы завершено для хранилища - {VaultsComboBox.Text},",
                              "", "Сохранение настроек программы", "SettingsW");

            Visibility = Visibility.Collapsed;
        }
        public static bool OpenIfExist(string FilePath, VaultSystem.VentsCadFile.Type type, DateTime?lastChange)
        {
            var open = false;

            //Получение файлов в хранилище
            if (string.IsNullOrEmpty(FilePath))
            {
                return(true);
            }
            var fileName = Path.GetFileNameWithoutExtension(FilePath);
            var cadFiles = VaultSystem.VentsCadFile.Get(fileName, type, Settings.Default.PdmBaseName);

            if (cadFiles == null)
            {
                return(false);
            }

            //Совпавший по наименованию и типу файл
            var findedFile = cadFiles[0];

            //Определение и получение данных в объект -olderFile- если файл записан раньше чем изменен шаблон (findedFile.Time < lastChange)
            var olderFile = VersionsFileInfo.Replaced.GetIfOlder(findedFile.Path, lastChange, findedFile.Time);

            MessageBoxResult result;

            if (olderFile == null)
            {
                result = MessageBox.Show(fileName + " уже есть в базе. Открыть? ", "", MessageBoxButton.YesNo);
            }
            else
            {
                result = MessageBox.Show(fileName + " уже есть в базе, но конструкция устарела.\nЧтобы обновить нажмите \"Да\",\nоткрыть существующую без обновления -  \"Отмена\"? ", "Обновить?", MessageBoxButton.YesNoCancel);
            }

            if (result == MessageBoxResult.No)
            {
                open = true;
            }
            else if (result != MessageBoxResult.No)
            {
                if (result == MessageBoxResult.Yes)
                {
                    if (olderFile == null)
                    {
                        var processes = Process.GetProcessesByName("SLDWORKS");
                        if (processes?.Length > 0)
                        {
                            VentsCad.OpenSwDoc(findedFile.Path);
                        }
                        else
                        {
                            Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                                          "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                        }
                        open = true;
                    }
                    else
                    {
                        VaultSystem.CheckInOutPdm(new List <FileInfo> {
                            new FileInfo(findedFile.Path)
                        }, false);
                        open = false;
                    }
                }
                if (result == MessageBoxResult.Cancel)
                {
                    var processes = Process.GetProcessesByName("SLDWORKS");
                    if (processes?.Length > 0)
                    {
                        VentsCad.OpenSwDoc(findedFile.Path);
                    }
                    else
                    {
                        Process.Start("conisio://" + Settings.Default.TestPdmBaseName + "/open?projectid=" + findedFile.ProjectId +
                                      "&documentid=" + findedFile.PartIdPdm + "&objecttype=1");
                    }
                    open = true;
                    //VaultSystem.CheckInOutPdm(new List<FileInfo> { new FileInfo(findedFile.Path) }, false);
                    //open = false;
                }
            }
            return(open);
        }