public IHttpActionResult Inserir([FromBody] InventarioAmbienteModelo inventarioAmbienteModelo) { try { RetornoInsercao resultado = new RetornoInsercao(); resultado = this.inventariosAmbienteNegocio.InserirInventarioAmbiente(inventarioAmbienteModelo); if (resultado.status == true) { return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.OK, $"Inserção do inventário de ambiente ocorrida com sucesso", resultado))); } else { return(Ok(GeradorResponse.GenerateSuccessResponse((int)HttpStatusCode.BadRequest, $"Erro ao inserir inventário de ambiente", resultado))); } } catch (InvalidOperationException exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.OK, "Inventário de Ambiente não encontrado.", exception), exception); } catch (Exception exception) { throw new Exception(GeradorResponse.GenerateErrorResponseString((int)HttpStatusCode.OK, "Erro ao inserir Inventário de Ambiente", exception), exception); } }
public RetornoInsercao InserirRascunhoInventarioAmbiente(RascunhoInventarioAmbienteModelo rascunhoInventarioAmbienteModelo) { RetornoInsercao retornoInsercao = new RetornoInsercao(); retornoInsercao.localModelo = new List <string>(); validadorRascunhoInventarioAmbiente.ValidaInsercao(rascunhoInventarioAmbienteModelo); List <LocalInstalacaoModelo> locaisInstalacao = rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO; using (var entities = new DB_APRPTEntities()) { using (var transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { //Limpa os locais do inventário de modelo rascunhoInventarioAmbienteModelo.LOCAL_INSTALACAO_MODELO = null; List <LOCAL_INSTALACAO> locaisComInventarios = new List <LOCAL_INSTALACAO>(); //List<LOCAL_INSTALACAO> locais = localInstalacaoPersistencia.ListarTodosLIs(entities); List <string> locaisAInserir = new List <string>(); for (int i = 0; i < locaisInstalacao.Count; i++) { var codLocal = locaisInstalacao[i].CodLocalInstalacao; var localEnviado = localInstalacaoPersistencia.ListarLocalInstalacaoPorId(codLocal, entities); //Filtra somente os locais do pai List <LOCAL_INSTALACAO> locaisEFilhos = this.BuscaLocaisEFilhos(entities, localEnviado); //List<LOCAL_INSTALACAO> locaisFilhos = // rascunhoInventarioAmbientePersistencia.BuscaFilhosPorNivelExcetoInventario(codLocal, entities); foreach (var local in locaisEFilhos) { locaisAInserir.Add(local.CodLocalInstalacao.ToString()); } } var locaisAInserirDistinct = locaisAInserir.Distinct(); rascunhoInventarioAmbienteModelo.CodLocalInstalacao = string.Join(",", locaisAInserirDistinct); RASCUNHO_INVENTARIO_AMBIENTE inventario = rascunhoInventarioAmbientePersistencia.Inserir(rascunhoInventarioAmbienteModelo, entities); entities.SaveChanges(); transaction.Commit(); retornoInsercao.status = true; return(retornoInsercao); } catch (Exception ex) { transaction.Rollback(); throw ex; } } } }