Esempio n. 1
0
        private void adicionaRamalCategoria(string guidcatalogo, List <RamalEstoque> ramaisCatalogos)
        {
            /*
             * string qry = "SELECT Categoria.GUID, Categoria.NOME"
             + " FROM Categorias_Catalogo INNER JOIN"
             + " Categoria ON Categorias_Catalogo.GUID_CATEGORIA = Categoria.GUID"
             + " WHERE(Categorias_Catalogo.GUID_CATALOGO = '" + guidCatalogo + "')";
             +
             */
            var categoriaRepositorio = new BaseMDBRepositorio <Categoria>("Catalogo", "Categorias");

            var filtroCategorias = Builders <Categoria> .Filter.Eq(x => x.GUID_CATALOGO, guidcatalogo);

            //var itensPipeCategoria = itemPipeEstoqueRepositorio.Encontrar(filtro);
            var tipoRepositorio = new BaseMDBRepositorio <TipoItemEng>("Catalogo", "TipoItemEng");

            var listaCategoriasCatalogo = categoriaRepositorio.Encontrar(filtroCategorias);//_itemEngenhariaService.ObterCategorias(guidcatalogo);//new ArquivoEstoqueService().ObterPorConfiguracao(guidcatalogo);

            var cat = ramaisCatalogos.First(x => x.guid == guidcatalogo);

            if (cat != null)
            {
                foreach (var categoria in listaCategoriasCatalogo)
                {
                    var filtroTipo = Builders <TipoItemEng> .Filter.Eq(x => x.GUID, categoria.GUID_TIPO);

                    var tipo  = tipoRepositorio.Encontrar(filtroTipo).First();
                    var categ = new RamalEstoque(tipo.NOME, categoria.GUID, guidcatalogo);
                    adicionaRamalFamilia(guidcatalogo, categ);
                    cat.Adiciona(categ);
                }
            }
        }
Esempio n. 2
0
        public IEnumerable <RamalEstoque> GetArvore()
        {
            var repositorio          = new BaseMDBRepositorio <RamalEstoque>("Catalogo", "RamalEstoque");
            var arvoreServiceEstoque = new CriaRamaisEstoque(new RamalEstoqueService(repositorio));

            return(arvoreServiceEstoque.ListaRamaisArvore());
        }
Esempio n. 3
0
        public List <RamalEstoque> ExtraiArvoreEstoque()
        {
            //_itemEngenhariaService = new ItemEngenhariaService();

            var catalogoRepositorio = new BaseMDBRepositorio <Catalogo>("Catalogo", "Catalogo");

            var catalogos = catalogoRepositorio.Obter(); //_itemEngenhariaService.ObterCatalogos();


            var ramais = new List <RamalEstoque>();

            foreach (var catalogo in catalogos)
            {
                ramais.Add(new RamalEstoque(catalogo.NOME, catalogo.GUID, string.Empty));
            }

            ramais = ramais.OrderBy(x => x.name).ToList();

            foreach (var ramalCatalogo in ramais)
            {
                adicionaRamalCategoria(ramalCatalogo.guid, ramais);
            }

            var ramalEstoqueRepositorio = new BaseMDBRepositorio <RamalEstoque>("Catalogo", "RamalEstoque");

            ramalEstoqueRepositorio.Inserir(ramais);

            return(ramais);
        }
Esempio n. 4
0
        public void PegaTipos()
        {
            var itemPipeEstoqueRepositorio = new BaseMDBRepositorio <ItemPipe>("Catalogo", "ItemPipe");

            var filtro = Builders <ItemPipe> .Filter.Eq(x => x.GUID_ITEM_PAI, _catalogo.GUID);

            var itensPipeCategoria = itemPipeEstoqueRepositorio.Encontrar(filtro);
        }
