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)})"; } }
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; }