public async Task <IActionResult> DeleteOption(int optionId, int selectId)
        {
            bool notFound = false;

            switch (selectId)
            {
            case 1:
                Actividad actividad = new Actividad
                {
                    Id = optionId
                };
                _context.Actividades.Remove(actividad);
                break;

            case 2:
                Area Area = new Area
                {
                    Id = optionId
                };
                _context.Areas.Remove(Area);
                break;

            case 3:
                Casualidad Casualidad = new Casualidad
                {
                    Id = optionId
                };
                _context.Casualidades.Remove(Casualidad);
                break;

            case 4:
                CausaBasica CausaBasica = new CausaBasica
                {
                    Id = optionId
                };
                _context.CausaBasicas.Remove(CausaBasica);
                break;

            case 5:
                CausaInmediata CausaInmediata = new CausaInmediata
                {
                    Id = optionId
                };
                _context.CausaInmediatas.Remove(CausaInmediata);
                break;

            case 6:
                Clasificacion Clasificacion = new Clasificacion
                {
                    Id = optionId
                };
                _context.Clasificaciones.Remove(Clasificacion);
                break;

            case 7:
                Comportamiento Comportamiento = new Comportamiento
                {
                    Id = optionId
                };
                _context.Comportamientos.Remove(Comportamiento);
                break;

            case 8:
                Efecto Efecto = new Efecto
                {
                    Id = optionId
                };
                _context.Efectos.Remove(Efecto);
                break;

            case 9:
                FactorRiesgo FactorRiesgo = new FactorRiesgo
                {
                    Id = optionId
                };
                _context.FactorRiesgos.Remove(FactorRiesgo);
                break;

            case 10:
                Genero Genero = new Genero
                {
                    Id = optionId
                };
                _context.Generos.Remove(Genero);
                break;

            case 11:
                IndicadorRiesgo IndicadorRiesgo = new IndicadorRiesgo
                {
                    Id = optionId
                };
                _context.IndicadorRiesgos.Remove(IndicadorRiesgo);
                break;

            case 12:
                Jornada Jornada = new Jornada
                {
                    Id = optionId
                };
                _context.Jornadas.Remove(Jornada);
                break;

            case 13:
                Observado Observado = new Observado
                {
                    Id = optionId
                };
                _context.Observados.Remove(Observado);
                break;

            case 14:
                ParteCuerpo ParteCuerpo = new ParteCuerpo
                {
                    Id = optionId
                };
                _context.ParteCuerpos.Remove(ParteCuerpo);
                break;

            case 15:
                Proceso Proceso = new Proceso
                {
                    Id = optionId
                };
                _context.Procesos.Remove(Proceso);
                break;

            case 16:
                Riesgo Riesgo = new Riesgo
                {
                    Id = optionId
                };
                _context.Riesgos.Remove(Riesgo);
                break;

            case 17:
                TipoComportamiento TipoComportamiento = new TipoComportamiento
                {
                    Id = optionId
                };
                _context.TipoComportamientos.Remove(TipoComportamiento);
                break;

            case 18:
                TipoObservado TipoObservado = new TipoObservado
                {
                    Id = optionId
                };
                _context.TipoObservados.Remove(TipoObservado);
                break;

            case 19:
                Turno Turno = new Turno
                {
                    Id = optionId
                };
                _context.Turnos.Remove(Turno);
                break;

            case 20:
                Categoria Categoria = new Categoria
                {
                    Id = optionId
                };
                _context.Categorias.Remove(Categoria);
                break;

            case 21:
                Subcategoria Subcategoria = new Subcategoria
                {
                    Id = optionId
                };
                _context.Subcategorias.Remove(Subcategoria);
                break;


            default:
                notFound = true;
                break;
            }
            if (notFound)
            {
                return(StatusCode(400));
            }
            else
            {
                await _context.SaveChangesAsync();

                return(StatusCode(202));
            }
        }
 /// <summary>
 /// Constructor
 /// </summary>
 public GetRiskFactorsResponse(FactorRiesgo tipo)
 {
     IdRiskFactor = tipo.Id;
     Name         = tipo.Nombre;
 }
        public async Task <IActionResult> InsertSelectOption(SelectDto selectDto)
        {
            var currentUser = HttpContext.User;

            if (currentUser.HasClaim(c => c.Type == "username"))
            {
                var     username = currentUser.Claims.FirstOrDefault(c => c.Type == "username").Value;
                Usuario user     = await _context.Usuarios.FirstOrDefaultAsync <Usuario>(u => u.Username == username);

                bool    notFound  = false;
                dynamic selectObj = null;
                switch (selectDto.SelectId)
                {
                case 1:
                    selectObj = new Actividad
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Actividades.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 2:
                    selectObj = new Area
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Areas.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 3:
                    selectObj = new Casualidad
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Casualidades.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 4:
                    selectObj = new CausaBasica
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.CausaBasicas.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 5:
                    selectObj = new CausaInmediata
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.CausaInmediatas.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 6:
                    selectObj = new Clasificacion
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Clasificaciones.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 7:
                    selectObj = new Comportamiento
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Comportamientos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 8:
                    selectObj = new Efecto
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Efectos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 9:
                    selectObj = new FactorRiesgo
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.FactorRiesgos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 10:
                    selectObj = new Genero
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Generos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 11:
                    selectObj = new IndicadorRiesgo
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.IndicadorRiesgos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 12:
                    selectObj = new Jornada
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Jornadas.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 13:
                    selectObj = new Observado
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Observados.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 14:
                    selectObj = new ParteCuerpo
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.ParteCuerpos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 15:
                    selectObj = new Proceso
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Procesos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 16:
                    selectObj = new Riesgo
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Riesgos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 17:
                    selectObj = new TipoComportamiento
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.TipoComportamientos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 18:
                    selectObj = new TipoObservado
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.TipoObservados.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 19:
                    selectObj = new Turno
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Turnos.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 20:
                    selectObj = new Categoria
                    {
                        Nombre = selectDto.Nombre
                    };
                    await _context.Categorias.AddAsync(selectObj);

                    await _context.SaveChangesAsync();

                    break;

                case 21:
                    if (selectDto.ParentOptionId != null)
                    {
                        selectObj = new Subcategoria
                        {
                            Nombre      = selectDto.Nombre,
                            CategoriaId = selectDto.ParentOptionId ?? 0
                        };
                        await _context.Subcategorias.AddAsync(selectObj);

                        await _context.SaveChangesAsync();

                        break;
                    }
                    else
                    {
                        notFound = true;
                        break;
                    }


                default:
                    notFound = true;
                    break;
                }
                if (notFound)
                {
                    return(StatusCode(400));
                }
                Bitacora bitacora = new Bitacora
                {
                    Fecha               = DateTime.Now,
                    UsuarioId           = user.Id,
                    DescripcionBitacora = $"Creó nueva opción de formulario {selectObj.Nombre}"
                };
                await _context.Bitacora.AddAsync(bitacora);

                await _context.SaveChangesAsync();

                return(Ok(selectObj));
            }
            return(Unauthorized());
        }