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 IActionResult SubproductoPropiedadPorTipo(int subproductoId, int subproductoTipoId)
        {
            try
            {
                List <SubproductoPropiedad> subproductopropiedades = SubproductoPropiedadDAO.getSubproductoPropiedadesPorTipo(subproductoTipoId);

                List <Dictionary <String, Object> > campos = new List <Dictionary <String, Object> >();
                foreach (SubproductoPropiedad subProductopropiedad in subproductopropiedades)
                {
                    Dictionary <String, Object> campo = new Dictionary <String, Object>();
                    campo.Add("id", subProductopropiedad.id);
                    campo.Add("nombre", subProductopropiedad.nombre);
                    campo.Add("tipo", subProductopropiedad.datoTipoid);
                    SubproductoPropiedadValor subproductoPropiedadValor = SubproductoPropiedadValorDAO.getValorPorSubProdcutoYPropiedad(subProductopropiedad.id, subproductoId);
                    if (subproductoPropiedadValor != null)
                    {
                        switch (subProductopropiedad.datoTipoid)
                        {
                        case 1:
                            campo.Add("valor", subproductoPropiedadValor.valorString);
                            break;

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

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

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

                        case 5:
                            campo.Add("valor", subproductoPropiedadValor.valorTiempo != null ? subproductoPropiedadValor.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, subproductopropiedades = estructuraCamposDinamicos }));
            }
            catch (Exception e)
            {
                CLogger.write("5", "SubproductoPropiedadController.class", e);
                return(BadRequest(500));
            }
        }
        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));
            }
        }