Esempio n. 5
0
        public void RecuperaArvoreEstoque()
        {
            ArvoresServiceAramazen arvoresServiceAramazen = new ArvoresServiceAramazen();
            var baseMDBRepositorio = new BaseMDBRepositorio <RamalEstoque>("Catalogo", "RamalEstoque");
            RamalEstoqueService  ramalEstoqueService  = new RamalEstoqueService(baseMDBRepositorio);
            ArvoreServiceEstoque arvoreServiceEstoque = new ArvoreServiceEstoque(arvoresServiceAramazen, ramalEstoqueService);

            var lista = arvoreServiceEstoque.ListaRamaisArvore();
        }
Esempio n. 6
0
        public void DoEstoqueAlimentaArvoreEstoque()
        {
            ArvoresServiceAramazen arvoresServiceAramazen = new ArvoresServiceAramazen();
            var baseMDBRepositorio = new BaseMDBRepositorio <RamalEstoque>("Catalogo", "RamalEstoque");
            RamalEstoqueService  ramalEstoqueService  = new RamalEstoqueService(baseMDBRepositorio);
            ArvoreServiceEstoque arvoreServiceEstoque = new ArvoreServiceEstoque(arvoresServiceAramazen, ramalEstoqueService);

            arvoreServiceEstoque.CarregaRamaisEstoque();
        }
Esempio n. 7
0
        public void Injetar(string catalogoGUID)
        {
            var tipoItemEngRepositorio = new BaseMDBRepositorio <TipoItemEng>("Catalogo", "TipoItemEng");

            var tipos = tipoItemEngRepositorio.Obter();

            var categoriaRepositorio = new BaseMDBRepositorio <Categoria>("Catalogo", "Categorias");

            foreach (var tipo in tipos)
            {
                Categoria categoria = new Categoria()
                {
                    GUID_CATALOGO = catalogoGUID,
                    GUID_TIPO     = tipo.GUID
                };

                categoriaRepositorio.Inserir(categoria);
            }
        }
Esempio n. 8
0
        private void adicionaRamalFamilia(string guidCatalogo, RamalEstoque categoria)
        {
            //var listaPlanilhas = new TemplateEstoqueService().ObterPorArquivo(arquivo.id);
            //var listaTipos = _itemEngenhariaService.ObterTiposItem(guidCatalogo, categoria.guid);

            var familiasRepositorio = new BaseMDBRepositorio <Familia>("Catalogo", "Familias");
            var builderFamilias     = Builders <Familia> .Filter;
            var filtroFamilia       = builderFamilias.Eq(x => x.GUID_CATALOGO, guidCatalogo)
                                      & builderFamilias.Eq(x => x.GUID_CATEGORIA, categoria.guid);
            var listaFamilias = familiasRepositorio.Encontrar(filtroFamilia);


            foreach (var familia in listaFamilias)
            {
                var ramalFamilia = new RamalEstoque(familia.PartFamilyLongDesc, familia.GUID, categoria.guid);
                adicionaDiametros(categoria.guid, ramalFamilia);
                categoria.Adiciona(ramalFamilia);
            }
        }
 public ItemEngenhariaEstoqueService(PropriedadesItemService propriedadesItemService, BaseMDBRepositorio <ItemTubulacaoEstoque> repositorio) //: base("Catalogo", "ItensEstoque")
 {
     _repositorio             = repositorio;
     _propriedadesItemService = propriedadesItemService;
 }
Esempio n. 10
0
 public RamalEstoqueService(BaseMDBRepositorio <RamalEstoque> repositorio)
 {
     _repositorio = repositorio;
 }
