public static List <AnimalInfo> ObtenerAretes(CorralInfo corralInfo) { List <AnimalInfo> listaAnimales = null; try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; if (seguridad != null) { bool esPartida = false; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var corralPl = new CorralPL(); CorralInfo corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo); if (corral.GrupoCorral == GrupoCorralEnum.Recepcion.GetHashCode()) { esPartida = true; } var animalPL = new AnimalPL(); listaAnimales = animalPL.ObtenerAnimalesPorCorralDeteccion(corral.CorralID, esPartida); } } catch (Exception ex) { Logger.Error(ex); } return(listaAnimales); }
public static CorralInfo ObtenerCorral(string corralCodigo) { CorralInfo corral = null; try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { var corralPL = new CorralPL(); corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo); if (corral.GrupoCorral == (int)GrupoCorralEnum.Corraleta) { if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaSacrificio && corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaRecuperado && corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaRecuperadosPartida) { corral.TipoCorral.TipoCorralID = -1; //Corraleta no es igual a sacrificio } } } } catch (Exception ex) { Logger.Error(ex); } return(corral); }
public static LoteInfo ObtenerLote(string corralCodigo) { LoteInfo lote = null; try { CorralInfo corral = null; var lotePL = new LotePL(); var corralPL = new CorralPL(); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo); if (corral != null) { lote = lotePL.ObtenerPorCorralCerrado(organizacionId, corral.CorralID); } //lote = lotePL.ObtenerPorCorral(organizacionId, corral.CorralID); } catch (Exception ex) { Logger.Error(ex); } return(lote); }
public static int Guardar(string arete, string codigoCorral, string codigoCorraleta, int tipoMovimiento) { int retorno = 0; try { var salidaIndividualPL = new SalidaIndividualPL(); var corralPl = new CorralPL(); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; int usuario = seguridad.Usuario.UsuarioID; int operador = seguridad.Usuario.Operador.OperadorID; var corraleta = corralPl.ObtenerCorralPorCodigo(organizacionId, codigoCorraleta); retorno = salidaIndividualPL.Guardar(arete, organizacionId, codigoCorral, corraleta.CorralID, usuario, (int)TipoMovimiento.SalidaPorRecuperacion, operador); } catch (Exception ex) { retorno = -1; Logger.Error(ex); } return(retorno); }
public static CorralInfo ObtenerDatosDelCorral(CorralInfo corralInfo, int enfermeria) { try{ var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var corralPL = new CorralPL(); var operadorPL = new OperadorPL(); var corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo); if (corral != null) { if (corralPL.ValidarCorralPorEnfermeria(corral.Codigo, enfermeria, organizacionId)) { corral.Operador = operadorPL.ObtenerPorCodigoCorral(corral.Codigo, organizacionId); corral.perteneceAEnfermeria = true; } else { corral = new CorralInfo(); corral.perteneceAEnfermeria = false; } } return(corral); } catch (Exception ex) { Logger.Error(ex); throw; } }
public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(string corralCodigo) { List <AnimalInfo> lista = null; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var animalPl = new AnimalPL(); var corralPl = new CorralPL(); CorralInfo corral = null; corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); corral.Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }; return(animalPl.ObtenerAnimalesPorCorral(corral, organizacionId)); } catch (Exception ex) { Logger.Error(ex); } return(lista); }
private void txtCorral_LostFocus(object sender, RoutedEventArgs e) { try { Contexto.CorralInfo.Organizacion = (OrganizacionInfo)cmbOrganizacion.SelectedItem; if (Contexto.CorralInfo.Organizacion == null || Contexto.CorralInfo.Organizacion.OrganizacionID == 0) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReporteConsumoCorral_SeleccioneOrganizacion, MessageBoxButton.OK, MessageImage.Error); cmbOrganizacion.Focus(); } else { var corralPL = new CorralPL(); var corral = corralPL.ObtenerCorralPorCodigo(Contexto.CorralInfo.Organizacion.OrganizacionID, Contexto.CorralInfo.Codigo); Contexto.CorralInfo = corral; Contexto.LoteInfo.CorralID = Contexto.CorralInfo.CorralID; } } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReporteConsumoProgramadovsServido_ErrorCargarCombos, MessageBoxButton.OK, MessageImage.Error); } }
public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(string corralCodigo) { List <AnimalInfo> lista = null; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var corralPl = new CorralPL(); CorralInfo corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); corral.Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }; if (corral.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { lista = new List <AnimalInfo>(); var interfaz = new InterfaceSalidaAnimalPL(); var anim = interfaz.ObtenerAretesInterfazSalidaAnimal(corralCodigo, organizacionId); if (anim != null) { foreach (InterfaceSalidaAnimalInfo interfaceAnimal in anim) { var animal = new AnimalInfo { Arete = interfaceAnimal.Arete }; lista.Add(animal); } } } else { var animalPl = new AnimalPL(); lista = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId); } return(lista); } catch (Exception ex) { Logger.Error(ex); } return(lista); }
public static int ObtenerCorral(string corralCodigo, int TipoVenta) { CorralInfo corral; corral = null; var pl = new CorralPL(); int retorno = 0; try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { corral = pl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); if (corral != null) { if ((TipoVenta == TipoVentaEnum.Propio.GetHashCode() && corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoVentaMuerte) || (TipoVenta == TipoVentaEnum.Externo.GetHashCode() && (corral.TipoCorral.TipoCorralID == (int)TipoCorral.Maquila || corral.TipoCorral.TipoCorralID == (int)TipoCorral.Intensivo))) { retorno = 1; } else { retorno = 2; } } else { retorno = 0; } } } catch (Exception ex) { Logger.Error(ex); retorno = 0; } return(retorno); }
public static CorralInfo ValidarCorral(CorralInfo corralInfo) { var corral = new CorralInfo(); try { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; if (seguridad != null) { var organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var operadorId = seguridad.Usuario.Operador.OperadorID; var corralPL = new CorralPL(); var operadorPL = new OperadorPL(); corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo); if (corral != null) { var operador = operadorPL.ObtenerLectorPorCodigoCorral(corral.Codigo, organizacionId); if (operador != null) { if (operador.OperadorID == operadorId) { corral.Operador = operador; } } } } } catch (Exception ex) { Logger.Error(ex); corral = null; } return(corral); }
public static int ValidarCorraleta(string corraleta) { CorralInfo corral = null; int respuesta = 0; try { var corralPL = new CorralPL(); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corraleta); if (corral != null) { if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio) { respuesta = 1; } else { respuesta = 2; } } else { respuesta = 0; } } catch (Exception ex) { Logger.Error(ex); } return(respuesta); }
public static CorralInfo ObtenerCorral(string corralCodigo) { CorralInfo corral; corral = null; var corralPL = new CorralPL(); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo); } } catch (Exception ex) { Logger.Error(ex); } return(corral); }
/// <summary> /// Carga la informacion del arete en pantalla /// </summary> private void LlenarDatosArete() { MuerteInfo areteMuerto = null; var pl = new MuertePL(); var animalPL = new AnimalPL(); var corralPL = new CorralPL(); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; var organizacionID = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { //Se obtiene el Corral para ver Si es de Recepcion corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, corralInfo.Codigo); if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { /* Si el corral es de Recepcion */ areteMuerto = pl.ObtenerGanadoMuertoPorAreteRecepcion(organizacionID, numeroArete); } else { /* Si el corral es de Enfermeria o produccion */ areteMuerto = pl.ObtenerGanadoMuertoPorArete(organizacionID, numeroArete); if (areteMuerto != null && areteMuerto.AnimalId > 0) { areteMuerto.Peso = animalPL.ObtenerUltimoMovimientoAnimal(new AnimalInfo() { AnimalID = areteMuerto.AnimalId, OrganizacionIDEntrada = organizacionID }).Peso; } else { if (areteMuerto == null) { areteMuerto = new MuerteInfo { Arete = numeroArete, CorralCodigo = corralInfo.Codigo }; } var lote = new LoteInfo(); var lotePl = new LotePL(); lote = lotePl.ObtenerPorCorral(organizacionID, corralInfo.CorralID); if (lote != null) { var listaAnimales = animalPL.ObtenerAnimalesPorLoteID(lote); if (listaAnimales != null) { var listaMovimientosActivos = (from animal in listaAnimales let movimiento = new AnimalMovimientoInfo() select animalPL.ObtenerUltimoMovimientoAnimal(animal)).ToList(); if (listaMovimientosActivos.Count > 0) { areteMuerto.Peso = listaMovimientosActivos.Sum(registro => registro.Peso) / listaMovimientosActivos.Count; } } } } } if (areteMuerto != null) { hdMuerteId.Value = areteMuerto.MuerteId.ToString(); hdAnimalId.Value = areteMuerto.AnimalId.ToString(); hdCorralId.Value = areteMuerto.CorralId.ToString(); hdLoteId.Value = areteMuerto.LoteId.ToString(); if (areteMuerto.MuerteId == 0) { hdMuerteId.Value = muerteId.ToString(); } txtCorral.Text = areteMuerto.CorralCodigo; txtPeso.Text = areteMuerto.Peso.ToString(); txtAreteMetalico.Text = areteMuerto.AreteMetalico; txtNumeroArete.Text = areteMuerto.Arete; txtNombreResponsable.Text = seguridad.Usuario.Nombre; lblFechaSalida.Text += " " + DateTime.Now.ToShortDateString(); lblHoraSalida.Text += " " + DateTime.Now.ToShortTimeString(); var parametros = ObtenerParametrosRutaImagenes(seguridad.Usuario.Organizacion.OrganizacionID); imgFotoDeteccion.Visible = false; if (parametros != null && areteMuerto.FotoDeteccion != string.Empty) { imgFotoDeteccion.Visible = true; imgFotoDeteccion.ImageUrl = parametros.Valor + areteMuerto.FotoDeteccion; } } else { ClientScript.RegisterStartupScript(this.GetType(), "myScript", "MostrarFalloCargarDatos();", true); } } } catch (Exception ex) { Logger.Error(ex); throw; } }
/// <summary> /// Metodo para validar el corral destino /// </summary> private bool ValidarCorralDestino() { try { //Buscar el corral en el inventario var corralPL = new CorralPL(); var corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, txtCorralDestino.Text); if (corralInfo != null) { if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Enfermeria || corralInfo.GrupoCorral == (int)GrupoCorralEnum.Produccion) { // Obtener el lote del corral var lotePL = new LotePL(); var lote = lotePL.ObtenerPorCorralCerrado(organizacionID, corralInfo.CorralID); if (lote != null) { //Si existe se obtienen los datos del corral corralDestino = corralInfo; } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_GrupoCorralSinLote, MessageBoxButton.OK, MessageImage.Warning); txtCorralDestino.Text = String.Empty; txtCorralDestino.Focusable = true; txtCorralDestino.Focus(); //e.Handled = true; return(false); } } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_GrupoCorralInvalido, MessageBoxButton.OK, MessageImage.Warning); txtCorralDestino.Focusable = true; txtCorralDestino.Focus(); txtCorralDestino.Text = String.Empty; //e.Handled = true; return(false); } } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TrasferenciaGanadoIndividual_CorralNoExiste, MessageBoxButton.OK, MessageImage.Warning); txtCorralDestino.Focusable = true; txtCorralDestino.Focus(); txtCorralDestino.Text = String.Empty; //e.Handled = true; return(false); } } catch (Exception ex) { Logger.Error(ex); } return(true); }
public static AnimalInfo ObtenerExisteArete(string corralCodigo, string arete, string areteRFID) { AnimalInfo animalAgregado = new AnimalInfo(); int retorno = 0; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; IList <AnimalInfo> animales = null; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; string areteVentaDetalle = ""; var animalPl = new AnimalPL(); var corralPl = new CorralPL(); CorralInfo corral = null; corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); areteVentaDetalle = animalPl.ObtenerExisteVentaDetalle(arete, areteRFID); if (areteVentaDetalle == "") { if (corral != null) { corral.Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }; animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId); if (animales != null) { if (arete.Trim() != string.Empty && animales.Any(t => arete == t.Arete)) { animalAgregado = (from animal in animales where animal.Arete == arete select animal).FirstOrDefault(); retorno = 1; //El arete es valido } else if (areteRFID.Trim() != string.Empty && animales.Any(t => areteRFID == t.AreteMetalico)) { animalAgregado = (from animal in animales where animal.AreteMetalico == areteRFID select animal).FirstOrDefault(); retorno = 1; //El arete es valido } else { if (corral.GrupoCorral == (int)GrupoCorralEnum.Enfermeria || corral.GrupoCorral == (int)GrupoCorralEnum.Produccion) { /* Validar Si el arete existe en el inventario */ var animal = animalPl.ObtenerAnimalPorArete(arete, organizacionId); if (animal != null && animal.CargaInicial) { animalAgregado = animal; retorno = 3; //El arete es valido } } } } } } else { retorno = 2;//El arete ya tiene una salida } } catch (Exception ex) { Logger.Error(ex); } animalAgregado.TipoGanadoID = retorno; return(animalAgregado); }
public static int ObtenerExisteArete(string corralCodigo, string arete, bool validarDeteccion) { int retorno = 0; string areteDeteccion = string.Empty, areteMuerte = string.Empty; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; IList <AnimalInfo> animales = null; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var animalPl = new AnimalPL(); var corralPl = new CorralPL(); var lotePL = new LotePL(); AnimalInfo animal = null; CorralInfo corral = null; LoteInfo lote = null; corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); corral.Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }; if (validarDeteccion) { areteDeteccion = animalPl.obtenerExisteDeteccion(arete); } if (areteDeteccion == string.Empty) { areteMuerte = animalPl.obtenerExisteMuerte(arete); if (areteMuerte == string.Empty) { if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.Recepcion && corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaSacrificio) { animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId); if (animales != null) { for (int i = 0; i < animales.Count; i++) { if (arete == animales[i].Arete) { return(1); } } } /* Validar Si el arete existe en el inventario y es carga inicial */ var animalInventario = animalPl.ObtenerAnimalPorArete(arete, organizacionId); if (animalInventario == null) { retorno = 0; } } else if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio) { animal = animalPl.ObtenerAnimalPorArete(arete, organizacionId); if (animal != null) { if (animalPl.ObtenerExisteSalida(animal.AnimalID) > 0) { retorno = 1; } } } else { var entrada = new EntradaGanadoPL(); lote = lotePL.ObtenerLotesActivos(organizacionId, corral.CorralID); if (lote != null) { var datosEntrada = entrada.ObtenerEntradaPorLote(lote); if (datosEntrada != null) { if (datosEntrada.TipoOrganizacionOrigenId != (int)TipoOrganizacion.CompraDirecta) { int salida = corralPl.ObtenerExisteInterfaceSalida(organizacionId, corralCodigo, arete); if (salida > 0) { retorno = 1; // Existe arete en la interface } else { retorno = 0;//Valido, pero aqui va la validacion de interfaz salida } } else { /* Si es compra directa validar q el arete no exista en el inventario */ var animalInventario = animalPl.ObtenerAnimalPorArete(arete, organizacionId); if (animalInventario != null) { retorno = 0;// el arete ya existe en el inventario } else { retorno = 1;//Valido, es compra directa y no existe en el inventario } } } } } } else { retorno = 3;//Muerto } } else { retorno = 2;//Detectado } } catch (Exception ex) { Logger.Error(ex); } return(retorno); }
public static int ObtenerExisteAreteTestigo(string corralCodigo, string arete, string areteTestigo, bool validarDeteccion) { int retorno = 0; string areteDeteccion = string.Empty, areteMuerte = string.Empty; try { SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; IList <AnimalInfo> animales = null; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; var animalPl = new AnimalPL(); var corralPl = new CorralPL(); AnimalInfo animal = new AnimalInfo(); CorralInfo corral = null; corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo); corral.Organizacion = new OrganizacionInfo { OrganizacionID = organizacionId }; if (validarDeteccion) { areteDeteccion = animalPl.obtenerExisteDeteccionTestigo(areteTestigo); } if (areteDeteccion == string.Empty) { areteMuerte = animalPl.obtenerExisteMuerteTestigo(areteTestigo); if (areteMuerte == string.Empty) { if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.Recepcion && corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaSacrificio) { animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId); if (animales != null) { for (int i = 0; i < animales.Count; i++) { if (areteTestigo == animales[i].AreteMetalico) { if (arete != string.Empty) { if (arete == animales[i].Arete) { retorno = 1; //Si corresponde break; } else { retorno = 2; //No corresponde } } else { retorno = 1; //No trae arete } } } } } else if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio) { animal = animalPl.ObtenerAnimalPorAreteTestigo(areteTestigo, organizacionId); if (animal != null) { if (animalPl.ObtenerExisteSalida(animal.AnimalID) > 0 && (arete == animal.Arete || arete == "")) { retorno = 1; } } } else { retorno = 1;//No se valida si es recepcion } } else { retorno = 3;//Muerto } } else { retorno = 2;//Detectado } } catch (Exception ex) { Logger.Error(ex); } return(retorno); }
public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(CorralInfo corralInfo) { try { var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo; int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; bool validarSalida = true; var animalPl = new AnimalPL(); var corralPl = new CorralPL(); var entrada = new EntradaGanadoPL(); List <AnimalInfo> listaanimales = null; var corralIn = corralPl.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo); if (corralIn != null) { var lotePl = new LotePL(); var lote = lotePl.ObtenerLotesActivos(organizacionId, corralIn.CorralID); if (lote != null) { if (corralIn.GrupoCorral == (int)GrupoCorralEnum.Enfermeria || corralIn.GrupoCorral == (int)GrupoCorralEnum.Produccion) { listaanimales = animalPl.ObtenerAnimalesPorCorral(corralInfo, organizacionId); } else if (corralIn.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { var datosEntrada = entrada.ObtenerEntradaPorLote(lote); if (datosEntrada != null) { if (datosEntrada.TipoOrganizacionOrigenId == (int)TipoOrganizacion.CompraDirecta) { validarSalida = false; } } AnimalInfo animal; if (validarSalida) { listaanimales = new List <AnimalInfo>(); var interfaz = new InterfaceSalidaAnimalPL(); var anim = interfaz.ObtenerAretesInterfazSalidaAnimal(corralInfo.Codigo, organizacionId); if (anim != null) { foreach (InterfaceSalidaAnimalInfo interfaceAnimal in anim) { animal = new AnimalInfo(); animal.Arete = interfaceAnimal.Arete; listaanimales.Add(animal); } } else { animal = new AnimalInfo { AnimalID = -1 }; listaanimales.Add(animal); } } } } } return(listaanimales); } catch (Exception ex) { Logger.Error(ex); throw; } }