Exemple #1
0
        public static List <Files.Info> UpdateFileInfo(IEdmVault7 vault, List <Files.Info> listType)
        {
            var Fulllist = new List <Files.Info>();

            foreach (var fileVar in listType)
            {
                var filePath = fileVar.FolderPath + "\\" + fileVar.ConvertFile;
                var rev      = GetRevision(vault, fileVar.TaskType, filePath);

                string message;

                var udatedFile = new Files.Info
                {
                    CurrentVersion = fileVar.CurrentVersion,
                    FileName       = fileVar.FileName,
                    FolderPath     = fileVar.FolderPath,
                    FullFilePath   = fileVar.FullFilePath,
                    FolderID       = fileVar.FolderID,
                    IdPDM          = fileVar.IdPDM,
                    ConvertFile    = fileVar.ConvertFile,
                    Revision       = rev,

                    ExistEdrawing = fileVar.CurrentVersion.ToString() == rev,
                    ExistCutList  = ExportXmlSql.ExistXml(fileVar.FileName.ToUpper().Replace(".SLDPRT", ""), fileVar.CurrentVersion, out message),
                    ExistDXF      = CheckDxfExistance(vault, fileVar.IdPDM, fileVar.CurrentVersion, fileVar.FileName)
                };

                Fulllist.Add(udatedFile);
                //Logger.Add($"FileName: {udatedFile.FileName} Edrw: {udatedFile.ExistEdrawing} Dxf: {udatedFile.ExistDXF} XML: {udatedFile.ExistCutList} Message: {message}");
            }

            return(Fulllist);
        }
        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;
        }
        void ПолучитьПереченьДеталей()
        {
            try
            {
                if (AutoCompleteTextBox1.Text.ToLower().EndsWith("dprt"))
                {
                    var emdpService = new Epdm();
                    var path        = emdpService.SearchDoc(AutoCompleteTextBox1.Text);
                    var filePath    = path[0].FilePath;
                    ПутьКСборке = filePath;
                    var           lastVersion = SwEpdm.GetVersionOfFile(filePath, Settings.Default.PdmBaseName);
                    int           pdmId;
                    int           curVer;
                    string        name;
                    List <string> configurations;
                    SwEpdm.GetIdPdm(filePath, out name, out pdmId, out curVer, out configurations, true);

                    var partsListXml2S = new List <PartsListXml2>();

                    var listOfExc = new List <Exception>();

                    foreach (var configname in configurations)
                    {
                        Exception exc;
                        var       existDxf = ExistLastDxf(pdmId, curVer, configname, out exc);
                        if (exc != null)
                        {
                            listOfExc.Add(exc);
                        }

                        partsListXml2S.Add(new PartsListXml2
                        {
                            Наименование   = Path.GetFileNameWithoutExtension(filePath),
                            Путь           = filePath,
                            Xml            = ExportXmlSql.ExistXml(filePath, lastVersion),
                            CurrentVersion = lastVersion,
                            Конфигурация   = configname,
                            IdPmd          = pdmId,
                            Dxf            = existDxf,
                            ImageSrc       = existDxf ?
                                             @"\DataControls\Pictures\cancel.jpg" : @"\DataControls\Pictures\empty.jpg",
                            НаименованиеБезРасширения = Path.GetFileNameWithoutExtension(filePath)
                        });
                    }

                    PartsListXml2sDataGrid.ItemsSource = null;
                    PartsListXml2sDataGrid.ItemsSource = partsListXml2S;

                    ПереченьДеталей_Copy.Visibility = PartsListXml2sDataGrid.ItemsSource == null
                        ? Visibility.Hidden
                        : Visibility.Visible;

                    PartsListXml2sDataGrid_Copy.Visibility = Visibility.Collapsed;
                    XmlParts1_Copy.Visibility = Visibility.Collapsed;
                }

                else
                {
                    if (CurrentModel != AutoCompleteTextBox1.Text)
                    {
                        var emdpService = new Epdm();
                        var path        = emdpService.SearchDoc(AutoCompleteTextBox1.Text);
                        ПутьКСборке = path[0].FilePath;
                        var configs = emdpService.GetConfiguration(path[0].FilePath);
                        AssemblyConfigs          = configs.ToList();
                        ConfigsCombo.ItemsSource = AssemblyConfigs;
                        COnf.Visibility          = Visibility.Visible;
                        ConfigsCombo.Text        = AssemblyConfigs[0];
                    }

                    var bomClass = new Epdm
                    {
                        BomId        = 8,
                        AssemblyPath = ПутьКСборке
                    };
                    Exception exception;
                    var       спецификация = bomClass.BomList(ПутьКСборке, ConfigsCombo.Text, false, out exception);
                    if (exception != null)
                    {
                        MessageBox.Show(exception.StackTrace);
                    }

                    var partsListXml2S = new List <PartsListXml2>();
                    foreach (var item in спецификация)
                    {
                        if (!item.ТипФайла.ToLower().Contains("dprt"))
                        {
                            continue;
                        }
                        if (item.аздел == "Детали" || item.аздел == "")
                        {
                            partsListXml2S.Add(new PartsListXml2
                            {
                                CurrentVersion = Convert.ToInt32(item.ПоследняяВерсия),
                                IdPmd          = (int)item.IdPdm,
                                Наименование   = item.FileName,
                                Путь           = item.FilePath + @"\" + item.FileName,
                                Конфигурация   = item.Конфигурация,
                                Материал       = item.Материал
                            });
                        }
                    }

                    #region to delete
                    //var message = "";
                    //foreach (var item in excList)
                    //{
                    //    message = message + "\n_________\n" + item.Message + "\n" + item.StackTrace;
                    //}
                    //if (!string.IsNullOrEmpty(message))
                    //{
                    //    MessageBox.Show(message);
                    //}
                    #endregion

                    foreach (var listXml in partsListXml2S)
                    {
                        listXml.Xml =
                            ExportXmlSql.ExistXml(listXml.Наименование, listXml.CurrentVersion);
                        listXml.НаименованиеБезРасширения = listXml.Наименование.ToUpper().Replace(".SLDPRT", "");
                    }

                    var list = InnerPartsList();

                    var newList = from partsListXml2 in partsListXml2S
                                  join listXml2 in list
                                  on partsListXml2.НаименованиеБезРасширения.ToLower() equals
                                  listXml2.PartNumber.ToLower()
                                  select new
                    {
                        partsListXml2.НаименованиеБезРасширения,
                        listXml2.PartNumber,

                        listXml2.ЗаготовкаВысота,
                        listXml2.Толщина,
                        listXml2.ЗаготовкаШирина,
                        listXml2.Гибы,
                        listXml2.ПлощадьПокрытия,
                        listXml2.Конфигурация,
                        listXml2.ПлощадьS,
                        listXml2.МассаS,
                        partsListXml2.Материал
                    };


                    var newList2 = newList.Select(variable => new PartsListXml2
                    {
                        НаименованиеБезРасширения = variable.НаименованиеБезРасширения,
                        PartNumber      = variable.PartNumber,
                        ЗаготовкаВысота = variable.ЗаготовкаВысота,
                        Толщина         = variable.Толщина,
                        ЗаготовкаШирина = variable.ЗаготовкаШирина,
                        Гибы            = variable.Гибы,
                        ПлощадьПокрытия = variable.ПлощадьПокрытия,
                        Конфигурация    = variable.Конфигурация,
                        Материал        = variable.Материал
                    }).ToList();


                    var newListOrder = new List <PartsListXml2>();
                    foreach (var partsListXml2 in partsListXml2S)
                    {
                        try
                        {
                            var selectedItem =
                                newList2.Where(
                                    x =>
                                    string.Equals(x.НаименованиеБезРасширения.ToLower(),
                                                  partsListXml2.Наименование.Replace(".SLDPRT", "").ToLower(),
                                                  StringComparison.CurrentCultureIgnoreCase) &&
                                    x.Конфигурация == partsListXml2.Конфигурация);

                            foreach (var listXml2 in selectedItem)
                            {
                                if (newListOrder.Any(x => string.Equals(x.НаименованиеБезРасширения,
                                                                        listXml2.НаименованиеБезРасширения,
                                                                        StringComparison.CurrentCultureIgnoreCase) &&
                                                     x.Конфигурация == listXml2.Конфигурация))
                                {
                                    continue;
                                }

                                newListOrder.Add(new PartsListXml2
                                {
                                    НаименованиеБезРасширения = listXml2.НаименованиеБезРасширения,
                                    PartNumber = listXml2.PartNumber,

                                    ЗаготовкаВысота = listXml2.ЗаготовкаВысота,
                                    Толщина         = listXml2.Толщина,
                                    ЗаготовкаШирина = listXml2.ЗаготовкаШирина,
                                    Гибы            = listXml2.Гибы,
                                    ПлощадьПокрытия = listXml2.ПлощадьПокрытия,
                                    Конфигурация    = listXml2.Конфигурация,

                                    Материал = listXml2.Материал,
                                    МассаS   = GetMass(listXml2.ПлощадьПокрытия, listXml2.Толщина)
                                });
                            }
                        }
                        catch (Exception exceptio)
                        {
                            MessageBox.Show(exceptio.StackTrace);
                        }
                    }

                    var listXml2S = new List <PartsListXml2>();

                    partsListXml2S = partsListXml2S.OrderBy(x => x.Наименование).ThenBy(x => x.Конфигурация).ToList();
                    listXml2S.Add(partsListXml2S[0]);

                    for (var i = 0; i < partsListXml2S.Count - 1; i++)
                    {
                        var currentItem = partsListXml2S[i];
                        var newItem     = partsListXml2S[i + 1];
                        if (!(currentItem.Наименование == newItem.Наименование && currentItem.Конфигурация == newItem.Конфигурация))
                        {
                            listXml2S.Add(newItem);
                        }
                    }

                    foreach (var item in listXml2S)
                    {
                        Exception exc;
                        var       existDxf = ExistLastDxf((int)item.IdPmd, (int)item.CurrentVersion, item.Конфигурация, out exc);
                        item.Dxf      = existDxf;
                        item.ImageSrc = existDxf ?
                                        @"\DataControls\Pictures\cancel.jpg" : @"\DataControls\Pictures\empty.jpg";
                    }



                    PartsListXml2sDataGrid.ItemsSource = null;
                    PartsListXml2sDataGrid.ItemsSource = listXml2S;

                    ПереченьДеталей_Copy.Visibility = PartsListXml2sDataGrid.ItemsSource == null
                        ? Visibility.Hidden
                        : Visibility.Visible;

                    PartsListXml2sDataGrid_Copy.Visibility = Visibility.Visible;
                    XmlParts1_Copy.Visibility = Visibility.Visible;

                    PartsListXml2sDataGrid_Copy.ItemsSource =
                        newListOrder.OrderBy(x => x.НаименованиеБезРасширения).ThenBy(x => x.Конфигурация);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.ToString());
            }
            finally
            {
                CurrentModel = AutoCompleteTextBox1.Text;
                var sdgv = (List <PartsListXml2>)PartsListXml2sDataGrid.ItemsSource;
                ПереченьДеталей_Copy.Header = CurrentModel.ToLower().EndsWith("prt") ? $"Деталь {CurrentModel}" :
                                              $"Перечень деталей для сборки {CurrentModel.ToUpper().Replace(".SLDASM","")}-{ConfigsCombo.Text} (Всего деталей: {PartsListXml2sDataGrid.Items.Count}шт. Разверток - {sdgv.Count(x=>x.Dxf)} 1С - {sdgv.Count(x => x.Xml)})";
            }
        }
