public async Task<ActionResult> EditarTipoEvaluacionMedica(TIPOEVALUACIONMEDICAMODEL _model)
        {
            try { 

                if(ModelState.IsValid)
                {
                    //si el nombre ya existe
                    if (_context.TIPOEVALUACIONMEDICA.SingleOrDefault(t => t.CATEGORIA == _model.CATEGORIA && t.ID != _model.ID) != null)
                    {
                        ModelState.AddModelError(string.Empty, "Este nombre de categoría ya está asignado, por favor elija otro!");
                        return View(_model);
                    }
                    else
                    {
                        // trasladomos el modelo a entity
                        var _tipoem = new TIPOEVALUACIONMEDICA();
                        _tipoem = await _context.TIPOEVALUACIONMEDICA.FindAsync(_model.ID);
                            
                            _tipoem.CATEGORIA = _model.CATEGORIA;
                            _tipoem.DESCRIPCION = _model.DESCRIPCION;
                        

                        // se actualiza el registro de forma asíncrona
                        _context.Entry(_tipoem).State = EntityState.Modified;
                        await _context.SaveChangesAsync();

                        return RedirectToAction("TiposEvaluacionesMedicas", "Configuraciones");
                    }
                }
            }catch(DbUpdateConcurrencyException ex)
            {
                Console.WriteLine(ex.StackTrace);
            }catch(RetryLimitExceededException /*dex*/)
            {

            }

            return View();
        }
        public async Task<ActionResult> NuevoTipoEvaluacionMedica(TIPOEVALUACIONMEDICAMODEL _model)
        {
            // el modelo está validado
            if(ModelState.IsValid)
            {
                //si el nombre ya existe
                if (_context.TIPOEVALUACIONMEDICA.Where(t => t.CATEGORIA == _model.CATEGORIA).Count() >= 1)
                {
                    ModelState.AddModelError(string.Empty, "Este nombre de categoría ya está asignado, por favor elija otro!");
                    return View(_model);
                }
                else
                { 
                    // trasladomos el modelo a entity
                    var _tipoem = new TIPOEVALUACIONMEDICA { 
                    CATEGORIA = _model.CATEGORIA,
                    DESCRIPCION = _model.DESCRIPCION
                    };
                    
                    // se guarda el registro de forma asíncrona
                    _context.TIPOEVALUACIONMEDICA.Add(_tipoem);
                    await _context.SaveChangesAsync();

                    return RedirectToAction("TiposEvaluacionesMedicas", "Configuraciones");
                }
            }
            return View(_model);
        }
        public async Task<ActionResult> EditarTipoEvaluacionMedica(int? ID)
        {
            // si el ID es nulo o 0
            if (ID == 0)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            //buscamos el ID
            var _tipoem = await _context.TIPOEVALUACIONMEDICA.FindAsync(ID);

            if (_tipoem == null)
            {
                return HttpNotFound();
            }


            // seteamos el  modelo

           var _model = new TIPOEVALUACIONMEDICAMODEL
            {
                ID = _tipoem.ID,
                CATEGORIA = _tipoem.CATEGORIA,
                DESCRIPCION = _tipoem.DESCRIPCION,
                EVALUACIONMEDICADETALLE = _tipoem.EVALUACIONMEDICADETALLE
            };

            // model to View

            return View(_model);
        }
        // Action metodo para crrear un nuevo tipo evaluaci+on médica

        public ActionResult NuevoTipoEvaluacionMedica()
        {
            var _model = new TIPOEVALUACIONMEDICAMODEL();
            return View(_model);
        }