public ActionResult ShowUnidad(int IdPais, Guid IdContrato, Guid IdUnidad)
        {
            if (User == null || User.GetType().ToString() == "System.Security.Principal.GenericPrincipal")
                return RedirectToAction("Index", "Home");

            ViewBag.Title = Resources.ContratoUnidadResource.EditPageTitle;
            ViewBag.PageHeader = Resources.ContratoUnidadResource.EditHeaderPage;

            UnidadViewModel Model = new UnidadViewModel();

            using (SeguricelEntities db = new SeguricelEntities())
            {
                Contrato_Unidad Unidad = (from d in db.Contrato_Unidad
                                          where d.IdContrato == IdContrato && d.IdUnidad == IdUnidad
                                          select d).FirstOrDefault();

                if (Unidad != null)
                {
                    string strUnidadMaestra = string.Empty;

                    Contrato_Unidad unidadMaestra = (db.Contrato_Unidad.Where(x => x.IdContrato == Unidad.IdContrato && x.IdUnidad == Unidad.IdUnidadMaestra).FirstOrDefault());
                    if (unidadMaestra != null)
                        strUnidadMaestra = unidadMaestra.Nombre;

                    Model = new UnidadViewModel
                    {
                        AceptaInvitados = Unidad.AceptaInvitados,
                        AceptaSecundarios = Unidad.AceptaSecundarios,
                        Activa = Unidad.Activa,
                        CodigoAutorizacion = Unidad.CodigoAutorizacionAcceso,
                        CodigoIdentificacionVigilancia = Unidad.CodigoIdentificacionVigilancia,
                        IdContrato = Unidad.IdContrato,
                        IdPais = IdPais,
                        IdUnidad = Unidad.IdUnidad,
                        IdUnidadMaestra = Unidad.IdUnidadMaestra,
                        JuntaCondominio = Unidad.JuntaCondominio,
                        Nombre = Unidad.Nombre,
                        Piso = Unidad.Piso,
                        Seguridad = Unidad.Seguridad,
                        Torre = Unidad.Torre,
                        UnidadMaestra = strUnidadMaestra,
                        Vacaciones = Unidad.ModoVacaciones
                    };
                }
            }
            Model.UnidadesContrato = ClasesVarias.getUnidadesMaestrasContrato(IdContrato, Model.IdUnidad);

            return View(Model);
        }
        public ActionResult CreateUnidad(UnidadViewModel model)
        {
            ViewBag.Title = Resources.ContratosResource.CreatePageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.CreateHeaderPage;

            if (ModelState.IsValid)
            {
                using (SeguricelEntities db = new SeguricelEntities())
                {
                    Contrato_Unidad dataUnidad = new Contrato_Unidad
                    {
                        AceptaInvitados = model.AceptaInvitados,
                        AceptaSecundarios = model.AceptaSecundarios,
                        Activa = model.Activa,
                        CodigoAutorizacionAcceso = model.CodigoAutorizacion,
                        CodigoIdentificacionVigilancia = model.CodigoIdentificacionVigilancia,
                        IdContrato = model.IdContrato,
                        IdUnidad = Guid.NewGuid(),
                        IdUnidadMaestra = model.IdUnidadMaestra,
                        Image = model.Imagen,
                        JuntaCondominio = model.JuntaCondominio,
                        Nombre = model.Nombre,
                        ModoVacaciones = model.Vacaciones,
                        Piso = model.Piso,
                        Seguridad = model.Seguridad,
                        Torre = model.Torre
                    };

                    db.Contrato_Unidad.Add(dataUnidad);
                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                return RedirectToAction("Index", "Unidad", new { IdPais = model.IdPais, IdContrato = model.IdContrato });
            }

            model.UnidadesContrato = ClasesVarias.getUnidadesMaestrasContrato(model.IdContrato, model.IdUnidad);
            return View(model);
        }
        public ActionResult EditUnidad(UnidadViewModel model)
        {
            ViewBag.Title = Resources.ContratosResource.EditPageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.EditHeaderPage;

            if (ModelState.IsValid)
            {
                using (SeguricelEntities db = new SeguricelEntities())
                {

                    Contrato_Unidad Unidad = (from d in db.Contrato_Unidad
                                              where d.IdContrato == model.IdContrato && d.IdUnidad == model.IdUnidad
                                              select d).FirstOrDefault();

                    string strUnidadMaestra = string.Empty;

                    Contrato_Unidad unidadMaestra = (db.Contrato_Unidad.Where(x => x.IdContrato == model.IdContrato && x.IdUnidad == model.IdUnidadMaestra).FirstOrDefault());
                    if (unidadMaestra != null)
                        strUnidadMaestra = unidadMaestra.Nombre;

                    Unidad.AceptaInvitados = model.AceptaInvitados;
                    Unidad.AceptaSecundarios = model.AceptaSecundarios;
                    Unidad.Activa = model.Activa;
                    Unidad.CodigoAutorizacionAcceso = model.CodigoAutorizacion;
                    Unidad.CodigoIdentificacionVigilancia = model.CodigoIdentificacionVigilancia;
                    Unidad.IdUnidadMaestra = model.IdUnidadMaestra;
                    Unidad.Image = model.Imagen;
                    Unidad.JuntaCondominio = model.JuntaCondominio;
                    Unidad.Nombre = model.Nombre;
                    Unidad.Piso = model.Piso;
                    Unidad.Seguridad = model.Seguridad;
                    Unidad.Torre = model.Torre;
                    Unidad.ModoVacaciones = model.Vacaciones;

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                return RedirectToAction("Index", "Unidad", new { IdPais = model.IdPais, IdContrato = model.IdContrato });
            }

            return View(model);
        }
        public ActionResult CreateUnidad(int IdPais, Guid IdContrato)
        {
            if (User == null || User.GetType().ToString() == "System.Security.Principal.GenericPrincipal")
                return RedirectToAction("Index", "Home");

            ViewBag.Title = Resources.ContratoUnidadResource.CreatePageTitle;
            ViewBag.PageHeader = Resources.ContratoUnidadResource.CreateHeaderPage;

            UnidadViewModel Model = new UnidadViewModel();

            Model.AceptaInvitados = true;
            Model.AceptaSecundarios = true;
            Model.Activa = false;
            Model.CodigoAutorizacion = 0;
            Model.CodigoIdentificacionVigilancia = 0;
            Model.IdContrato = IdContrato;
            Model.JuntaCondominio = false;
            Model.IdPais = IdPais;
            Model.Nombre = string.Empty;
            Model.IdUnidad = new Guid();
            Model.UnidadesContrato = ClasesVarias.getUnidadesMaestrasContrato(IdContrato, null);
            Model.Imagen = new byte[] { };
            Model.Nombre = string.Empty;
            Model.Piso = string.Empty;
            Model.Seguridad = true;
            Model.Torre = string.Empty;
            Model.UnidadMaestra = string.Empty;
            Model.Vacaciones = false;

            return View(Model);
        }