public IActionResult ActividadPropiedadPorTipo(int idActividad, int idActividadTipo)
        {
            try
            {
                List <ActividadPropiedad> actividadpropiedades = ActividadPropiedadDAO.getActividadPropiedadesPorTipoActividad(idActividadTipo);

                List <Dictionary <String, Object> > campos = new List <Dictionary <String, Object> >();
                foreach (ActividadPropiedad actividadpropiedad in actividadpropiedades)
                {
                    Dictionary <String, Object> campo = new Dictionary <String, Object>();
                    campo.Add("id", actividadpropiedad.id);
                    campo.Add("nombre", actividadpropiedad.nombre);
                    campo.Add("tipo", actividadpropiedad.datoTipoid);
                    ActividadPropiedadValor actividadPropiedadValor = ActividadPropiedadValorDAO.getValorPorActividadYPropiedad(actividadpropiedad.id, idActividad);
                    if (actividadPropiedadValor != null)
                    {
                        switch (actividadpropiedad.datoTipoid)
                        {
                        case 1:
                            campo.Add("valor", actividadPropiedadValor.valorString);
                            break;

                        case 2:
                            campo.Add("valor", actividadPropiedadValor.valorEntero);
                            break;

                        case 3:
                            campo.Add("valor", actividadPropiedadValor.valorDecimal);
                            break;

                        case 4:
                            campo.Add("valor", actividadPropiedadValor.valorEntero == 1 ? true : false);
                            break;

                        case 5:
                            campo.Add("valor", actividadPropiedadValor.valorTiempo != null ? actividadPropiedadValor.valorTiempo.Value.ToString("dd/MM/yyyy H:mm:ss") : null);
                            break;
                        }
                    }
                    else
                    {
                        campo.Add("valor", "");
                    }
                    campos.Add(campo);
                }

                List <object> estructuraCamposDinamicos = CFormaDinamica.convertirEstructura(campos);

                return(Ok(new { success = true, actividadpropiedades = estructuraCamposDinamicos }));
            }
            catch (Exception e)
            {
                CLogger.write("9", "ActividadPropiedadController.class", e);
                return(BadRequest(500));
            }
        }
        /// <summary>
        /// Obtiene el Valor de la Propiedad
        /// </summary>
        /// <param name="idPropiedad"></param>
        /// <param name="idActividad"></param>
        /// <returns></returns>
        public static ActividadPropiedadValor getValorPorActividadYPropiedad(int idPropiedad, int idActividad)
        {
            ActividadPropiedadValor ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <ActividadPropiedadValor>("SELECT * FROM actividad_propiedad_valor WHERE actividadid=:actividadId AND " +
                                                                           "actividad_propiedadid=:propiedadid", new { actividadId = idActividad, propiedadid = idPropiedad });
                }
            }
            catch (Exception e)
            {
                CLogger.write("4", "ActividadPropiedadValorDAO.class", e);
            }
            return(ret);
        }
        /// <summary>
        /// Elimina de la base de datos todas las actividades que pertenecen a la actividad y propiedad indicada
        /// </summary>
        /// <param name="actividadPropiedadValor">Objeto que contiene la información de la actividad y propiedad a borrar</param>
        /// <returns>TRUE si ejecutó correctamente el comando, FALSE en caso de error</returns>
        public static bool EliminarTotalActividadPropiedadValor(ActividadPropiedadValor actividadPropiedadValor)
        {
            bool resultado = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection()) {
                    int eliminado = db.Execute("DELETE FROM actividad_propiedad_valor WHERE actividadid = :actividadId AND actividad_propiedadid = :actividadPropiedadId",
                                               new { actividadId = actividadPropiedadValor.actividadid, actividadPropiedadId = actividadPropiedadValor.actividadPropiedadid });

                    resultado = eliminado > 0 ? true : false;
                }
            }
            catch (Exception ex)
            {
                CLogger.write("3", "ActividadPropiedadValorDAO.class", ex);
            }

            return(resultado);
        }
        /// <summary>
        /// Registra el objeto Actividad Propiedad Valor en base de datos
        /// </summary>
        /// <param name="actividadPropiedadValor">Objeto a registrar</param>
        /// <returns>TRUE si pudo guardar, FALSE en caso de error</returns>
        public static bool GuardarActividadPropiedadValor(ActividadPropiedadValor actividadPropiedadValor)
        {
            bool resultado = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int existe = db.ExecuteScalar <int>(
                        "SELECT COUNT (*) FROM actividad_propiedad_valor WHERE actividadid = :actividadid AND actividad_propiedadid = :actividadPropiedadId",
                        new { actividadid = actividadPropiedadValor.actividadid, actividadPropiedadId = actividadPropiedadValor.actividadPropiedadid }
                        );

                    if (existe > 0)
                    {
                        int guardado = db.Execute("UPDATE actividad_propiedad_valor SET valor_entero = :valorEntero, valor_string = :valorString, valor_decimal = :valorDecimal, " +
                                                  "valor_tiempo = :valorTiempo, usuario_creo = :usuarioCreo, usuario_actualizo = :usuarioActualizo, fecha_creacion = :fechaCreacion, fecha_actualizacion = :fechaActualizacion, " +
                                                  "estado = :estado WHERE actividadid = :actividadid AND actividad_propiedadid = :actividadPropiedadId", actividadPropiedadValor);

                        resultado = (guardado > 0) ? true : false;
                    }
                    else
                    {
                        int guardado = db.Execute(
                            "INSERT INTO actividad_propiedad_valor VALUES (:actividadid, :actividadPropiedadid, :valorEntero, :valorString, :valorDecimal, :valorTiempo, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado)", actividadPropiedadValor);

                        resultado = (guardado > 0) ? true : false;
                    }
                }
            }
            catch (Exception ex)
            {
                CLogger.write("2", "ActividadPropiedadValorDAO.class", ex);
            }

            return(resultado);
        }