Esempio n. 11
0
        private void adicionaDiametros(string guidCategoria, RamalEstoque ramalFamilia)
        {
            var relacaoFamiliaItemRepositorio = new BaseMDBRepositorio <RelacaoFamiliaItem>("Catalogo", "RelacaoFamiliaItem");
            var builderRelacaoFamiliaItem     = Builders <RelacaoFamiliaItem> .Filter;
            var filtroRelacaoFamiliaItem      = builderRelacaoFamiliaItem.Eq(x => x.GUID_CATEGORIA, guidCategoria)
                                                & builderRelacaoFamiliaItem.Eq(x => x.GUID_FAMILIA, ramalFamilia.guid);

            var relacoesFamilia = relacaoFamiliaItemRepositorio.Encontrar(filtroRelacaoFamiliaItem);

            foreach (var relacaoFamilia in relacoesFamilia)
            {
                var relacaoPropriedadeItemRepositorio = new BaseMDBRepositorio <RelacaoPropriedadeItem>("Catalogo", "RelacaoPropriedadeItem");
                var filtroRelacaoPropriedadeItem      = Builders <RelacaoPropriedadeItem> .Filter
                                                        .Eq(x => x.GUID_ITEM_ENG, relacaoFamilia.GUID_ITEM);

                var relacoesPropriedadesItem = relacaoPropriedadeItemRepositorio.Encontrar(filtroRelacaoPropriedadeItem);

                //Todos os diametros nominais disponiveis
                var nomeTipoPropriedade_GUID   = "5ef2516d-8c5f-4b55-a049-442f0e5cc4f4";
                var propriedadeItemRepositorio = new BaseMDBRepositorio <PropriedadeItem>("Catalogo", "PropriedadeItem");
                var filtroPropriedadeItem      = Builders <PropriedadeItem> .Filter.Eq(x => x.GUID_TIPO, nomeTipoPropriedade_GUID);

                var diametrosNominaisDisponiveis = propriedadeItemRepositorio.Encontrar(filtroPropriedadeItem);

                foreach (var relacaoPropriedadeItem in relacoesPropriedadesItem)
                {
                    var GUID_PROPRIEDADE = relacaoPropriedadeItem.GUID_PROPRIEDADE;

                    var diametro = diametrosNominaisDisponiveis.FirstOrDefault(x => x.GUID == GUID_PROPRIEDADE);

                    //teste
                    var filtroPropriedadeItemTESTE = Builders <PropriedadeItem> .Filter.Eq(x => x.GUID_TIPO, nomeTipoPropriedade_GUID);

                    var propriedadeTESTE = propriedadeItemRepositorio.Encontrar(filtroPropriedadeItemTESTE);

                    foreach (var p in propriedadeTESTE)
                    {
                        //if (propriedadeTESTE.Count() > 0)
                        //{
                        //var nomeTipoPropriedadeRepositorio = new BaseMDBRepositorio<NomeTipoPropriedade>("Catalogo", "NomeTipoPropriedade");
                        //var filtroNomeTipoPropriedade = Builders<NomeTipoPropriedade>.Filter.Eq(x => x.GUID, nomeTipoPropriedade_GUID);
                        //var propTeste = nomeTipoPropriedadeRepositorio.Encontrar(filtroNomeTipoPropriedade).First();

                        //if (propTeste.NOME == "NominalDiameter")
                        //{


                        //teste



                        //if (diametro != null)
                        //{
                        var valorTabeladoRepositorio = new BaseMDBRepositorio <ValorTabelado>("Catalogo", "ValorTabelado");
                        var filtroValorTabelado      = Builders <ValorTabelado> .Filter
                                                       .Eq(x => x.GUID, p.GUID_VALOR);

                        var valor = valorTabeladoRepositorio.Encontrar(filtroValorTabelado).First();

                        var ramalValor = new RamalEstoque(valor.VALOR, p.GUID, relacaoFamilia.GUID_ITEM);
                        //}
                        // }
                        //}
                    }
                }
            }
        }
