Exemplo n.º 1
0
        public void Injetar()
        {

           
            var itensEngenhariaP3D = capturarItensEngenhariaPlant3d();

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




                //string nomeCatalogo = _endereco.Split('\\').Last().Split('.').First();

                //CatalogoPlant3d catalogo = DefineCatalogo(nomeCatalogo);

                using (var repositorioItemEngenharia = new Repositorio<ItemEngenharia>(_conexao))
                {

                    //var itensCategoria = repositorioItemEngenharia.Query(x => x.GUID_ITEM_PAI == catalogo.GUID).ToList();

                    foreach (var item in itensEngenhariaP3D)
                    {

                        ItemEngenharia itemEngenharia = null;



                        itemEngenharia = repositorioItemEngenharia.Find(x => x.PnPID == (int)item.PnPID && x.GUID_CATALOGO == _catalogo.GUID);

                        if (itemEngenharia == null)
                        {

                            TipoItem tipoItem = null;
                            string tipoItemEng = item.ShortDescription.Split(',')[0];

                            using (var repositorioTiposItem = new Repositorio<TipoItem>(_conexao))
                            {

                                tipoItem = repositorioTiposItem.Find(x => x.NOME == tipoItemEng);
                                if (tipoItem == null)
                                {
                                    tipoItem = new TipoItem()
                                    {
                                        GUID = Guid.NewGuid().ToString(),
                                        NOME = tipoItemEng
                                    };

                                    repositorioTiposItem.Insert(tipoItem);


                                }
                            }







                            itemEngenharia = new ItemEngenharia()
                            {
                                GUID = Guid.NewGuid().ToString(),
                                GUID_TIPO_ITEM = tipoItem.GUID,
                                GUID_CATALOGO = _catalogo.GUID,
                                PnPID = (int)item.PnPID
                            };

                            repositorioItemEngenharia.Insert(itemEngenharia);

                            Type type = item.GetType();

                            foreach (var info in type.GetProperties())
                            {

                                PropriedadeItemEng propriedadeItemEng;



                                if (info.Name != "GUID" && info.Name != "CODIGO" && info.Name != "PnPID")
                                {

                                    TipoPropriedade tipoPropriedade = null;
                                    using (var repositorioTipos = new Repositorio<TipoPropriedade>(_conexao))
                                    {

                                        tipoPropriedade = repositorioTipos.Find(x => x.NOME == info.Name);

                                        if (tipoPropriedade == null)
                                        {
                                            tipoPropriedade = new TipoPropriedade()
                                            {
                                                GUID = Guid.NewGuid().ToString(),
                                                NOME = info.Name
                                            };

                                            repositorioTipos.Insert(tipoPropriedade);


                                        }
                                    }






                                    using (var repositorioPropRelacionadas = new Repositorio<PrpiedadesRelacionadas>(_conexao))
                                    {


                                        PrpiedadesRelacionadas relacao = repositorioPropRelacionadas
                                            .Find(x => x.GUID_PNPTABLE == tipoItem.GUID && x.GUID_PROPIEDADE == tipoPropriedade.GUID);


                                        if (relacao == null)
                                        {
                                            relacao = new PrpiedadesRelacionadas()
                                            {
                                                GUID = Guid.NewGuid().ToString(),
                                                GUID_PNPTABLE = tipoItem.GUID,
                                                GUID_PROPIEDADE = tipoPropriedade.GUID
                                            };

                                            repositorioPropRelacionadas.Insert(relacao);

                                        }
                                    }





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

                                    if (valor != null)
                                    {


                                        Valores valorTabelado = null;
                                        using (var repositorioValores = new Repositorio<Valores>(_conexao))
                                        {

                                            valorTabelado = repositorioValores.Find(x => x.VALOR == valor.ToString());

                                            if (valorTabelado == null)
                                            {
                                                valorTabelado = new Valores()
                                                {
                                                    GUID = Guid.NewGuid().ToString(),
                                                    VALOR = valor.ToString(),
                                                    Sigla_BRASS = ""
                                                };

                                                repositorioValores.Insert(valorTabelado);
                                            }
                                        }

                                        if (tipoPropriedade.NOME == "PartCategory")
                                        {
                                            var itemCategoria = repositorioItemEngenharia.Find(x => x.GUID == valorTabelado.GUID && x.GUID_CATALOGO == _catalogo.GUID);

                                            if (itemCategoria == null)
                                            {
                                                itemCategoria = new ItemEngenharia()
                                                {
                                                    GUID = valorTabelado.GUID,
                                                    GUID_TIPO_ITEM = tipoPropriedade.GUID,
                                                    GUID_CATALOGO = _catalogo.GUID,
                                                    PnPID = 0,
                                                    GUID_ITEM_PAI = _catalogo.GUID
                                                };

                                                repositorioItemEngenharia.Insert(itemCategoria);
                                            }

                                            itemEngenharia.GUID_ITEM_PAI = itemCategoria.GUID;


                                            repositorioItemEngenharia.Edit(itemEngenharia);

                                        }






                                        PropriedadeEng propriedadeEng = null;
                                        using (var repositorioPropriedades = new Repositorio<PropriedadeEng>(_conexao))
                                        {

                                            propriedadeEng = repositorioPropriedades.
                                                Find(x => x.GUID_TIPO == tipoPropriedade.GUID && x.GUID_VALOR == valorTabelado.GUID);


                                            if (propriedadeEng == null)
                                            {

                                                propriedadeEng = new PropriedadeEng()
                                                {
                                                    GUID = Guid.NewGuid().ToString(),
                                                    GUID_TIPO = tipoPropriedade.GUID,
                                                    GUID_VALOR = valorTabelado.GUID
                                                };

                                                repositorioPropriedades.Insert(propriedadeEng);


                                            }
                                        }


                                        using (var repositorioPropriedadeItemEng = new Repositorio<PropriedadeItemEng>(_conexao))
                                        {
                                            propriedadeItemEng = new PropriedadeItemEng()
                                            {
                                                GUID = Guid.NewGuid().ToString(),
                                                GUID_ITEM_ENG = itemEngenharia.GUID,
                                                GUID_PROPRIEDADE = propriedadeEng.GUID
                                            };


                                            repositorioPropriedadeItemEng.Insert(propriedadeItemEng);







                                        }

                                    }
                                }
                            }

                        }

                    }
                }

            }


        }
