public ActionResult Visualizar(int id) { if (!_validar.Acessar(id)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } Aquicultura caracterizacao = _bus.ObterPorEmpreendimento(id); string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias, true); if (!string.IsNullOrEmpty(textoMerge)) { caracterizacao = _bus.MergiarGeo(caracterizacao); } AquiculturaVM vm = new AquiculturaVM(caracterizacao, true); foreach (AquiculturaAquicult aquicultura in caracterizacao.AquiculturasAquicult) { aquicultura.Identificador = Guid.NewGuid().ToString(); AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo, isVisualizar: true); vm.AquiculturaAquicultVM.Add(viewModelAux); } vm.TextoMerge = textoMerge; vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; return(View(vm)); }
public Aquicultura MergiarGeo(Aquicultura caracterizacaoAtual) { foreach (AquiculturaAquicult item in caracterizacaoAtual.AquiculturasAquicult) { item.CoordenadaAtividade.Tipo = 0; //limpando dados selecionados item.CoordenadaAtividade.Id = 0; //limpando dados selecionados } caracterizacaoAtual.Dependencias = _busCaracterizacao.ObterDependenciasAtual(caracterizacaoAtual.EmpreendimentoId, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao); return(caracterizacaoAtual); }
internal void Salvar(Aquicultura caracterizacao, BancoDeDados banco) { if (caracterizacao == null) { throw new Exception("A Caracterização é nula."); } if (caracterizacao.Id <= 0) { Criar(caracterizacao, banco); } else { Editar(caracterizacao, banco); } }
public Aquicultura ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null) { Aquicultura caracterizacao = null; try { caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado); caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao); } catch (Exception exc) { Validacao.AddErro(exc); } return(caracterizacao); }
internal Aquicultura ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null) { Aquicultura caracterizacao = new Aquicultura(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_aquicultura s where s.empreendimento = :empreendimento", EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32); object valor = bancoDeDados.ExecutarScalar(comando); if (valor != null && !Convert.IsDBNull(valor)) { caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado); } } return(caracterizacao); }
public ActionResult GeoMergiar(Aquicultura caracterizacao) { Aquicultura caracterizacaoMerge = _bus.MergiarGeo(caracterizacao); AquiculturaVM vm = new AquiculturaVM(caracterizacaoMerge); foreach (AquiculturaAquicult aquicultura in caracterizacaoMerge.AquiculturasAquicult) { aquicultura.Identificador = Guid.NewGuid().ToString(); AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo); vm.AquiculturaAquicultVM.Add(viewModelAux); } return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "Aquicultura", vm), @Dependencias = ViewModelHelper.Json(vm.Caracterizacao.Dependencias) }, JsonRequestBehavior.AllowGet)); }
public ActionResult Criar(Aquicultura caracterizacao) { string textoMerge = _caracterizacaoValidar.DependenciasAlteradas( caracterizacao.EmpreendimentoId, (int)eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao, caracterizacao.Dependencias); if (!string.IsNullOrEmpty(textoMerge)) { return(Json(new { @TextoMerge = textoMerge }, JsonRequestBehavior.AllowGet)); } _bus.Salvar(caracterizacao); return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @UrlRedirecionar = Url.Action("", "Caracterizacao", new { id = caracterizacao.EmpreendimentoId, Msg = Validacao.QueryParam() }) }, JsonRequestBehavior.AllowGet)); }
internal Aquicultura Obter(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { Aquicultura caracterizacao = new Aquicultura(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { if (tid == null) { caracterizacao = Obter(id, bancoDeDados, simplificado); } else { Comando comando = bancoDeDados.CriarComando(@"select count(s.id) existe from {0}crt_aquicultura s where s.id = :id and s.tid = :tid", EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); caracterizacao = (Convert.ToBoolean(bancoDeDados.ExecutarScalar(comando))) ? Obter(id, bancoDeDados, simplificado) : ObterHistorico(id, bancoDeDados, tid, simplificado); } } return(caracterizacao); }
public ActionResult Criar(int id) { if (!_caracterizacaoValidar.Basicas(id)) { return(RedirectToAction("Index", "../Empreendimento", Validacao.QueryParamSerializer())); } Aquicultura caracterizacao = new Aquicultura(); caracterizacao.EmpreendimentoId = id; if (!_validar.Acessar(caracterizacao.EmpreendimentoId)) { return(RedirectToAction("", "Caracterizacao", new { id = id, Msg = Validacao.QueryParam() })); } caracterizacao.Dependencias = _caracterizacaoBus.ObterDependenciasAtual(id, eCaracterizacao.Aquicultura, eCaracterizacaoDependenciaTipo.Caracterizacao); AquiculturaVM vm = new AquiculturaVM(caracterizacao); vm.AquiculturaAquicultTemplateVM = new AquiculturaAquicultVM(new AquiculturaAquicult() { Identificador = Guid.NewGuid().ToString() }, _listaBus.AtividadesSolicitada, _listaBus.CaracterizacaoGeometriaTipo); foreach (AquiculturaAquicult aquicultura in caracterizacao.AquiculturasAquicult) { aquicultura.Identificador = Guid.NewGuid().ToString(); AquiculturaAquicultVM viewModelAux = new AquiculturaAquicultVM(aquicultura, _listaBus.AtividadesSolicitada, _caracterizacaoBus.ObterCoordenadaAtividadeLst(caracterizacao.EmpreendimentoId, eCaracterizacao.Aquicultura, (eTipoGeometria)aquicultura.CoordenadaAtividade.Tipo), _listaBus.CaracterizacaoGeometriaTipo); vm.AquiculturaAquicultVM.Add(viewModelAux); } vm.AtualizarDependenciasModalTitulo = Mensagem.Caracterizacao.AtualizarDependenciasModalTitulo.Texto; return(View(vm)); }
public bool Salvar(Aquicultura caracterizacao) { try { if (_validar.Salvar(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); //Gerencia as dependências da caracterização _busCaracterizacao.Dependencias(new Caracterizacao() { Id = caracterizacao.Id, Tipo = eCaracterizacao.Aquicultura, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); Validacao.Add(Mensagem.Aquicultura.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }
public AquiculturaVM(Aquicultura caracterizacao, bool isVisualizar = false, bool isEditar = false) { Caracterizacao = caracterizacao; IsVisualizar = isVisualizar; IsEditar = isEditar; }
internal int?Criar(Aquicultura caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Aquicultura Comando comando = bancoDeDados.CriarComando(@" insert into {0}crt_aquicultura c(id, empreendimento, tid) values (seq_crt_aquicultura.nextval, :empreendimento, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); caracterizacao.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Aquiculturas foreach (AquiculturaAquicult item in caracterizacao.AquiculturasAquicult) { comando = bancoDeDados.CriarComando(@" insert into {0}crt_aquicultura_aquic c (id, atividade, caracterizacao, area_inundada, num_viveiros_escavados, area_cultivo, num_unid_cultivo, geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid) values(seq_crt_aquicultura_aquic.nextval, :atividade, :caracterizacao, :area_inundada, :num_viveiros_escavados, :area_cultivo, :num_unid_cultivo, :geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("area_inundada", (String.IsNullOrWhiteSpace(item.AreaInundadaTotal)) ? (object)DBNull.Value : item.AreaInundadaTotal, DbType.Decimal); comando.AdicionarParametroEntrada("num_viveiros_escavados", (String.IsNullOrWhiteSpace(item.NumViveiros)) ? (object)DBNull.Value : item.NumViveiros, DbType.Decimal); comando.AdicionarParametroEntrada("area_cultivo", (String.IsNullOrWhiteSpace(item.AreaCultivo)) ? (object)DBNull.Value : item.AreaCultivo, DbType.Decimal); comando.AdicionarParametroEntrada("num_unid_cultivo", (String.IsNullOrWhiteSpace(item.NumUnidadeCultivos)) ? (object)DBNull.Value : item.NumUnidadeCultivos, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Cultivos foreach (Cultivo cultivo in item.Cultivos) { comando = bancoDeDados.CriarComando(@" insert into {0}crt_aquicultura_cultivos c (id, caracterizacao, aquicultura, identificador, volume, tid) values (seq_crt_aquicultura_cultivos.nextval, :caracterizacao, :aquicultura, :identificador, :volume, :tid) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("aquicultura", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificador", cultivo.Identificador, DbType.Int32); comando.AdicionarParametroEntrada("volume", cultivo.Volume, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); cultivo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #endregion } #endregion #endregion Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.aquicultura, eHistoricoAcao.criar, bancoDeDados, null); bancoDeDados.Commit(); return(caracterizacao.Id); } }
private Aquicultura ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false) { Aquicultura caracterizacao = new Aquicultura(); int hst = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento, c.tid from {0}hst_crt_aquicultura c where c.caracterizacao = :id and c.tid = :tid", EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { hst = Convert.ToInt32(reader["id"]); caracterizacao.Id = id; caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento"]); caracterizacao.Tid = reader["tid"].ToString(); } reader.Close(); } if (caracterizacao.Id <= 0 || simplificado) { return(caracterizacao); } #region Aquiculturas using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { comando = bancoDeDados.CriarComando(@"select c.aquicultura_id id, c.atividade_id, c.area_inundada, c.num_viveiros_escavados, c.num_unid_cultivo, c.area_cultivo, c.geometria_coord_atv_x, c.geometria_coord_atv_y, c.geometria_id, c.geometria_tipo, c.tid from {0}hst_crt_aquicultura_aquic c where c.id_hst = :id_hst" , EsquemaBanco); comando.AdicionarParametroEntrada("id_hst", hst, DbType.Int32); AquiculturaAquicult aquicultura = null; while (reader.Read()) { aquicultura = new AquiculturaAquicult(); aquicultura.Id = Convert.ToInt32(reader["id"]); aquicultura.Atividade = Convert.ToInt32(reader["atividade_id"]); aquicultura.AreaInundadaTotal = reader["area_inundada"].ToString(); aquicultura.NumViveiros = reader["num_viveiros_escavados"].ToString(); aquicultura.NumUnidadeCultivos = reader["num_unid_cultivo"].ToString(); aquicultura.AreaCultivo = reader["area_cultivo"].ToString(); aquicultura.CoordenadaAtividade.Id = Convert.ToInt32(reader["geometria_id"]); aquicultura.CoordenadaAtividade.Tipo = Convert.ToInt32(reader["geometria_tipo"]); if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"])) { aquicultura.CoordenadaAtividade.CoordX = Convert.ToDecimal(reader["geometria_coord_atv_x"]); } if (reader["geometria_coord_atv_y"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_y"])) { aquicultura.CoordenadaAtividade.CoordY = Convert.ToDecimal(reader["geometria_coord_atv_y"]); } #region Cultivos comando = bancoDeDados.CriarComando(@"select c.cultivo id, c.identificador, c.volume, c.unidade, c.quantidade, m.tid from {0}hst_crt_aquicultura_cultivos c where c.id_hst = :id order by c.identificador" , EsquemaBanco); comando.AdicionarParametroEntrada("id", hst, DbType.Int32); Cultivo cultivo = null; using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { while (readerAux.Read()) { cultivo = new Cultivo(); cultivo.Id = Convert.ToInt32(readerAux["id"]); cultivo.Identificador = readerAux["identificador"].ToString(); cultivo.Volume = readerAux["volume"].ToString(); aquicultura.Cultivos.Add(cultivo); } readerAux.Close(); } #endregion caracterizacao.AquiculturasAquicult.Add(aquicultura); } reader.Close(); } #endregion } return(caracterizacao); }
internal void Editar(Aquicultura caracterizacao, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Aquicultura Comando comando = bancoDeDados.CriarComando(@" update crt_aquicultura c set c.empreendimento = :empreendimento, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco //Cultivos comando = bancoDeDados.CriarComando(@"delete from {0}crt_aquicultura_cultivos c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.AquiculturasAquicult.SelectMany(x => x.Cultivos).Select(y => y.Id).ToList()); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); //Aquiculturas comando = bancoDeDados.CriarComando("delete from {0}crt_aquicultura_aquic c where c.caracterizacao = :caracterizacao", EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.AquiculturasAquicult.Select(x => x.Id).ToList()); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Aquiculturas foreach (AquiculturaAquicult item in caracterizacao.AquiculturasAquicult) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@" update {0}crt_aquicultura_aquic c set c.atividade = :atividade, c.caracterizacao = :caracterizacao, c.area_inundada = :area_inundada, c.num_viveiros_escavados = :num_viveiros_escavados, c.area_cultivo = :area_cultivo, c.num_unid_cultivo = :num_unid_cultivo, c.geometria_coord_atv_x = :geometria_coord_atv_x, c.geometria_coord_atv_y = :geometria_coord_atv_y, c.geometria_id = :geometria_id, c.geometria_tipo = :geometria_tipo, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_aquicultura_aquic c (id, atividade, caracterizacao, area_inundada, num_viveiros_escavados, area_cultivo, num_unid_cultivo, geometria_coord_atv_x, geometria_coord_atv_y, geometria_id, geometria_tipo, tid) values (seq_crt_aquicultura_aquic.nextval, :atividade, :caracterizacao, :area_inundada, :num_viveiros_escavados, :area_cultivo, :num_unid_cultivo, :geometria_coord_atv_x, :geometria_coord_atv_y, :geometria_id, :geometria_tipo, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("atividade", item.Atividade, DbType.Int32); comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("area_inundada", (String.IsNullOrWhiteSpace(item.AreaInundadaTotal)) ? (object)DBNull.Value : item.AreaInundadaTotal, DbType.Decimal); comando.AdicionarParametroEntrada("num_viveiros_escavados", (String.IsNullOrWhiteSpace(item.NumViveiros)) ? (object)DBNull.Value : item.NumViveiros, DbType.Decimal); comando.AdicionarParametroEntrada("area_cultivo", (String.IsNullOrWhiteSpace(item.AreaCultivo)) ? (object)DBNull.Value : item.AreaCultivo, DbType.Decimal); comando.AdicionarParametroEntrada("num_unid_cultivo", (String.IsNullOrWhiteSpace(item.NumUnidadeCultivos)) ? (object)DBNull.Value : item.NumUnidadeCultivos, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_id", item.CoordenadaAtividade.Id, DbType.Int32); comando.AdicionarParametroEntrada("geometria_tipo", item.CoordenadaAtividade.Tipo, DbType.Int32); comando.AdicionarParametroEntrada("geometria_coord_atv_x", item.CoordenadaAtividade.CoordX, DbType.Decimal); comando.AdicionarParametroEntrada("geometria_coord_atv_y", item.CoordenadaAtividade.CoordY, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (item.Id <= 0) { item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } #region Cultivos foreach (Cultivo cultivo in item.Cultivos) { if (cultivo.Id > 0) { comando = bancoDeDados.CriarComando(@" update {0}crt_aquicultura_cultivos c set c.caracterizacao = :caracterizacao, c.aquicultura = :aquicultura, c.identificador = :identificador, c.volume = :volume, c.tid = :tid where c.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", cultivo.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@" insert into {0}crt_aquicultura_cultivos c (id, caracterizacao, aquicultura, identificador, volume, tid) values (seq_crt_aquicultura_cultivos.nextval, :caracterizacao, :aquicultura, :identificador, :volume, :tid ) returning c.id into :id" , EsquemaBanco); comando.AdicionarParametroSaida("id", DbType.Int32); } comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32); comando.AdicionarParametroEntrada("aquicultura", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("identificador", cultivo.Identificador, DbType.Int32); comando.AdicionarParametroEntrada("volume", cultivo.Volume, DbType.Decimal); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); if (cultivo.Id <= 0) { cultivo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); } } #endregion } #endregion Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.aquicultura, eHistoricoAcao.atualizar, bancoDeDados, null); bancoDeDados.Commit(); } }
internal bool Salvar(Aquicultura caracterizacao) { if (!_caracterizacaoValidar.Basicas(caracterizacao.EmpreendimentoId)) { return(false); } if (caracterizacao.Id <= 0 && (_da.ObterPorEmpreendimento(caracterizacao.EmpreendimentoId, true) ?? new Aquicultura()).Id > 0) { Validacao.Add(Mensagem.Caracterizacao.EmpreendimentoCaracterizacaoJaCriada); return(false); } if (!Acessar(caracterizacao.EmpreendimentoId)) { return(false); } List <String> atividadesDuplicadas = new List <String>(); List <int> atividadesIdGrupo1 = ConfiguracaoAtividade.ObterId( new[] { (int)eAtividadeCodigo.PisciculturaCarciniculturaEspeciesAguaDoceViveirosEscavadosInclusivePolicultivo01, (int)eAtividadeCodigo.PisciculturaEspeciesAguaDoceViveirosEscavadosUnidadePescaEsportivatipo02, (int)eAtividadeCodigo.CarciniculturaEspeciesAguaDoceViveirosEscavados03 }).ToList(); int atividadeIdGrupo3 = ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.CriacaoAnimaisConfinadosPequenoPorteAmbienteAquatico10); foreach (var item in caracterizacao.AquiculturasAquicult) { #region Atividade if (item.Atividade <= 0) { Validacao.Add(Mensagem.Aquicultura.AtividadeObrigatoria(item.Identificador)); } else { if (caracterizacao.AquiculturasAquicult.Where(x => x.Atividade == item.Atividade).ToList().Count >= 2) { atividadesDuplicadas.Add(item.Identificador); } Boolean atividadeGrupo01 = atividadesIdGrupo1.Any(x => x == item.Atividade); Boolean atividadeGrupo03 = atividadeIdGrupo3 == item.Atividade; Boolean atividadeGrupo02 = (!atividadeGrupo01 && !atividadeGrupo03); #region Grupo de Atividade 01 if (atividadeGrupo01) { #region Area Total Inundada if (!String.IsNullOrWhiteSpace(item.AreaInundadaTotal)) { decimal aux = 0; if (Decimal.TryParse(item.AreaInundadaTotal, out aux)) { if (aux <= 0) { Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalMaiorZero(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalInvalido(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.AreaInundadaTotalObrigatorio(item.Identificador)); } #endregion #region Nº de viveiros escavados if (!String.IsNullOrWhiteSpace(item.NumViveiros)) { decimal aux = 0; if (Decimal.TryParse(item.NumViveiros, out aux)) { if (aux <= 0) { Validacao.Add(Mensagem.Aquicultura.NumViveiroMaiorZero(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.NumViveiroInvalido(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.NumViveiroObrigatorio(item.Identificador)); } #endregion item.NumUnidadeCultivos = string.Empty; item.Cultivos.Clear(); item.AreaCultivo = string.Empty; } #endregion #region Grupo de Atividade 02 if (atividadeGrupo02) { #region Cultivos if (item.Cultivos.Count <= 0) { Validacao.Add(Mensagem.Aquicultura.CultivosObrigatorio); } if (!String.IsNullOrWhiteSpace(item.NumUnidadeCultivos)) { int aux = 0; Int32.TryParse(item.NumUnidadeCultivos, out aux); if (aux <= 0) { Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMaiorZero(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosObrigatorio(item.Identificador)); } int numeroUnidadeCultivos = 0; Int32.TryParse(item.NumUnidadeCultivos, out numeroUnidadeCultivos); if (numeroUnidadeCultivos < item.Cultivos.Count) { Validacao.Add(Mensagem.Aquicultura.NumUnidadeCultivosMenorQueCultivosAdicionados(item.Identificador)); } #endregion item.AreaInundadaTotal = string.Empty; item.NumViveiros = string.Empty; item.AreaCultivo = string.Empty; } #endregion #region Grupo de Atividade 03 if (atividadeGrupo03) { #region Área do Cultivo if (!String.IsNullOrWhiteSpace(item.AreaCultivo)) { decimal aux = 0; if (Decimal.TryParse(item.AreaCultivo, out aux)) { if (aux <= 0) { Validacao.Add(Mensagem.Aquicultura.AreaCultivoMaiorZero(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.AreaCultivoInvalido(item.Identificador)); } } else { Validacao.Add(Mensagem.Aquicultura.AreaCultivoObrigatorio(item.Identificador)); } #endregion item.AreaInundadaTotal = string.Empty; item.NumViveiros = string.Empty; item.NumUnidadeCultivos = string.Empty; item.Cultivos.Clear(); } #endregion } #endregion #region Coordenadas if (item.CoordenadaAtividade.Id <= 0) { Validacao.Add(Mensagem.Aquicultura.CoordenadaAtividadeObrigatoria(item.Identificador)); } if (item.CoordenadaAtividade.Tipo <= 0) { Validacao.Add(Mensagem.Aquicultura.GeometriaTipoObrigatorio(item.Identificador)); } #endregion } if (atividadesDuplicadas.Count > 0) { Validacao.Add(Mensagem.Aquicultura.AtividadeDuplicada(atividadesDuplicadas)); } return(Validacao.EhValido); }