Esempio n. 12
0
        public List <Familia> ExtraiItensCategoria(string guidCatalogo, string guidCategoria)
        {
            /*
             * string qry = "SELECT PropriedadeItemEng.GUID AS GUID_ITEM_PROPRIEDADE, TipoPropriedade.NOME AS PROPRIEDADE, Valores.VALOR AS VALOR_PROPRIEDADE,"
             + "ItemEngenharia.PnPID AS PnPID, ItemEngenharia.GUID AS GUID_ITEM"
             + " FROM ItemEngenharia INNER JOIN"
             + " PropriedadeItemEng ON ItemEngenharia.GUID = PropriedadeItemEng.GUID_ITEM_ENG INNER JOIN"
             + " PropriedadeEng ON PropriedadeItemEng.GUID_PROPRIEDADE = PropriedadeEng.GUID INNER JOIN"
             + " TipoPropriedade ON PropriedadeEng.GUID_TIPO = TipoPropriedade.GUID INNER JOIN"
             + " Valores ON PropriedadeEng.GUID_VALOR = Valores.GUID"
             + " WHERE ItemEngenharia.GUID = (SELECT ItemEngenharia.GUID"
             + " FROM PropriedadeEng INNER JOIN"
             + " PropriedadeItemEng ON PropriedadeEng.GUID = PropriedadeItemEng.GUID_PROPRIEDADE INNER JOIN"
             + " ItemEngenharia ON PropriedadeItemEng.GUID_ITEM_ENG = ItemEngenharia.GUID INNER JOIN"
             + " TipoPropriedade ON PropriedadeEng.GUID_TIPO = TipoPropriedade.GUID INNER JOIN"
             + " Valores ON PropriedadeEng.GUID_VALOR = Valores.GUID INNER JOIN"
             + " TipoItem ON ItemEngenharia.GUID_TIPO_ITEM = TipoItem.GUID"
             + " WHERE(TipoPropriedade.NOME = N'PartCategory')"
             + " AND(Valores.GUID = '" + guidCategoria + "')"
             + " AND(TipoItem.GUID = '" + guidTipoItem + "')"
             + " AND(ItemEngenharia.GUID = '" + prop.GUID + "'))";
             +
             */
            //6ade7953-5936-46a5-8934-330bfd2bba64

            var lista = new List <Familia>();

            var itemPipeRepositorio = new BaseMDBRepositorio <ItemPipe>("Catalogo", "ItemPipe");

            //var item = itemPipeRepositorio.Obter().First();


            var builder = Builders <ItemPipe> .Filter;
            var filterItemPipeEstoque = builder.Eq(x => x.GUID_CATALOGO, guidCatalogo) & builder.Eq(x => x.GUID_TIPO_ITEM, guidCategoria);
            var itens = itemPipeRepositorio.Encontrar(filterItemPipeEstoque);

            var relacaoPropriedadeItemRepositorio = new BaseMDBRepositorio <RelacaoPropriedadeItem>("Catalogo", "RelacaoPropriedadeItem");

            var propriedadeItemRepositorio = new BaseMDBRepositorio <PropriedadeItem>("Catalogo", "PropriedadeItem");

            foreach (var item in itens)
            {
                var filtroRelacaoPropriedadeItem = Builders <RelacaoPropriedadeItem> .Filter.Eq(x => x.GUID_ITEM_ENG, item.GUID);

                var relacoes = relacaoPropriedadeItemRepositorio.Encontrar(filtroRelacaoPropriedadeItem);

                var familia = new Familia(guidCatalogo, guidCategoria);

                foreach (var relacao in relacoes)
                {
                    var filtroPropriedadeItem = Builders <PropriedadeItem> .Filter.Eq(x => x.GUID, relacao.GUID_PROPRIEDADE);

                    var propriedadeItem = propriedadeItemRepositorio.Encontrar(filtroPropriedadeItem).First();


                    var nomeTipoPropriedadeRepositorio = new BaseMDBRepositorio <NomeTipoPropriedade>("Catalogo", "NomeTipoPropriedade");
                    var builderNomeTipoPropriedade     = Builders <NomeTipoPropriedade> .Filter;
                    var filtroNomeTipoPropriedade      = builderNomeTipoPropriedade.Eq(x => x.GUID, propriedadeItem.GUID_TIPO)
                                                         & builderNomeTipoPropriedade.Eq(x => x.NOME, "PartFamilyLongDesc");
                    var propriedades = nomeTipoPropriedadeRepositorio.Encontrar(filtroNomeTipoPropriedade);

                    if (propriedades.Count() > 0)
                    {
                        var strPropriedade = propriedades.First().NOME;

                        if (strPropriedade == "PartFamilyLongDesc")
                        {
                            var valorTabeladoRepositorio = new BaseMDBRepositorio <ValorTabelado>("Catalogo", "ValorTabelado");
                            var filtroValorTabelado      = Builders <ValorTabelado> .Filter.Eq(x => x.GUID, propriedadeItem.GUID_VALOR);

                            var    valor    = valorTabeladoRepositorio.Encontrar(filtroValorTabelado).First();
                            string strValor = valor.VALOR.Replace('"', '¨');


                            familia.GetType().GetProperty(strPropriedade).SetValue(familia, strValor);

                            break;
                        }
                    }
                }

                //lista.Add(familia);
            }



            //var filtro = Builders<ItemPipe>.Filter.Eq(x => x.PnPID, 0);

            //var itensPipeCategoria = itemPipeRepositorio.Encontrar(filtro);

            return(lista); //_itemEngenhariaService.ObterCatalogos();
        }
