public async Task<ActionResult> EditarNivel(PRO_NIVELMODEL _model)
        {
            if (ModelState.IsValid)
            {

                try
                {
                    // comprobar la existencia del nombre
                    var _test = await _context.PRO_NIVEL.FirstOrDefaultAsync(i => i.NOMBRE == _model.NOMBRE);
                    //bool _nombreRepetido = false;
                    //_nombreRepetido = (_test.ID != _model.ID && _test.NOMBRE == _model.NOMBRE) ? true : false;

                    if (_test != null)
                    {
                        if (_test.ID != _model.ID)
                        {
                            ModelState.AddModelError("", "Ya existe un registro con este nombre, por favor elija otro!");
                            ViewBag.IDFASE = new SelectList(_context.PRO_FASE, "ID", "NOMBRE", _model.IDFASE);
                            return View(_model);
                        }
                        else
                        {
                            // get entity
                            var _entity = new PRO_NIVEL();
                            _entity = await _context.PRO_NIVEL.FindAsync(_model.ID);

                            _entity.NOMBRE = _model.NOMBRE;
                            _entity.DESCRIPCION = _model.DESCRIPCION;
                            _entity.DIASESTIMADOS = _model.DIASESTIMADOS;
                            _entity.IDFASE = _model.IDFASE;


                            // guardar en el context
                            _context.Entry(_entity).State = EntityState.Modified;
                            await _context.SaveChangesAsync();

                            // to lista de Fases
                            return RedirectToAction("Niveles", "Configuraciones");
                        }
                    }
                    else
                    {
                        // get entity
                        var _entity = new PRO_NIVEL();
                        _entity = await _context.PRO_NIVEL.FindAsync(_model.ID);

                        _entity.NOMBRE = _model.NOMBRE;
                        _entity.DESCRIPCION = _model.DESCRIPCION;
                        _entity.DIASESTIMADOS = _model.DIASESTIMADOS;
                        _entity.IDFASE = _model.IDFASE;

                        // guardar en el context
                        _context.Entry(_entity).State = EntityState.Modified;
                        await _context.SaveChangesAsync();

                        // to lista de Fases
                        return RedirectToAction("Niveles", "Configuraciones");
                    }



                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return View(_model);
                }
            }
            ViewBag.IDFASE = new SelectList(_context.PRO_FASE, "ID", "NOMBRE", _model.IDFASE);
            return View(_model);
        }
        public async Task<ActionResult> NuevoNivel(PRO_NIVELMODEL _model)
        {
            if (ModelState.IsValid)
            {

                try
                {
                    // coprobar la existencia del nombre
                    if (_context.PRO_NIVEL.FirstOrDefault(i => i.NOMBRE == _model.NOMBRE) != null)
                    {
                        ModelState.AddModelError("", "Ya existe un registro con este nombre, por favor elija otro!");
                        ViewBag.IDFASE = new SelectList(_context.PRO_FASE, "ID", "NOMBRE", _model.IDFASE);
                        return View(_model);
                    }
                    else
                    {
                        // get entity
                        var _entity = new PRO_NIVEL
                        {
                            NOMBRE = _model.NOMBRE,
                            DESCRIPCION = _model.DESCRIPCION,
                            DIASESTIMADOS = _model.DIASESTIMADOS,
                            IDFASE = _model.IDFASE
                        };

                        // guardar en el context
                        _context.PRO_NIVEL.Add(_entity);
                        await _context.SaveChangesAsync();

                        // to lista de Fases
                        return RedirectToAction("Niveles", "Configuraciones");
                    }


                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    ViewBag.IDFASE = new SelectList(_context.PRO_FASE, "ID", "NOMBRE", _model.IDFASE);
                    return View(_model);
                }
            }
            ViewBag.IDFASE = new SelectList(_context.PRO_FASE, "ID", "NOMBRE", _model.IDFASE);
            return View(_model);
        }