//este metodo sirve para agregar o editar un registro de el contexto seleccionado
        public string AddUpdateEstadoSalud(EstadoSaludDomainModel estadoSaludDM)
        {
            string resultado = string.Empty;

            if (estadoSaludDM.idEnfermedadPersonal > 0)
            {
                //buscamos por id y lo almacenamos en nuestra entidad de entityframework
                tblEnfermedadPersonal enfermedadPersonal = estadoSaludRepository.SingleOrDefault(p => p.idPersonal == estadoSaludDM.idPersonal);
                if (enfermedadPersonal != null)
                {
                    enfermedadPersonal.idPersonal       = estadoSaludDM.idPersonal;
                    enfermedadPersonal.idEnfermedad     = estadoSaludDM.idEnfermedad;
                    enfermedadPersonal.dteFechaRegistro = DateTime.Now;
                    estadoSaludRepository.Update(enfermedadPersonal);
                    //actualizamos los datos en la base de datos.
                    resultado = "Se Actualizo correctamente";
                }
            }
            else
            {
                tblEnfermedadPersonal enfermedadPersonal = new tblEnfermedadPersonal();
                enfermedadPersonal.idPersonal       = estadoSaludDM.idPersonal;
                enfermedadPersonal.idEnfermedad     = estadoSaludDM.idEnfermedad;
                enfermedadPersonal.dteFechaRegistro = DateTime.Now;
                var record = estadoSaludRepository.Insert(enfermedadPersonal);
                resultado = "Se insertaron correctamente los valores";
            }
            return(resultado);
        }
        public string AddEditEstadoSalud(EstadoSaludVM estadoSaludVM)
        {
            string resultado = string.Empty;

            EstadoSaludDomainModel estadoSaludDM = new EstadoSaludDomainModel();

            AutoMapper.Mapper.Map(estadoSaludVM, estadoSaludDM);///hacemos el mapeado de la entidad
            resultado = IestadoSaludBusiness.AddUpdateEstadoSalud(estadoSaludDM);
            return(resultado);
        }
        /// <summary>
        /// Este metodo se encarga de presentar los datos a la vista que se van a eliminar
        /// </summary>
        /// <param name="idEnfermedad">recibe un identificador del estado de salud</param>
        /// <returns>regresa un estado de salud en una vista</returns>
        public ActionResult GetEstadoSalud(int IdEnfermedad)
        {
            EstadoSaludDomainModel estadoSaludDomainModel = IestadoSaludBusiness.GetEnfermedadesByIdEnfermedad(IdEnfermedad);

            if (estadoSaludDomainModel != null)
            {
                EstadoSaludVM estadoSaludVM = new EstadoSaludVM();
                AutoMapper.Mapper.Map(estadoSaludDomainModel, estadoSaludVM);
                return(PartialView("_Eliminar", estadoSaludVM));
            }
            return(View());
        }
        /// <summary>
        /// Este metodo se encarga de consultar un estado de salud por el identificador de la enfermedad
        /// </summary>
        /// <param name="IdEnfermedad">identificador de la enfermedad</param>
        /// <returns>estado de salud domain model de la consulta</returns>
        public EstadoSaludDomainModel GetEnfermedadesByIdEnfermedad(int IdEnfermedad)
        {
            EstadoSaludDomainModel estadoSaludDomainModel = new EstadoSaludDomainModel();
            Expression <Func <tblEnfermedadPersonal, bool> > predicado = p => p.idEnfermedad.Equals(IdEnfermedad);
            tblEnfermedadPersonal tblEnfermedadPersonal = estadoSaludRepository.SingleOrDefault(predicado);

            if (tblEnfermedadPersonal != null)
            {
                estadoSaludDomainModel.idEnfermedad         = tblEnfermedadPersonal.idEnfermedad;
                estadoSaludDomainModel.idEnfermedadPersonal = tblEnfermedadPersonal.idEnfermedadPersonal;
                estadoSaludDomainModel.idPersonal           = tblEnfermedadPersonal.idPersonal;

                estadoSaludDomainModel.NombreEnfermedad = tblEnfermedadPersonal.catEnfermedad.strDescripcion;
            }
            return(estadoSaludDomainModel);
        }
        /// <summary>
        /// Este metodo se encarga de consultar todas las enfermedades de una persona
        /// </summary>
        /// <returns>regresa una lista de enfermedades del personal</returns>
        public List <EstadoSaludDomainModel> GetEnfermedadesPersonalById(int idPersonal)
        {
            List <EstadoSaludDomainModel> estadosSalud = new List <EstadoSaludDomainModel>();
            Expression <Func <tblEnfermedadPersonal, bool> > predicado = p => p.idPersonal.Equals(idPersonal);

            var lista = estadoSaludRepository.GetAll(predicado);

            foreach (var c in lista)
            {
                Expression <Func <catEnfermedad, bool> > predicadoS = p => p.idEnfermedad.Equals(c.idEnfermedad);
                catEnfermedad          catEnfermedad = enfermedadesRepository.SingleOrDefault(predicadoS);
                EstadoSaludDomainModel estadoSalud   = new EstadoSaludDomainModel();
                estadoSalud.idEnfermedad         = c.idEnfermedad;
                estadoSalud.idEnfermedadPersonal = c.idEnfermedadPersonal;
                estadoSalud.idPersonal           = c.idPersonal;
                estadoSalud.dteFechaRegistro     = c.dteFechaRegistro.Value.ToLongDateString();
                estadoSalud.NombreEnfermedad     = catEnfermedad.strDescripcion;
                estadosSalud.Add(estadoSalud);
            }
            return(estadosSalud);
        }