Esempio n. 13
0
        public List <NomeTipoPropriedade> ExtraiNomes()
        {
            var propriedadesRepositorio = new BaseMDBRepositorio <NomeTipoPropriedade>("Catalogo", "NomeTipoPropriedade");

            return(propriedadesRepositorio.Obter()); //_itemEngenhariaService.ObterCatalogos();
        }
Esempio n. 14
0
        public void CriaFamilias(string guidCatalogo)
        {
            var familiasRepositorio           = new BaseMDBRepositorio <Familia>("Catalogo", "Familias");
            var relacaoFamiliaItemRepositorio = new BaseMDBRepositorio <RelacaoFamiliaItem>("Catalogo", "RelacaoFamiliaItem");

            var itemPipeRepositorio = new BaseMDBRepositorio <ItemPipe>("Catalogo", "ItemPipe");


            var categoriasRepositorio = new BaseMDBRepositorio <Categoria>("Catalogo", "Categorias");
            var filtroCategorias      = Builders <Categoria> .Filter.Eq(x => x.GUID_CATALOGO, guidCatalogo);

            var categorias = categoriasRepositorio.Encontrar(filtroCategorias);

            foreach (var categoria in categorias)
            {
                var builderItemPipe       = Builders <ItemPipe> .Filter;
                var filterItemPipeEstoque = builderItemPipe.Eq(x => x.GUID_CATALOGO, guidCatalogo) & builderItemPipe.Eq(x => x.GUID_TIPO_ITEM, categoria.GUID_TIPO);
                var itens = itemPipeRepositorio.Encontrar(filterItemPipeEstoque);

                var relacaoPropriedadeItemRepositorio = new BaseMDBRepositorio <RelacaoPropriedadeItem>("Catalogo", "RelacaoPropriedadeItem");

                var propriedadeItemRepositorio = new BaseMDBRepositorio <PropriedadeItem>("Catalogo", "PropriedadeItem");

                foreach (var item in itens)
                {
                    var filtroRelacaoPropriedadeItem = Builders <RelacaoPropriedadeItem> .Filter.Eq(x => x.GUID_ITEM_ENG, item.GUID);

                    var relacoes = relacaoPropriedadeItemRepositorio.Encontrar(filtroRelacaoPropriedadeItem);

                    var builderFamilias = Builders <Familia> .Filter;
                    var filterFamilias  = builderFamilias.Eq(x => x.GUID_CATALOGO, guidCatalogo)
                                          & builderFamilias.Eq(x => x.GUID_CATEGORIA, categoria.GUID);
                    var familias = familiasRepositorio.Encontrar(filterFamilias);

                    Familia familia = null;
                    if (familias.Count() == 0)
                    {
                        familia = new Familia(guidCatalogo, categoria.GUID);

                        foreach (var relacao in relacoes)
                        {
                            var filtroPropriedadeItem = Builders <PropriedadeItem> .Filter.Eq(x => x.GUID, relacao.GUID_PROPRIEDADE);

                            var propriedadeItem = propriedadeItemRepositorio.Encontrar(filtroPropriedadeItem).First();


                            var nomeTipoPropriedadeRepositorio = new BaseMDBRepositorio <NomeTipoPropriedade>("Catalogo", "NomeTipoPropriedade");
                            var builderNomeTipoPropriedade     = Builders <NomeTipoPropriedade> .Filter;
                            var filtroNomeTipoPropriedade      = builderNomeTipoPropriedade.Eq(x => x.GUID, propriedadeItem.GUID_TIPO)
                                                                 & builderNomeTipoPropriedade.Eq(x => x.NOME, "PartFamilyLongDesc");
                            var propriedades = nomeTipoPropriedadeRepositorio.Encontrar(filtroNomeTipoPropriedade);

                            if (propriedades.Count() > 0)
                            {
                                var strPropriedade = propriedades.First().NOME;

                                if (strPropriedade == "PartFamilyLongDesc")
                                {
                                    var valorTabeladoRepositorio = new BaseMDBRepositorio <ValorTabelado>("Catalogo", "ValorTabelado");
                                    var filtroValorTabelado      = Builders <ValorTabelado> .Filter.Eq(x => x.GUID, propriedadeItem.GUID_VALOR);

                                    var    valor    = valorTabeladoRepositorio.Encontrar(filtroValorTabelado).First();
                                    string strValor = valor.VALOR.Replace('"', '¨');


                                    familia.GetType().GetProperty(strPropriedade).SetValue(familia, strValor);

                                    break;
                                }
                            }
                        }

                        familiasRepositorio.Inserir(familia);
                    }
                    else
                    {
                        familia = familias.First();
                    }

                    RelacaoFamiliaItem relacaoFamiliaItem = new RelacaoFamiliaItem()
                    {
                        GUID_FAMILIA   = familia.GUID,
                        GUID_ITEM      = item.GUID,
                        GUID_CATEGORIA = categoria.GUID
                    };

                    relacaoFamiliaItemRepositorio.Inserir(relacaoFamiliaItem);
                }
            }
        }
