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); }
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; } } } }