Exemplo n.º 2
0
        public void InjetarUnitario(EngineeringItems itemPlant)
        {
            using (var repositorioItemEngenharia = new Repositorio <ItemEngenharia>(_conexao))
            {
                //var itensCategoria = repositorioItemEngenharia.Query(x => x.GUID_ITEM_PAI == catalogo.GUID).ToList();



                ItemEngenharia itemEngenharia = null;



                itemEngenharia = repositorioItemEngenharia.Find(x => x.PnPID == (int)itemPlant.PnPID && x.GUID_CATALOGO == _catalogo.GUID);

                if (itemEngenharia == null)
                {
                    TipoItem tipoItem    = null;
                    string   tipoItemEng = itemPlant.ShortDescription.Split(',')[0];

                    using (var repositorioTiposItem = new Repositorio <TipoItem>(_conexao))
                    {
                        tipoItem = repositorioTiposItem.Find(x => x.NOME == tipoItemEng);
                        if (tipoItem == null)
                        {
                            tipoItem = new TipoItem()
                            {
                                GUID = Guid.NewGuid().ToString(),
                                NOME = tipoItemEng
                            };

                            repositorioTiposItem.Insert(tipoItem);
                        }
                    }



                    itemEngenharia = new ItemEngenharia()
                    {
                        GUID           = Guid.NewGuid().ToString(),
                        GUID_TIPO_ITEM = tipoItem.GUID,
                        GUID_CATALOGO  = _catalogo.GUID,
                        PnPID          = (int)itemPlant.PnPID
                    };

                    repositorioItemEngenharia.Insert(itemEngenharia);

                    Type type = itemPlant.GetType();

                    foreach (var info in type.GetProperties())
                    {
                        PropriedadeItemEng propriedadeItemEng;



                        if (info.Name != "GUID" && info.Name != "CODIGO" && info.Name != "PnPID")
                        {
                            TipoPropriedade tipoPropriedade = null;
                            using (var repositorioTipos = new Repositorio <TipoPropriedade>(_conexao))
                            {
                                tipoPropriedade = repositorioTipos.Find(x => x.NOME == info.Name);

                                if (tipoPropriedade == null)
                                {
                                    tipoPropriedade = new TipoPropriedade()
                                    {
                                        GUID = Guid.NewGuid().ToString(),
                                        NOME = info.Name
                                    };

                                    repositorioTipos.Insert(tipoPropriedade);
                                }
                            }



                            using (var repositorioPropRelacionadas = new Repositorio <PrpiedadesRelacionadas>(_conexao))
                            {
                                PrpiedadesRelacionadas relacao = repositorioPropRelacionadas
                                                                 .Find(x => x.GUID_PNPTABLE == tipoItem.GUID && x.GUID_PROPIEDADE == tipoPropriedade.GUID);


                                if (relacao == null)
                                {
                                    relacao = new PrpiedadesRelacionadas()
                                    {
                                        GUID            = Guid.NewGuid().ToString(),
                                        GUID_PNPTABLE   = tipoItem.GUID,
                                        GUID_PROPIEDADE = tipoPropriedade.GUID
                                    };

                                    repositorioPropRelacionadas.Insert(relacao);
                                }
                            }



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

                            if (valor != null)
                            {
                                Valores valorTabelado = null;
                                using (var repositorioValores = new Repositorio <Valores>(_conexao))
                                {
                                    valorTabelado = repositorioValores.Find(x => x.VALOR == valor.ToString());

                                    if (valorTabelado == null)
                                    {
                                        valorTabelado = new Valores()
                                        {
                                            GUID        = Guid.NewGuid().ToString(),
                                            VALOR       = valor.ToString(),
                                            Sigla_BRASS = ""
                                        };

                                        repositorioValores.Insert(valorTabelado);
                                    }
                                }

                                if (tipoPropriedade.NOME == "PartCategory")
                                {
                                    using (var repositorioCategoriasCatalogo = new Repositorio <Categorias_Catalogo>(_conexao))
                                    {
                                        var categoriaCatalogo = repositorioCategoriasCatalogo.Find(x => x.GUID_CATEGORIA == valorTabelado.GUID && x.GUID_CATALOGO == _catalogo.GUID);

                                        if (categoriaCatalogo == null)
                                        {
                                            categoriaCatalogo = new Categorias_Catalogo()
                                            {
                                                GUID           = Guid.NewGuid().ToString(),
                                                GUID_CATALOGO  = _catalogo.GUID,
                                                GUID_CATEGORIA = valorTabelado.GUID
                                            };

                                            repositorioCategoriasCatalogo.Insert(categoriaCatalogo);
                                        }
                                    }



                                    //var itemCategoria = repositorioItemEngenharia.Find(x => x.GUID == valorTabelado.GUID);// && x.GUID_CATALOGO == _catalogo.GUID);



                                    //if (itemCategoria == null)
                                    //{
                                    //    itemCategoria = new ItemEngenharia()
                                    //    {
                                    //        GUID = valorTabelado.GUID,
                                    //        GUID_TIPO_ITEM = tipoPropriedade.GUID,
                                    //        GUID_CATALOGO = _catalogo.GUID,
                                    //        PnPID = 0,
                                    //        GUID_ITEM_PAI = _catalogo.GUID
                                    //    };

                                    //    repositorioItemEngenharia.Insert(itemCategoria);
                                    //}

                                    //itemEngenharia.GUID_ITEM_PAI = itemCategoria.GUID;


                                    //repositorioItemEngenharia.Edit(itemEngenharia);
                                }



                                PropriedadeEng propriedadeEng = null;
                                using (var repositorioPropriedades = new Repositorio <PropriedadeEng>(_conexao))
                                {
                                    propriedadeEng = repositorioPropriedades.
                                                     Find(x => x.GUID_TIPO == tipoPropriedade.GUID && x.GUID_VALOR == valorTabelado.GUID);


                                    if (propriedadeEng == null)
                                    {
                                        propriedadeEng = new PropriedadeEng()
                                        {
                                            GUID       = Guid.NewGuid().ToString(),
                                            GUID_TIPO  = tipoPropriedade.GUID,
                                            GUID_VALOR = valorTabelado.GUID
                                        };

                                        repositorioPropriedades.Insert(propriedadeEng);
                                    }
                                }


                                using (var repositorioPropriedadeItemEng = new Repositorio <PropriedadeItemEng>(_conexao))
                                {
                                    propriedadeItemEng = new PropriedadeItemEng()
                                    {
                                        GUID             = Guid.NewGuid().ToString(),
                                        GUID_ITEM_ENG    = itemEngenharia.GUID,
                                        GUID_PROPRIEDADE = propriedadeEng.GUID
                                    };


                                    repositorioPropriedadeItemEng.Insert(propriedadeItemEng);
                                }
                            }
                        }
                    }
                }
            }
        }