Пример #1
0
        private void geraLogMetodoPerfilCatalogo(PerfilCatalogoSAPModelo modelo, StreamWriter sw)
        {
            sw.WriteLine($@"-----MÉTODO PROCESSA PERFIL DE CATÁLOGO-----");
            int i = 0;

            foreach (var perfil in modelo.Itens)
            {
                sw.WriteLine("");
                sw.WriteLine($@"___ITEM {i} da lista___");
                sw.WriteLine($@"Propriedade Perfil - {perfil.PerfilCatalogo}");
                sw.WriteLine($@"Propriedade Descricao - {perfil.Descricao}");
                sw.WriteLine($@"Propriedade Status - {perfil.Status}");
            }
        }
Пример #2
0
        private void ValidaPerfilCatalogo(PerfilCatalogoSAPModelo modelo)
        {
            try
            {
                if (modelo == null)
                {
                    throw new Exception("O modelo de perfil de catálogo não foi informado!");
                }

                if (modelo.Itens == null)
                {
                    throw new Exception("O(s) perfil(perfis) de catálogo não foi(ram) informado(s)!");
                }

                if (modelo.Itens.Count == 0)
                {
                    throw new Exception("O(s) perfil(perfis) de catálogo não foi(ram) informado(s)!");
                }
                else
                {
                    for (int i = 0; i < modelo.Itens.Count; i++)
                    {
                        PerfilCatalogoItemSAPModelo item = modelo.Itens[i];

                        if (String.IsNullOrEmpty(item.PerfilCatalogo) && String.IsNullOrEmpty(item.Descricao))
                        {
                            throw new Exception($"O item de posição {i + 1} não possui valores para nenhum dos campos!");
                        }

                        if (String.IsNullOrEmpty(item.PerfilCatalogo))
                        {
                            throw new Exception($"O item de posição {i + 1} não possui valor para o campo PERFIL_CATALOGO");
                        }

                        if (String.IsNullOrEmpty(item.Descricao))
                        {
                            throw new Exception($"O item de posição {i + 1} não possui valor para o campo DESCRICAO");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #3
0
        public PerfilCatalogoSAPResponse DT_ORDEMPM_LaborSafety_RFC04_ProcessaPerfilCatalogo(PerfilCatalogoSAPModelo modelo)
        {
            PerfilCatalogoSAPResponse result = new PerfilCatalogoSAPResponse();

            result.Itens = new List <PerfilCatalogoItemSAPResponse>();

            try
            {
                //Grava o que chegou na integração, em um arquivo texto
                this.GeraLogRecebimentoIntegracao(modelo, TipoIntegracao.PerfilCatalogo);

                result = perfilCatalogoSAPNegocio.ProcessaPerfilCatalogo(modelo);
            }
            catch (Exception e)
            {
                PerfilCatalogoItemSAPResponse itemResponse = new PerfilCatalogoItemSAPResponse();
                itemResponse.Perfil_Do_Catalogo = "";
                itemResponse.Status             = Constantes.StatusResponseIntegracao.E.ToString();
                itemResponse.Descricao          = e.Message;

                result.Itens.Add(itemResponse);
            }

            return(result);
        }
Пример #4
0
        public PerfilCatalogoSAPResponse ProcessaPerfilCatalogo(PerfilCatalogoSAPModelo modelo)
        {
            PerfilCatalogoSAPResponse response = new PerfilCatalogoSAPResponse();

            response.Itens = new List <PerfilCatalogoItemSAPResponse>();

            this.ValidaPerfilCatalogo(modelo);

            using (var entities = new DB_APRPTEntities())
            {
                entities.Database.CommandTimeout = 9999;

                using (var transaction = entities.Database.BeginTransaction())
                {
                    PerfilCatalogoItemSAPResponse itemResponse   = new PerfilCatalogoItemSAPResponse();
                    PerfilCatalogoModelo          perfilCatalogo = new PerfilCatalogoModelo();

                    try
                    {
                        List <PerfilCatalogoModelo> listaPerfilCatalogo = new List <PerfilCatalogoModelo>();
                        foreach (var item in modelo.Itens)
                        {
                            listaPerfilCatalogo.Add(new PerfilCatalogoModelo()
                            {
                                Codigo = item.PerfilCatalogo,
                                Nome   = item.Descricao,
                            });
                        }

                        foreach (var perfil in listaPerfilCatalogo)
                        {
                            perfilCatalogo = perfil;

                            var perfilExistente = perfilCatalogoPersistencia.ListarPerfilCatalogoPorCodigo(perfilCatalogo.Codigo);

                            if (perfilExistente == null)
                            {
                                perfilCatalogoPersistencia.Inserir(perfilCatalogo);
                            }
                            else
                            {
                                perfilCatalogoPersistencia.Editar(perfilCatalogo, entities);
                            }

                            itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo;
                            itemResponse.Descricao          = "";
                            itemResponse.Status             = Constantes.StatusResponseIntegracao.S.ToString();

                            response.Itens.Add(itemResponse);
                        }

                        entities.SaveChanges();
                        transaction.Commit();

                        return(response);
                    }
                    catch (Exception ex)
                    {
                        itemResponse.Perfil_Do_Catalogo = perfilCatalogo.Codigo;
                        itemResponse.Status             = Constantes.StatusResponseIntegracao.E.ToString();
                        itemResponse.Descricao          = ex.Message;

                        throw ex;
                    }
                }
            }
        }