Esempio n. 15
0
        private void DefineCatalogo(string nomeCatalogo)
        {
            //Catalogo catalogo = null;

            var catalogosMDBRepositorio = new BaseMDBRepositorio <Catalogo>("Catalogo", "Catalogo");

            //using (var repositorioCatalogo = new Repositorio<CatalogoPlant3d>(_conexao))
            //{


            var catalogos = catalogosMDBRepositorio
                            .Encontrar(Builders <Catalogo> .Filter.Eq(x => x.NOME, nomeCatalogo));

            //repositorioCatalogo.Find(x => x.NOME == nomeCatalogo);


            if (catalogos.Count == 0)
            {
                string guidIdioma = string.Empty;

                var idiomaMDBRepositorio = new BaseMDBRepositorio <Idioma>("Catalogo", "Idioma");

                var builder = Builders <Idioma> .Filter;
                var filter  = builder.Eq(x => x.IDIOMA, _idioma) & builder.Eq(x => x.PAIS, _pais);

                var idiomas = idiomaMDBRepositorio.Encontrar(filter);


                if (idiomas.Count == 0)
                {
                    guidIdioma = Guid.NewGuid().ToString();
                    var idioma = new Idioma()
                    {
                        IDIOMA = _idioma,
                        PAIS   = _pais
                    };

                    idiomaMDBRepositorio.Inserir(idioma);
                }
                else
                {
                    guidIdioma = idiomas.First().GUID;
                }


                _catalogo = new Catalogo()
                {
                    NOME        = nomeCatalogo,
                    GUID_IDIOMA = guidIdioma
                };

                catalogosMDBRepositorio.Inserir(_catalogo);
            }
            else
            {
                _catalogo = catalogos.First();
            }

            //}

            //return _catalogo;
        }
