public List <Epdm.SearchColumnName> SearchDoc(string name) { var epdmClass = new Epdm(); var searchList = epdmClass.SearchDoc(name); return(searchList); }
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)})"; } }