public CrearEvaluacionViewModel(CrearEvaluacionFormModel F) : this()
 {
     Form         = F;
     evaluacion   = db.Evaluacions.Single(x => x.IdEvaluacion == Form.IdEvaluacion);
     evaluado     = evaluacion.Evaluado;
     Competencias = evaluacion.Cargo.Competencias.OrderBy(x => x.IdCompetencia);
 }
        public CrearEvaluacionViewModel(int idEvaluacion) : this()
        {
            Form.IdEvaluacion = idEvaluacion;
            evaluacion        = db.Evaluacions.Single(x => x.IdEvaluacion == idEvaluacion);
            evaluado          = evaluacion.Evaluado;
            Competencias      = evaluacion.Cargo.Competencias.OrderBy(x => x.IdCompetencia);

            EvaluacionAbierta hola = evaluacion.EvaluacionAbiertas.SingleOrDefault(x => x.IdTipoEvaluacionAbierta == TipoEvaluacionAbierta.ResumenEstudiosTrayectoriaLaboral);

            if (hola != null)
            {
                Form.TrayectoriaLaboral = hola.EvaluacionAbierta1;
            }

            EvaluacionAbierta hola2 = evaluacion.EvaluacionAbiertas.SingleOrDefault(x => x.IdTipoEvaluacionAbierta == TipoEvaluacionAbierta.MotivacionCargo);

            if (hola2 != null)
            {
                Form.MotivacionPorCargo = hola2.EvaluacionAbierta1;
            }


            EvaluacionAbierta hola3 = evaluacion.EvaluacionAbiertas.SingleOrDefault(x => x.IdTipoEvaluacionAbierta == TipoEvaluacionAbierta.ConclusionSugerencias);

            if (hola3 != null)
            {
                Form.ConclusionSugerencia = hola3.EvaluacionAbierta1;
            }

            int i = 0;

            foreach (var comp in evaluacion.Cargo.Competencias.OrderBy(x => x.IdCompetencia))
            {
                EvaluacionCompetencia evalcomp = evaluacion.EvaluacionCompetencias.SingleOrDefault(x => x.IdCompetencia == comp.IdCompetencia);
                if (evalcomp != null)
                {
                    Form.ValorObtenidoCompetencia.Add(evalcomp.ValorObtenido);
                    Form.Observacion.Add(evalcomp.Observacion);
                }
                else
                {
                    Form.ValorObtenidoCompetencia.Add(0);
                    Form.Observacion.Add("");
                }
                i++;
            }

            if (evaluacion.IdTipoEstadoEvaluacion == TipoEstadoEvaluacion.Finalizada)
            {
                Form.Finalizada = true;
            }
        }
        public ActionResult CrearEvaluado(Rut filtro)
        {
            CrearEvaluadoViewModel model = new CrearEvaluadoViewModel();

            if (ModelState.IsValid && filtro != null && db.Evaluados.Any(x => x.Rut == filtro.Numero))
            {
                Evaluado eval = db.Evaluados.Single(x => x.Rut == filtro.Numero);
                Mapper.Map <Evaluado, CrearEvaluadoFormModel>(eval, model.Form);
                model.Form.IdEvaluado = eval.IdEvaluado;
                Mensaje = "Se encontraron los datos del postulante.";
            }
            else if (filtro != null)
            {
                Mensaje = "No se encontró el postulante con el Rut especificado.";
            }
            model.filtro = filtro;
            return(View(model));
        }
        public ActionResult CrearEvaluado(CrearEvaluadoFormModel Form)
        {
            Evaluado evaluado = new Evaluado();

            if (Form.IdEvaluado.HasValue)
            {
                if (!Form.IdEmpresa.HasValue || !Form.IdCargo.HasValue)
                {
                    Mensaje = "Debe Seleccionar Empre y Cargo para continuar con la evaluación.";
                    return(RedirectToAction("CrearEvaluado"));
                }
                else
                {
                    evaluado = db.Evaluados.Single(x => x.IdEvaluado == Form.IdEvaluado.Value);
                    string  Nombreusuario      = User.Identity.Name;
                    Usuario usuario            = db.Usuarios.SingleOrDefault(x => x.NombreUsuario == Nombreusuario);
                    int?    IdUsuarioEvaluador = null;
                    if (usuario != null)
                    {
                        IdUsuarioEvaluador = usuario.IdUsuario;
                    }
                    Evaluacion evaluacion = new Evaluacion()
                    {
                        IdTipoEvaluacion       = TipoEvaluacion.Evaluacion_Psicologica_CCU,
                        IdCargo                = Form.IdCargo.Value,
                        IdEvaluado             = evaluado.IdEvaluado,
                        IdUsuarioEvaluador     = IdUsuarioEvaluador,
                        FechaEvaluacion        = DateTime.Now,
                        IdTipoEstadoEvaluacion = TipoEstadoEvaluacion.Creada,
                    };

                    db.Evaluacions.InsertOnSubmit(evaluacion);
                    db.SubmitChanges();

                    return(RedirectToAction("CrearEvaluacion", "Evaluacion", new { IdEvaluacion = evaluacion.IdEvaluacion }));
                }
            }
            if (ModelState.IsValid)
            {
                if (Form.IdEvaluado.HasValue)
                {
                    evaluado = db.Evaluados.Single(x => x.Rut == Form.Rut.Numero);
                }
                else
                {
                    evaluado           = Mapper.Map <CrearEvaluadoFormModel, Evaluado>(Form);
                    evaluado.CreadoPor = User.Identity.Name;
                    db.Evaluados.InsertOnSubmit(evaluado);
                    db.SubmitChanges();
                    Mensaje = "El Postulante fue ingresado exitosamente.";
                }

                string  Nombreusuario      = User.Identity.Name;
                Usuario usuario            = db.Usuarios.SingleOrDefault(x => x.NombreUsuario == Nombreusuario);
                int?    IdUsuarioEvaluador = null;
                if (usuario != null)
                {
                    IdUsuarioEvaluador = usuario.IdUsuario;
                }
                Evaluacion evaluacion = new Evaluacion()
                {
                    IdTipoEvaluacion       = TipoEvaluacion.Evaluacion_Psicologica_CCU,
                    IdCargo                = Form.IdCargo.Value,
                    IdEvaluado             = evaluado.IdEvaluado,
                    IdUsuarioEvaluador     = IdUsuarioEvaluador,
                    FechaEvaluacion        = DateTime.Now,
                    IdTipoEstadoEvaluacion = TipoEstadoEvaluacion.Creada,
                };

                db.Evaluacions.InsertOnSubmit(evaluacion);
                db.SubmitChanges();

                return(RedirectToAction("CrearEvaluacion", "Evaluacion", new { IdEvaluacion = evaluacion.IdEvaluacion }));
            }
            CrearEvaluadoViewModel model = new CrearEvaluadoViewModel(Form);

            return(View(model));
        }