public IActionResult ProyectoPropiedadPorTipo([FromBody] dynamic value)
        {
            try
            {
                int idProyecto     = value.idProyecto != null ? (int)value.idProyecto : default(int);
                int idProyectoTipo = value.idProyectoTipo != null ? (int)value.idProyectoTipo : default(int);
                List <ProyectoPropiedad> proyectoPropiedades = ProyectoPropiedadDAO.getProyectoPropiedadesPorTipoProyecto(idProyectoTipo);

                List <Dictionary <string, Object> > campos = new List <Dictionary <string, Object> >();
                foreach (ProyectoPropiedad proyectoPropiedad in proyectoPropiedades)
                {
                    Dictionary <string, Object> campo = new Dictionary <string, Object>();
                    campo.Add("id", proyectoPropiedad.id);
                    campo.Add("nombre", proyectoPropiedad.nombre);
                    campo.Add("tipo", proyectoPropiedad.datoTipoid);
                    ProyectoPropiedadValor proyectoPropiedadValor = ProyectoPropiedadValorDAO.getValorPorProyectoYPropiedad(proyectoPropiedad.id, idProyecto);
                    if (proyectoPropiedadValor != null)
                    {
                        switch ((int)campo["tipo"])
                        {
                        case 1:
                            campo.Add("valor", proyectoPropiedadValor.valorString);
                            break;

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

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

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

                        case 5:
                            campo.Add("valor", proyectoPropiedadValor.valorTiempo != null ? proyectoPropiedadValor.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, proyectopropiedades = estructuraCamposDinamicos }));
            }
            catch (Exception e)
            {
                CLogger.write("4", "ProyectoPropiedadController.class", e);
                return(BadRequest(500));
            }
        }
        public static bool eliminarProyectoPropiedadValor(ProyectoPropiedadValor proyectoPropiedadValor)
        {
            bool ret = false;

            try
            {
                proyectoPropiedadValor.estado = 0;
                ret = guardarProyectoPropiedadValor(proyectoPropiedadValor);
            }
            catch (Exception e)
            {
                CLogger.write("3", "ProyectoPropiedadValorDAO.class", e);
            }
            return(ret);
        }
        public static ProyectoPropiedadValor getValorPorProyectoYPropiedad(int idPropiedad, int idProyecto)
        {
            ProyectoPropiedadValor ret = null;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    ret = db.QueryFirstOrDefault <ProyectoPropiedadValor>("SELECT * FROM PROYECTO_PROPIEDAD_VALOR WHERE proyectoid=:proyectoId AND " +
                                                                          "proyectoPropiedadid=:proyectoPropiedadId AND estado=1", new { proyectoId = idProyecto, proyectoPropiedadId = idPropiedad });
                }
            }
            catch (Exception e)
            {
                CLogger.write("1", "ProyectoPropiedadValorDAO.class", e);
            }
            return(ret);
        }
        public static bool eliminarTotalRiesgoPropiedadValor(ProyectoPropiedadValor proyectoPropiedadValor)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int eliminado = db.Execute("DELETE FROM PROYECTO_PROPIEDAD_VALOR WHERE proyectoid=:proyectoid AND proyectoPropieadadid=:proyectoPropieadadid",
                                               new { proyectoid = proyectoPropiedadValor.proyectoid, proyectoPropieadadid = proyectoPropiedadValor.proyectoPropiedadid });

                    ret = eliminado > 0 ? true : false;
                }
            }
            catch (Exception e)
            {
                CLogger.write("4", "ProyectoPropiedadValorDAO.class", e);
            }
            return(ret);
        }
        public static bool guardarProyectoPropiedadValor(ProyectoPropiedadValor proyectoPropiedadValor)
        {
            bool ret = false;

            try
            {
                using (DbConnection db = new OracleContext().getConnection())
                {
                    int existe = db.ExecuteScalar <int>("SELECT COUNT(*) FROM PROYECTO_PROPIEDAD_VALOR WHERE proyectoid=:proyectoId AND " +
                                                        "proyecto_propiedadid=:proyectoPropiedadid", new
                    {
                        proyectoId          = proyectoPropiedadValor.proyectoid,
                        proyectoPropiedadid = proyectoPropiedadValor.proyectoPropiedadid
                    });

                    if (existe > 0)
                    {
                        int guardado = db.Execute("UPDATE proyecto_propiedad_valor SET valor_string=:valorString, valor_entero=:valorEntero, valor_decimal=:valorDecimal, " +
                                                  "valor_tiempo=:valorTiempo, usuario_creo=:usuarioCreo, usuario_actualizo=:usuarioActualizo, fecha_creacion=:fechaCreacion, " +
                                                  "fecha_actualizacion=:fechaActualizacion, estado=:estado WHERE proyectoid=:proyectoid AND proyecto_propiedadid=:proyectoPropiedadid", proyectoPropiedadValor);
                        ret = guardado > 0 ? true : false;
                    }
                    else
                    {
                        int guardado = db.Execute("INSERT INTO proyecto_propiedad_valor VALUES (:proyectoid, :proyectoPropiedadid, :valorString, :valorEntero, " +
                                                  ":valorDecimal, :valorTiempo, :usuarioCreo, :usuarioActualizo, :fechaCreacion, :fechaActualizacion, :estado)", proyectoPropiedadValor);
                        ret = guardado > 0 ? true : false;
                    }
                }
            }
            catch (Exception e)
            {
                CLogger.write("2", "ProyectoPropiedadValorDAO.class", e);
            }
            return(ret);
        }