Exemple #4
0
        private static void ExportDataToXmlSql(SldWorks swApp, Files.Info item, ModelDoc2 swModel, ref Exception exOut, object[] confArray, out bool isFix)
        {
            if (!item.ExistCutList)
            {
                try
                {
                    List <ExportXmlSql.DataToExport> listCutList = new List <ExportXmlSql.DataToExport>();                                                       // using export part data

                    // Проходимся по всем конфигурация для Fix, CutList
                    foreach (var confName in confArray)
                    {
                        Configuration swConf = swModel.GetConfigurationByName(confName.ToString());
                        if (swConf.IsDerived())
                        {
                            continue;                     // только детали верхнего уровня
                        }
                        swModel.ShowConfiguration2(confName.ToString());

                        // Проверка на CutList: false - XML отсутствует, true - XML есть
                        if (!item.ExistCutList)
                        {
                            var list = new List <Bends.SolidWorksFixPattern.PartBendInfo>(); // using export part data
                            Bends.Fix(swApp, out list, false);                               // разгиб

                            List <ExportXmlSql.DataToExport> listCutListConf;                // using export part data
                            ExportXmlSql.GetCurrentConfigPartData(swApp, item.CurrentVersion, item.IdPDM, false, false, out listCutListConf, out exOut);
                            listCutList.AddRange(listCutListConf);
                        }
                        if (exOut != null)
                        {
                            Logger.Add(exOut.Message);
                        }
                    }

                    isFix = true;

                    //CutList To Sql
                    if (listCutList != null)
                    {
                        //Logger.Add("=============================== Сохранение Cut list data через  ExportXmlSql.ExportDataToXmlSql метод =====================================");
                        //System.Text.StringBuilder messageBuilder = new System.Text.StringBuilder();
                        //foreach (var EachCut in listCutList)
                        //{
                        //    messageBuilder.Append("id " + EachCut.IdPdm+", ");

                        //    messageBuilder.Append("name " + EachCut.FileName + ", ");

                        //    messageBuilder.Append("ver. " + EachCut.Version + ", ");

                        //    messageBuilder.Append("conf. " + EachCut.Config + ", ");

                        //    messageBuilder.Append("Mat-l Id " + EachCut.MaterialId + ", ");

                        //    messageBuilder.Append("PaintX " + EachCut.PaintX + ", ");
                        //    messageBuilder.Append("PaintY " + EachCut.PaintY + ", ");
                        //    messageBuilder.Append("PaintZ " + EachCut.PaintZ + ", ");

                        //    messageBuilder.Append("ДлинаГраничнойРамки " + EachCut.ДлинаГраничнойРамки + ", ");
                        //    messageBuilder.Append("КодМатериала " + EachCut.КодМатериала + ", ");
                        //    messageBuilder.Append("Материал " + EachCut.Материал + ", ");
                        //    messageBuilder.Append("ПлощадьПокрытия " + EachCut.ПлощадьПокрытия + ", ");
                        //    messageBuilder.Append("Сгибы " + EachCut.Сгибы + ", ");

                        //    messageBuilder.Append("ТолщинаЛистовогоМеталла " + EachCut.ТолщинаЛистовогоМеталла + ", ");
                        //    messageBuilder.Append("ШиринаГраничнойРамки " + EachCut.ШиринаГраничнойРамки + ", ");
                        //    messageBuilder.Append("\n============================================================================================\n");
                        //}

                        //Logger.Add(messageBuilder.ToString());

                        ExportXmlSql.ExportDataToXmlSql(item.FileName.ToUpper().Replace(".SLDPRT", ""), listCutList, out exOut);                                            // using export part data
                        if (exOut != null)
                        {
                            Logger.Add(exOut.Message);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Add("!item.ExistCutList ------ " + ex.Message + "; " + ex.StackTrace);
                }
            }
            isFix = false;
        }