Esempio n. 16
0
        public void Injetar()
        {
            var itensEngenhariaP3D = capturarItensEngenhariaPlant3d();


            //for (int i = 1; i <= itensEngenhariaP3D.Count(); i++)
            //{



            var itemPipeEstoqueRepositorio = new BaseMDBRepositorio <ItemPipe>("Catalogo", "ItemPipe");

            int conta = itemPipeEstoqueRepositorio.Obter().Count();

            if (conta < itensEngenhariaP3D.Count())
            {
                foreach (var item in itensEngenhariaP3D)
                {
                    var builder = Builders <ItemPipe> .Filter;
                    var filterItemPipeEstoque = builder.Eq(x => x.PnPID, (int)item.PnPID) & builder.Eq(x => x.GUID_CATALOGO, _catalogo.GUID);
                    var itensPipeEstoque      = itemPipeEstoqueRepositorio.Encontrar(filterItemPipeEstoque);



                    if (itensPipeEstoque.Count == 0)
                    {
                        TipoItemEng tipoItem    = null;
                        string      tipoItemEng = item.ShortDescription.Split(',')[0];



                        var tipoItemPipeStockRepositorio = new BaseMDBRepositorio <TipoItemEng>("Catalogo", "TipoItemEng");

                        var filterTiposItem = Builders <TipoItemEng> .Filter.Eq(x => x.NOME, tipoItemEng);

                        var tipos = tipoItemPipeStockRepositorio.Encontrar(filterTiposItem);



                        if (tipos.Count == 0)
                        {
                            tipoItem = new TipoItemEng()
                            {
                                NOME = tipoItemEng
                            };

                            tipoItemPipeStockRepositorio.Inserir(tipoItem);
                        }
                        else
                        {
                            tipoItem = tipos.First();
                        }


                        var itemPipe = new ItemPipe()
                        {
                            GUID_TIPO_ITEM = tipoItem.GUID,
                            GUID_CATALOGO  = _catalogo.GUID,
                            PnPID          = (int)item.PnPID
                        };

                        itemPipeEstoqueRepositorio.Inserir(itemPipe);

                        Type type = item.GetType();

                        foreach (var info in type.GetProperties())
                        {
                            if (info.Name != "GUID" && info.Name != "CODIGO" && info.Name != "PnPID")
                            {
                                NomeTipoPropriedade nomeTipoPropriedade = null;


                                var nomeTipoPropriedadeRepositorio = new BaseMDBRepositorio <NomeTipoPropriedade>("Catalogo", "NomeTipoPropriedade");
                                var filterNomeTipoPropriedade      = Builders <NomeTipoPropriedade> .Filter.Eq(x => x.NOME, info.Name);

                                var nomesTiposPropriedade = nomeTipoPropriedadeRepositorio.Encontrar(filterNomeTipoPropriedade);



                                if (nomesTiposPropriedade.Count == 0)
                                {
                                    nomeTipoPropriedade = new NomeTipoPropriedade()
                                    {
                                        NOME = info.Name
                                    };

                                    nomeTipoPropriedadeRepositorio.Inserir(nomeTipoPropriedade);
                                }
                                else
                                {
                                    nomeTipoPropriedade = nomesTiposPropriedade.First();
                                }



                                var relacaoEntrePropriedadesRepositorio = new BaseMDBRepositorio <RelacaoEntrePropriedades>("Catalogo", "RelacaoEntrePropriedades");
                                var builderRelacaoEntrePropriedades     = Builders <RelacaoEntrePropriedades> .Filter;
                                var filtroRelacaoEntrePropriedades      = builderRelacaoEntrePropriedades
                                                                          .Eq(x => x.GUID_PNPTABLE, tipoItem.GUID)
                                                                          &
                                                                          builderRelacaoEntrePropriedades
                                                                          .Eq(x => x.GUID_PROPIEDADE, nomeTipoPropriedade.GUID);

                                var relacoes = relacaoEntrePropriedadesRepositorio.Encontrar(filtroRelacaoEntrePropriedades);


                                if (relacoes.Count == 0)
                                {
                                    var relacao = new RelacaoEntrePropriedades()
                                    {
                                        GUID_PNPTABLE   = tipoItem.GUID,
                                        GUID_PROPIEDADE = nomeTipoPropriedade.GUID
                                    };

                                    relacaoEntrePropriedadesRepositorio.Inserir(relacao);
                                }



                                PropertyInfo campo = type.GetProperty(info.Name);
                                var          valor = info.GetValue(item, null);

                                if (valor != null)
                                {
                                    var valorTabeladoRepositorio = new BaseMDBRepositorio <ValorTabelado>("Catalogo", "ValorTabelado");
                                    var filterValorTabelado      = Builders <ValorTabelado> .Filter.Eq(x => x.VALOR, valor.ToString());

                                    var valoresTabelados = valorTabeladoRepositorio.Encontrar(filterValorTabelado);


                                    ValorTabelado valorTabelado = null;

                                    if (valoresTabelados.Count == 0)
                                    {
                                        valorTabelado = new ValorTabelado()
                                        {
                                            VALOR       = valor.ToString(),
                                            Sigla_BRASS = ""
                                        };

                                        valorTabeladoRepositorio.Inserir(valorTabelado);
                                    }
                                    else
                                    {
                                        valorTabelado = valoresTabelados.First();
                                    }


                                    if (nomeTipoPropriedade.NOME == "PartCategory")
                                    {
                                        ItemPipe itemCategoria = null;
                                        var      builderItem   = Builders <ItemPipe> .Filter;
                                        var      filterItem    = builderItem.Eq(x => x.GUID, valorTabelado.GUID)
                                                                 & builderItem.Eq(x => x.GUID_CATALOGO, _catalogo.GUID);
                                        var itens = itemPipeEstoqueRepositorio.Encontrar(filterItem);

                                        if (itens.Count == 0)
                                        {
                                            itemCategoria = new ItemPipe()
                                            {
                                                GUID_TIPO_ITEM = nomeTipoPropriedade.GUID,
                                                GUID_CATALOGO  = _catalogo.GUID,
                                                PnPID          = 0,
                                                GUID_ITEM_PAI  = _catalogo.GUID
                                            };

                                            itemPipeEstoqueRepositorio.Inserir(itemCategoria);
                                        }
                                        else
                                        {
                                            itemCategoria = itens.First();
                                        }

                                        itemPipe.GUID_ITEM_PAI = itemCategoria.GUID;


                                        itemPipeEstoqueRepositorio.Atualizar(itemPipe);
                                    }



                                    PropriedadeItem propriedadeEng = null;

                                    var propriedadeRepositorio = new BaseMDBRepositorio <PropriedadeItem>("Catalogo", "PropriedadeItem");
                                    var builderPropriedade     = Builders <PropriedadeItem> .Filter;
                                    var filterPropriedade      =
                                        builderPropriedade.Eq(x => x.GUID_TIPO, nomeTipoPropriedade.GUID)
                                        & builderPropriedade.Eq(x => x.GUID_VALOR, valorTabelado.GUID);
                                    var propriedades = propriedadeRepositorio.Encontrar(filterPropriedade);

                                    if (propriedades.Count == 0)
                                    {
                                        propriedadeEng = new PropriedadeItem()
                                        {
                                            GUID_TIPO  = nomeTipoPropriedade.GUID,
                                            GUID_VALOR = valorTabelado.GUID
                                        };

                                        propriedadeRepositorio.Inserir(propriedadeEng);
                                    }
                                    else
                                    {
                                        propriedadeEng = propriedades.First();
                                    }


                                    var relacaoPropriedadeItemRepositorio =
                                        new BaseMDBRepositorio <RelacaoPropriedadeItem>("Catalogo", "RelacaoPropriedadeItem");


                                    var relacaoPropriedadeItem = new RelacaoPropriedadeItem()
                                    {
                                        GUID_ITEM_ENG    = itemPipe.GUID,
                                        GUID_PROPRIEDADE = propriedadeEng.GUID
                                    };


                                    relacaoPropriedadeItemRepositorio.Inserir(relacaoPropriedadeItem);
                                }
                            }
                        }
                    }
                }
            }


            //}
        }