static void GetFiles(IEnumerable <PartsListXml2> list, out List <VaultSystem.PdmFilesAfterGet> pdmFilesAfterGet)
 {
     ModelSw.BatchGet(Settings.Default.PdmBaseName, list.Select(x => new VaultSystem.BatchParams
     {
         CurrentVersion = x.CurrentVersion,
         FilePath       = x.Путь,
         IdPdm          = x.IdPmd
     }).ToList(),
                      out pdmFilesAfterGet);
 }
        void ExportToXml()
        {
            if (IsBusy)
            {
                return;
            }

            try
            {
                Busy = $"Выгрузка {CurrentModel}";
                if (!OnlyParts)
                {
                    if (!ПутьКСборке.ToLower().EndsWith("dprt"))
                    {
                        List <Exception> excptions;
                        PdmAsmBomToXml.AsmBomToXml.ВыгрузкаСборкиВXml(ПутьКСборке, out excptions);
                    }
                }
            }
            catch (Exception)
            {
                //  MessageBox.Show(exception.StackTrace);
            }

            GetFiles(ListToRun.Where(newComponent => !newComponent.Xml), out _pdmFilesAfterGet);

            // var list = _pdmFilesAfterGet.Where(x => !x.Equal).ToList();

            //var sf = "";

            //foreach (var item in list)
            //{
            //    sf  = sf + "\nName - " + item.FileName + " Path - " + item.FilePath + " VerBG - " + item.VersionBeforeGet + " VerAG - " + item.VersionBeforeGet;
            //}

            //MessageBox.Show(sf, list?.Count.ToString());


            try
            {
                foreach (var newComponent in ListToRun.Where(newComponent => !newComponent.Xml))
                {
                    using (var modelSw = new ModelSw())
                    {
                        try
                        {
                            Exception exception;
                            ExportXmlSql.Export(modelSw.GetSwWithPart(newComponent.Путь), newComponent.CurrentVersion, (int)newComponent.IdPmd, out exception);
                            if (exception != null)
                            {
                                MessageBox.Show(exception.Message);
                            }
                            //modelSw.ExitSw();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.StackTrace);
            }
            MessageBox.Show($"Выгрузка {Path.GetFileNameWithoutExtension(ПутьКСборке)} завершена");
            Busy = null;
        }
        private void BuildPanel()
        {
            var mat1Code = "";
            var mat2Code = "";

            var viewRowMat1 = (DataRowView)MaterialP1.SelectedItem;
            var row1        = viewRowMat1.Row;

            if (row1 != null)
            {
                mat1Code = row1.Field <string>("CodeMaterial");
            }
            var viewRowMat2 = (DataRowView)MaterialP2.SelectedItem;
            var row2        = viewRowMat2.Row;

            if (row2 != null)
            {
                mat2Code = row2.Field <string>("CodeMaterial");
            }


            var materialP1 = new[] { MaterialP1.SelectedValue.ToString(), ТолщинаВнешней.Text, MaterialP1.Text, mat1Code };
            var materialP2 = new[] { MaterialP2.SelectedValue.ToString(), ТолщинаВннутренней.Text, MaterialP2.Text, mat2Code };


            var thicknessOfPanel = ((ComboBoxItem)TypeOfPanel.SelectedItem).Content.ToString().Remove(2);

            //MessageBox.Show(thicknessOfPanel);

            #region VentsCadLibrary

            //MessageBox.Show(Ral1.SelectedValue + " " + CoatingType1.Text, CoatingClass1.Text);

            //var vcad = new VentsCadLibrary.VentsCad
            //{
            //    ConnectionToSql = Settings.Default.ConnectionToSQL,
            //    DestVaultName = Settings.Default.TestPdmBaseName,
            //    VaultName = Settings.Default.PdmBaseName
            //};

            //MessageBox.Show(TypeOfPanel50.SelectedValue
            //    + " \n " + TypeOfPanel50.Text
            //    + " \n " + Ral1.Text
            //    + " \n " + CoatingType1.Text
            //    + " \n " + CoatingClass1.Text
            //    );

            //vcad.Panels50(
            //    typeOfPanel: new[] { TypeOfPanel50.SelectedValue.ToString(), TypeOfPanel50.Text },
            //    width: WidthPanel.Text,
            //    lenght: HeightPanel.Text,
            //    materialP1: materialP1,
            //    materialP2: materialP2,
            //    покрытие: new[]
            //    {
            //        Ral1.Text, CoatingType1.Text, CoatingClass1.Text,
            //        Ral2.Text, CoatingType2.Text, CoatingClass2.Text,
            //        Ral1.SelectedValue?.ToString() ?? "",
            //        Ral2.SelectedValue?.ToString() ?? ""
            //    },
            //    onlyPath: false);

            #endregion

            var sw = new ModelSw();

            switch (thicknessOfPanel)
            {
            case "30":
                string path;
                sw.Panels30Build(
                    typeOfPanel:
                    new[] { TypeOfPanel50.SelectedValue.ToString(), TypeOfPanel50.Text, thicknessOfPanel },
                    width: WidthPanel.Text,
                    height: HeightPanel.Text,
                    materialP1: materialP1,
                    materialP2: materialP2,
                    покрытие: null,
                    //покрытие: new[]
                    //{
                    //    Ral1.Text, CoatingType1.Text, CoatingClass1.Text,
                    //    Ral2.Text, CoatingType2.Text, CoatingClass2.Text,
                    //    Ral1.SelectedValue?.ToString() ?? "",
                    //    Ral2.SelectedValue?.ToString() ?? ""
                    //},
                    path: out path);
                break;

            case "50":
            case "70":
                sw.Panels50Build(
                    typeOfPanel: new[] { TypeOfPanel50.SelectedValue.ToString(), TypeOfPanel50.Text, thicknessOfPanel },
                    width: WidthPanel.Text,
                    height: HeightPanel.Text,
                    materialP1: materialP1,
                    meterialP2: materialP2,
                    покрытие: null
                    //покрытие: new[]
                    //{
                    //    Ral1.Text, CoatingType1.Text, CoatingClass1.Text,
                    //    Ral2.Text, CoatingType2.Text, CoatingClass2.Text,
                    //    Ral1.SelectedValue?.ToString() ?? "",
                    //    Ral2.SelectedValue?.ToString() ?? ""
                    //}
                    );
                break;
            }
        }
        void BUILDING_Click(object sender, RoutedEventArgs args)
        {
            var sw = new ModelSw();

            var width  = Convert.ToDouble(WidthU.Text);
            var height = Convert.ToDouble(HeightU.Text);
            var lenght = Convert.ToDouble(Lenght.Text);

            try
            {
                #region Панели

                var paneltype1 = TypeOfPanel1.Text;
                var m1         = new[] { MaterialP1.Text, null };
                var m2         = new[] { MaterialP2.Text, null };

                var p1      = "";
                var p2      = "";
                var p3      = "";
                var p4      = "";
                var widthVb = Panel4.Text;
                if (Panel50.IsChecked != true)
                {
                    paneltype1 = "";
                    m1         = null;
                    m2         = null;
                }
                else
                {
                    p1 = sw.Panels50BuildStr(new[] { null, TypeOfPanel1.Text }, Panel1.Text, Convert.ToString(height - 100), m1, m2, null, true);
                    p2 = sw.Panels50BuildStr(new[] { null, TypeOfPanel1.Text }, Panel2.Text, Convert.ToString(height - 100), m1, m2, null, true);
                    p3 = sw.Panels50BuildStr(new[] { null, TypeOfPanel1.Text }, Panel3.Text, Convert.ToString(height - 100), m1, m2, null, true);
                    p4 = sw.Panels50BuildStr(new[] { null, TypeOfPanel1.Text }, Panel4.Text, Convert.ToString(height - 100), m1, m2, null, true);
                }

                #endregion

                #region Монтажная рама

                if (FrameOffset.Text == "")
                {
                    FrameOffset.Text = Convert.ToString(Convert.ToDouble(Lenght.Text) / 2);
                }
                var mfthikness  = Thikness.Text;
                var typeofframe = TypeOfFrame.Text;
                var frameoffcet = FrameOffset.Text;
                if (MontageFrame50.IsChecked != true)
                {
                    mfthikness = "";
                }

                #endregion

                #region Крыша

                var roofType = TypeOfRoof.Text;
                if (RoofOfUnit50.IsChecked != true)
                {
                    roofType = "";
                }

                var size = SizeOfUnit.Text;
                if (Nonstandard.IsChecked == true)
                {
                    size = size + "N";
                }

                #endregion

                #region Заслонка

                var dumper = "";
                if (DumperInMonoblock.IsChecked == true)
                {
                    var w = width - 80;
                    var h = height - 90;
                    if (TypeOfDumper.Text == "20")
                    {
                        w = width - 70;
                        h = height - 90 + 17;
                    }
                    dumper = sw.DumperS(TypeOfDumper.Text, Convert.ToString(w), Convert.ToString(h), false, null).Replace("DRW", "ASM");
                }

                #endregion

                #region Вибровставки

                var spigot = "";
                if (Spigot.IsChecked == true)
                {
                    var w = width - 114 + 31;
                    var h = height - 114 + 31;
                    if (TypeOfSpigot.Text == "20")
                    {
                        w = width - 100 + 31;
                        h = height - 100 + 31;
                    }
                    spigot = sw.SpigotStr(TypeOfSpigot.Text, Convert.ToString(w), Convert.ToString(h)).Replace("DRW", "ASM");
                }

                #endregion

                #region Фильтр

                var filter = "";
                if (InnerOfUnit50.IsChecked == true)
                {
                    filter = @"D:\Vents-PDM\Проекты\Blauberg\04 - Фильтры\" + ModelName1.Text + ".SLDASM";
                }

                #endregion

                #region Теплообменник 1

                var heater = "";
                if (InnerOfUnit50.IsChecked == true)
                {
                    heater = @"D:\Vents-PDM\Проекты\Blauberg\16 - Узел нагревателя водяного\" + ModelName2.Text + ".SLDASM";
                }

                #endregion

                #region Теплообменник 2

                var cooler = "";
                if (InnerOfUnit50.IsChecked == true)
                {
                    cooler = @"D:\Vents-PDM\Проекты\Blauberg\16 - Узел нагревателя водяного\" + ModelName2.Text + ".SLDASM";
                }

                #endregion

                #region Вентагрегат

                var ventil = "";
                if (InnerOfUnit50.IsChecked == true)
                {
                    ventil = @"D:\Vents-PDM\Проекты\Blauberg\16 - Узел нагревателя водяного\" + ModelName2.Text + ".SLDASM";
                }

                #endregion

                sw.UnitS50(
                    size: size,
                    type: "MonoBlock",
                    side: SideService.Text,
                    widthS: Convert.ToString(width),
                    heightS: Convert.ToString(height),
                    lenghtS: Convert.ToString(lenght),
                    montageFrame: mfthikness,
                    typeOfFrame: typeofframe,
                    frameOffset: frameoffcet,
                    typeOfPanel: paneltype1,
                    materialP1: m1,
                    materialP2: m2,
                    roofType: roofType,
                    dumper: dumper,
                    spigot: spigot,
                    p1: p1,
                    p2: p2,
                    p3: p3,
                    p4: p4,
                    widthVb: widthVb,
                    filter: filter,
                    heater: heater,
                    cooler: cooler,
                    ventil: ventil);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                //  sw.Logger.Log(LogLevel.Error, string.Format("Ошибка во время генерации блока {0}, время - {1}", DateTime.Now), args);
            }
        }