Ejemplo n.º 1
0
        static List <Epdm.BomCells> Bom(string asmPath, string config, out List <Exception> exceptions)
        {
            List <Epdm.BomCells> bom = null;

            exceptions = new List <Exception>();
            try
            {
                if (string.IsNullOrEmpty(config))
                {
                    config = "00";
                }
                var emdpService = new Epdm();

                Exception exc;
                var       bomClassGetLastVersion = new Epdm
                {
                    BomId        = 8,
                    AssemblyPath = asmPath
                };
                bom = bomClassGetLastVersion.BomList(asmPath, config, false, out exc);
                if (exc != null)
                {
                    exceptions.Add(exc);
                }
            }
            catch (Exception ex)
            {
                exceptions.Add(ex);
            }
            return(bom);
        }
Ejemplo n.º 2
0
 static List<Epdm.BomCells> Bom(string asmPath, string config, out List<Exception> exceptions)
 {
     List<Epdm.BomCells> bom = null;            
     exceptions = new List<Exception>();
     try
     {
         if (string.IsNullOrEmpty(config))
         {
             config = "00";
         }
         var emdpService = new Epdm();
        
         Exception exc;
         var bomClassGetLastVersion = new Epdm
         {
             BomId = 8,
             AssemblyPath = asmPath
         };
         bom = bomClassGetLastVersion.BomList(asmPath, config, false, out exc);
         if (exc != null)
         {
             exceptions.Add(exc);
         }
     }
     catch (Exception ex)
     {
         exceptions.Add(ex);
     }
     return bom;           
 }
Ejemplo n.º 3
0
        public IList <Epdm.BomCells> Bom(string filePath, string config, bool asBuild)
        {
            var bomClass = new Epdm
            {
                BomId        = BomId,
                AssemblyPath = filePath,
            };
            Exception exception;

            return(bomClass.BomList(filePath, config, asBuild, out exception));
        }
        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)})";
            }
        }