public async Task <Response> InsertarEvaluacion([FromBody] ViewModelEvaluarCandidato viewModelEvaluarCandidato)
        {
            var a = await db.CandidatoConcurso.Where(x => x.IdCandidato == viewModelEvaluarCandidato.IdCandidato && x.IdPartidasFase == viewModelEvaluarCandidato.IdPartidaFase).FirstOrDefaultAsync();

            try
            {
                a.IdCandidato           = viewModelEvaluarCandidato.IdCandidato;
                a.CumpleInstruccion     = viewModelEvaluarCandidato.ApliInstruccion;
                a.CumpleExperiencia     = viewModelEvaluarCandidato.ApliExperiencia;
                a.PorcentajeInstruccion = viewModelEvaluarCandidato.PorInstruccion;
                a.PorcentajeExperiencia = viewModelEvaluarCandidato.PorExperiencia;
                a.Preseleccionado       = viewModelEvaluarCandidato.Elegido;
                a.Observacion           = viewModelEvaluarCandidato.Descripcion;
                a.Estado = 1;

                db.CandidatoConcurso.Update(a);
                await db.SaveChangesAsync();

                return(new Response {
                    IsSuccess = true
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <ViewModelEvaluarCandidato> CandidatoEvaluar([FromBody] ViewModelEvaluarCandidato viewModelEvaluarCandidato)
        {
            try
            {
                var DatosBasicos              = new ViewModelEvaluarCandidato();
                var ListaEstudioCandidato     = new List <ViewModelEstudioCandidato>();
                var ListaExperienciaCandidato = new List <ViewModelCandidatoTrayectoriaLaboral>();
                var candidatoConcurso         = await db.Candidato.Where(x => x.IdCandidato == viewModelEvaluarCandidato.IdCandidato)
                                                .Select(x => new ViewModelEvaluarCandidato
                {
                    IdPartidaFase  = viewModelEvaluarCandidato.IdPartidaFase,
                    IdCandidato    = x.IdCandidato,
                    Nombres        = x.Nombre + " " + x.Apellido,
                    Identificacion = x.Identificacion
                }).FirstOrDefaultAsync();

                if (candidatoConcurso != null)
                {
                    ListaEstudioCandidato = await db.CandidatoEstudio.Where(x => x.IdCandidato == candidatoConcurso.IdCandidato)
                                            .Select(x => new ViewModelEstudioCandidato
                    {
                        IdCandidato = x.IdCandidato,
                        Titulo      = x.Titulo.Nombre,
                        NoSenecity  = x.NoSenescyt
                    }).ToListAsync();

                    ListaExperienciaCandidato = await db.CandidatoTrayectoriaLaboral.Where(x => x.IdCandidato == candidatoConcurso.IdCandidato)
                                                .Select(x => new ViewModelCandidatoTrayectoriaLaboral
                    {
                        IdCandidato = x.IdCandidato,
                        Institucion = x.Institucion,
                        FechaInicio = x.FechaInicio,
                        FechaFin    = x.FechaFin
                    }).ToListAsync();

                    foreach (var item in ListaExperienciaCandidato)
                    {
                        var dia = await aExperiencia(candidatoConcurso.IdCandidato);

                        item.ExperienciaDias   = Convert.ToString(dia.dia);
                        item.ExperienciaMesAno = dia.Experiencia;
                    }
                    DatosBasicos.IdCandidato                = candidatoConcurso.IdCandidato;
                    DatosBasicos.Identificacion             = candidatoConcurso.Identificacion;
                    DatosBasicos.Nombres                    = candidatoConcurso.Nombres;
                    DatosBasicos.IdPartidaFase              = candidatoConcurso.IdPartidaFase;
                    DatosBasicos.ListasPersonaEstudio       = ListaEstudioCandidato;
                    DatosBasicos.ListasCanditadoExperiencia = ListaExperienciaCandidato;
                }
                return(DatosBasicos);
            }
            catch (Exception ex)
            {
                ex.ToString();
                return(new ViewModelEvaluarCandidato());
            }
        }
        public async Task <IActionResult> DetalleEvaluar(int id)
        {
            try
            {
                InicializarMensaje(null);

                var usuario = new ViewModelEvaluarCandidato
                {
                    IdCandidato = id
                };
                var response = await apiServicio.ObtenerElementoAsync1 <ViewModelEvaluarCandidato>(usuario, new Uri(WebApp.BaseAddress)
                                                                                                   , "api/SeleccionPersonalTalentoHumano/DetalleCandidatoEvaluar");

                return(View(response));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Evaluar(ViewModelEvaluarCandidato viewModelEvaluarCandidato)
        {
            try
            {
                InicializarMensaje(null);


                var response = await apiServicio.InsertarAsync <ViewModelEvaluarCandidato>(viewModelEvaluarCandidato, new Uri(WebApp.BaseAddress)
                                                                                           , "api/SeleccionPersonalTalentoHumano/InsertarEvaluacion");

                if (response.IsSuccess)
                {
                    return(RedirectToAction("Index"));
                }
                return(View(viewModelEvaluarCandidato));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <ViewModelEvaluarCandidato> DetalleCandidatoEvaluar([FromBody] ViewModelEvaluarCandidato viewModelEvaluarCandidato)
        {
            try
            {
                var DatosBasicos              = new ViewModelEvaluarCandidato();
                var ListaEstudioCandidato     = new List <ViewModelEstudioCandidato>();
                var ListaExperienciaCandidato = new List <ViewModelCandidatoTrayectoriaLaboral>();
                var candidatoConcurso         = await db.Candidato.Where(x => x.IdCandidato == viewModelEvaluarCandidato.IdCandidato)
                                                .Select(x => new ViewModelEvaluarCandidato
                {
                    IdCandidato     = x.IdCandidato,
                    Nombres         = x.Nombre + " " + x.Apellido,
                    Identificacion  = x.Identificacion,
                    Elegido         = x.CandidatoConcurso.FirstOrDefault().Preseleccionado,
                    ApliInstruccion = x.CandidatoConcurso.FirstOrDefault().CumpleInstruccion,
                    ApliExperiencia = x.CandidatoConcurso.FirstOrDefault().CumpleExperiencia,
                    PorInstruccion  = x.CandidatoConcurso.FirstOrDefault().PorcentajeInstruccion,
                    PorExperiencia  = x.CandidatoConcurso.FirstOrDefault().PorcentajeExperiencia,
                    Descripcion     = x.CandidatoConcurso.FirstOrDefault().Observacion,
                }).FirstOrDefaultAsync();

                if (candidatoConcurso != null)
                {
                    ListaEstudioCandidato = await db.CandidatoEstudio.Where(x => x.IdCandidato == candidatoConcurso.IdCandidato)
                                            .Select(x => new ViewModelEstudioCandidato
                    {
                        IdCandidato = x.IdCandidato,
                        Titulo      = x.Titulo.Nombre,
                        NoSenecity  = x.NoSenescyt
                    }).ToListAsync();

                    ListaExperienciaCandidato = await db.CandidatoTrayectoriaLaboral.Where(x => x.IdCandidato == candidatoConcurso.IdCandidato)
                                                .Select(x => new ViewModelCandidatoTrayectoriaLaboral
                    {
                        IdCandidato = x.IdCandidato,
                        Institucion = x.Institucion,
                        FechaInicio = x.FechaInicio,
                        FechaFin    = x.FechaFin
                    }).ToListAsync();

                    foreach (var item in ListaExperienciaCandidato)
                    {
                        var dia = await aExperiencia(candidatoConcurso.IdCandidato);

                        item.ExperienciaDias   = Convert.ToString(dia.dia);
                        item.ExperienciaMesAno = dia.Experiencia;
                    }
                    DatosBasicos.IdCandidato                = candidatoConcurso.IdCandidato;
                    DatosBasicos.Identificacion             = candidatoConcurso.Identificacion;
                    DatosBasicos.Nombres                    = candidatoConcurso.Nombres;
                    DatosBasicos.ListasPersonaEstudio       = ListaEstudioCandidato;
                    DatosBasicos.ListasCanditadoExperiencia = ListaExperienciaCandidato;
                    DatosBasicos.ApliInstruccion            = candidatoConcurso.ApliInstruccion;
                    DatosBasicos.ApliExperiencia            = candidatoConcurso.ApliExperiencia;
                    DatosBasicos.PorInstruccion             = candidatoConcurso.PorInstruccion;
                    DatosBasicos.PorExperiencia             = candidatoConcurso.PorExperiencia;
                    DatosBasicos.Elegido                    = candidatoConcurso.Elegido;
                    DatosBasicos.Descripcion                = candidatoConcurso.Descripcion;
                    DatosBasicos.Total = Convert.ToInt32(candidatoConcurso.PorExperiencia + candidatoConcurso.PorInstruccion);
                }
                return(DatosBasicos);
            }
            catch (Exception ex)
            {
                ex.ToString();
                return(new ViewModelEvaluarCandidato());
            }
        }