public async Task<ActionResult> EditarCabania(PRO_CABANIAMODEL _model)
        {
            if (ModelState.IsValid)
            {

                try
                {
                    // comprobar la existencia del nombre
                    var _test = await _context.PRO_CABANIA.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.IDCENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCENTROTERAPEUTICO);
                            ViewBag.IDNIVEL = new SelectList(_context.PRO_NIVEL, "ID", "NOMBRE", _model.IDNIVEL);
                            return View(_model);
                        }
                        else
                        {
                            // get entity
                            var _entity = new PRO_CABANIA();
                            _entity = await _context.PRO_CABANIA.FindAsync(_model.ID);

                            
                            
                            _entity.NOMBRE = _model.NOMBRE;
                            _entity.DESCRIPCION = _model.DESCRIPCION;
                            _entity.CAPACIDAD = _model.CAPACIDAD;
                            _entity.GEOLAT = _model.GEOLAT;
                            _entity.GEOLONG = _model.GEOLONG;
                            _entity.ACTIVO = _model.ACTIVO;
                            _entity.IDCENTROTERAPEUTICO = _model.IDCENTROTERAPEUTICO;
                            _entity.IDNIVEL = _model.IDNIVEL;
                            _entity.USUARIO = User.Identity.Name;
                            

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

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


                        _entity.NOMBRE = _model.NOMBRE;
                        _entity.DESCRIPCION = _model.DESCRIPCION;
                        _entity.CAPACIDAD = _model.CAPACIDAD;
                        _entity.GEOLAT = _model.GEOLAT;
                        _entity.GEOLONG = _model.GEOLONG;
                        _entity.ACTIVO = _model.ACTIVO;
                        _entity.IDCENTROTERAPEUTICO = _model.IDCENTROTERAPEUTICO;
                        _entity.IDNIVEL = _model.IDNIVEL;
                        _entity.USUARIO = User.Identity.Name;


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

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


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

            ViewBag.IDCENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE", _model.IDCENTROTERAPEUTICO);
            ViewBag.IDNIVEL = new SelectList(_context.PRO_NIVEL, "ID", "NOMBRE", _model.IDNIVEL);
            return View(_model);
        } 
        public async Task<ActionResult> NuevaCabania(PRO_CABANIAMODEL _model)
        {
            if (ModelState.IsValid)
            {

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

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

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


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

            ViewBag.IDCENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE",_model.IDCENTROTERAPEUTICO);
            ViewBag.IDNIVEL = new SelectList(_context.PRO_NIVEL, "ID", "NOMBRE", _model.IDNIVEL);
            return View(_model);
        }
        //editar cabaña
        // get
        public async Task<ActionResult> EditarCabania(int? ID)
        {
            // comprobar la nulidad de ID
            if (ID == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }


            //get entity
            var _entity = await _context.PRO_CABANIA.FindAsync(ID);

            // comprobar si existe un registro con es id
            if (_entity == null)
            {
                return HttpNotFound();
            }

            // set model
            var _model = new PRO_CABANIAMODEL
            {
                ID = _entity.ID,
                NOMBRE = _entity.NOMBRE,
                DESCRIPCION = _entity.DESCRIPCION,
                CAPACIDAD = _entity.CAPACIDAD,
                GEOLAT = _entity.GEOLAT,
                GEOLONG = _entity.GEOLONG,
                ACTIVO = _entity.ACTIVO,
                IDCENTROTERAPEUTICO = _entity.IDCENTROTERAPEUTICO,
                IDNIVEL = _entity.IDNIVEL,
                USUARIO = _entity.USUARIO
            };

            //elementos dinámicos
            ViewBag.IDCENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE");
            ViewBag.IDNIVEL = new SelectList(_context.PRO_NIVEL, "ID", "NOMBRE");

            // to view
            return View(_model);
        }
        // crear fase

        //get 
        public ActionResult NuevaCabania()
        {
            // get model 
            var _model = new PRO_CABANIAMODEL();

            //elementos dinámicos
            ViewBag.IDCENTROTERAPEUTICO = new SelectList(_context.CENTROTERAPEUTICOes, "ID", "NOMBRE");
            ViewBag.IDNIVEL = new SelectList(_context.PRO_NIVEL, "ID", "NOMBRE");
            return View(_model);
        }