public ActionResult Create()
        {
            if (User == null || User.GetType().ToString() == "System.Security.Principal.GenericPrincipal")
                return RedirectToAction("Index", "Home");

            ViewBag.Title = Resources.ContratosResource.CreatePageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.CreateHeaderPage;
            ContratoViewModel Model = new ContratoViewModel();
            Model.PaisesDisponibles = ClasesVarias.GetPaises();
            Model.Estados = new SelectList(string.Empty, "Value", "Text");
            Model.Ciudades = new SelectList(string.Empty, "Value", "Text");
            Model.EstadosContrato = new SelectList(string.Empty, "Value", "Text");
            Model.Administradoras = new SelectList(string.Empty, "Value", "Text");
            Model.TiposContrato = new SelectList(string.Empty, "Value", "Text");
            Model.MaximoInvitados = 0;
            Model.MaximoSecundarios = 99;
            Model.MaximoPuestosFijos = 0;
            Model.MaximoPuestosVisitantes = 0;
            Model.FechaContrato = DateTime.UtcNow.AddHours(User.HoursTimeZone).AddMinutes(User.MinutesTimeZone);

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

            ViewBag.Title = Resources.ContratosResource.ShowPageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.ShowHeaderPage;
            ContratoViewModel Model = new ContratoViewModel();

            string Culture = Session["Culture"].ToString();

            using (SeguricelEntities db = new SeguricelEntities())
            {
                Model = (from d in db.Contrato
                         where d.IdContrato == IdContrato
                         select new ContratoViewModel
                         {
                             AccesoDactilar = d.AccesoDactilar,
                             AccesoTelefonico = d.AccesoTelefonico,
                             AlarmaSilente = d.AlarmaSilente,
                             AutoGestion = d.AutoGestion_Aptos,
                             CodigoPostal = d.CodigoPostal,
                             CondominioVirtual = d.CondominioVirtual,
                             ContraseñaCorreoComunidad = d.ContraseñaCorreoComunidad,
                             Contratante = d.Contratante,
                             ContraseñaCorreoJC = d.ContraseñaCorreoJC,
                             ControlAscensores = d.ControlAscensores,
                             ControlEstacionamiento = d.ControlEstacionamiento,
                             CorreoElectronicoComunida = d.CorreoElectronicoComunida,
                             CorreoElectronicoJunta = d.CorreoElectronicoJunta,
                             Direccion = d.Direccion,
                             EmergenciaVecinal = d.EmergenciaVecinal,
                             FechaContrato = d.FechaContrato,
                             IdAdministradora = d.IdAdministradora,
                             IdCiudad = d.IdCiudad,
                             IdContrato = d.IdContrato,
                             IdEstado = d.IdEstado,
                             IdEstadoContrato = d.IdEstadoContrato,
                             IdPais = d.IdPais,
                             IdRedMiwi = d.IdRedMiwi,
                             IdTipoContrato = d.IdTipoContrato,
                             ImagenEdificio = d.ImagenEdificio,
                             Latitud = d.UbicacionGeografica.Latitude.ToString(),
                             Longitud = d.UbicacionGeografica.Longitude.ToString(),
                             MaximoInvitados = d.MaximoInvitados,
                             MaximoPuestosFijos = d.MaximoPuestosFijos,
                             MaximoPuestosVisitantes = d.MaximoPuestosVisitantes,
                             MaximoSecundarios = d.MaximoSecundarios,
                             NombreCompleto = d.NombreCompleto,
                             NroContrato = d.NroContrato,
                             PuertoPOPGeneral = d.PuertoPOPGeneral,
                             PuertoPOPJC = d.PuertoPOPJC,
                             PuertoSMTPGeneral = d.PuertoSMTPGeneral,
                             PuertoSMTPJC = d.PuertoSMTPJC,
                             RegistroFiscal = d.RegistroFiscal,
                             ServidorPOPGeneral = d.ServidorPOPGeneral,
                             ServidorSMTPGeneral = d.ServidorSMTPGeneral,
                             ServidorPOPJC = d.ServidorPOPJC,
                             ServidorSMTPJC = d.ServidorSMTPJC,
                             UbicacionGeografica = d.UbicacionGeografica
                         }).FirstOrDefault();
            }
            Model.PaisesDisponibles = ClasesVarias.GetPaises();
            Model.Estados = ClasesVarias.GetEstados(Model.IdPais);
            Model.Ciudades = ClasesVarias.GetCiudades(Model.IdPais, Model.IdEstado);
            Model.EstadosContrato = ClasesVarias.GetEstadosContrato(Model.IdPais);
            Model.Administradoras = ClasesVarias.GetAdministradoras(Model.IdPais);
            Model.TiposContrato = ClasesVarias.GetTiposContrato(Culture);

            return View(Model);
        }
        public ActionResult Edit(ContratoViewModel model)
        {
            ViewBag.Title = Resources.ContratosResource.EditPageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.EditHeaderPage;

            if (ModelState.IsValid)
            {

                using (SeguricelEntities db = new SeguricelEntities())
                {
                    Contrato dataContrato = db.Contrato.Where(x => x.IdContrato == model.IdContrato).FirstOrDefault();
                    dataContrato.AccesoDactilar = model.AccesoDactilar;
                    dataContrato.AccesoTelefonico = model.AccesoTelefonico;
                    dataContrato.AlarmaSilente = model.AlarmaSilente;
                    dataContrato.AutoGestion_Aptos = model.AutoGestion;
                    dataContrato.CodigoPostal = model.CodigoPostal;
                    dataContrato.ContraseñaCorreoComunidad = string.Empty;
                    dataContrato.ContraseñaCorreoJC = string.Empty;
                    dataContrato.CorreoElectronicoComunida = string.Empty;
                    dataContrato.CorreoElectronicoJunta = string.Empty;
                    dataContrato.CondominioVirtual = model.CondominioVirtual;
                    dataContrato.Contratante = model.Contratante;
                    dataContrato.ControlAscensores = model.ControlAscensores;
                    dataContrato.ControlEstacionamiento = model.ControlEstacionamiento;
                    dataContrato.Direccion = model.Direccion;
                    dataContrato.EmergenciaVecinal = model.EmergenciaVecinal;
                    dataContrato.FechaContrato = model.FechaContrato;
                    dataContrato.IdAdministradora = model.IdAdministradora;
                    dataContrato.IdCiudad = model.IdCiudad;
                    dataContrato.IdEstado = model.IdEstado;
                    dataContrato.IdEstadoContrato = model.IdEstadoContrato;
                    dataContrato.IdPais = model.IdPais;
                    dataContrato.IdTipoContrato = model.IdTipoContrato;
                    dataContrato.ImagenEdificio = model.ImagenEdificio;
                    dataContrato.MaximoInvitados = model.MaximoInvitados;
                    dataContrato.MaximoPuestosFijos = model.MaximoPuestosFijos;
                    dataContrato.MaximoPuestosVisitantes = model.MaximoPuestosVisitantes;
                    dataContrato.MaximoSecundarios = model.MaximoSecundarios;
                    dataContrato.NombreCompleto = model.NombreCompleto;
                    dataContrato.NroContrato = model.NroContrato;
                    dataContrato.NroRedesInstalacion = 1;
                    dataContrato.RegistroFiscal = model.RegistroFiscal;
                    dataContrato.UbicacionGeografica = DbGeography.FromText(string.Format("POINT({0} {1})", model.Longitud, model.Latitud));
                    dataContrato.Vigicel = model.Vigicel;

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                return RedirectToAction("Index");
            }

            model.PaisesDisponibles = ClasesVarias.GetPaises();
            if (model.IdPais > 0)
            {
                string _Culture = ClasesVarias.GetPaisCulture(model.IdPais);
                model.Estados = ClasesVarias.GetEstados(model.IdPais);
                model.TiposContrato = ClasesVarias.GetTiposContrato(_Culture);
                model.Administradoras = ClasesVarias.GetAdministradoras(model.IdPais);
                model.EstadosContrato = ClasesVarias.GetEstadosContrato(model.IdPais);
            }
            else
            {
                model.Estados = new SelectList(string.Empty, "Value", "Text");
                model.TiposContrato = new SelectList(string.Empty, "Value", "Text");
                model.Administradoras = new SelectList(string.Empty, "Value", "Text");
                model.EstadosContrato = new SelectList(string.Empty, "Value", "Text");
            }

            if (model.IdEstado > 0)
                model.Ciudades = ClasesVarias.GetCiudades(model.IdPais, model.IdEstado);
            else
                model.Ciudades = new SelectList(string.Empty, "Value", "Text");

            return View(model);
        }
        public ActionResult Delete(Guid IdContrato)
        {

            ContratoViewModel Model = new ContratoViewModel();

            string Culture = Session["Culture"].ToString();

            using (SeguricelEntities db = new SeguricelEntities())
            {
                Contrato contrato = (from d in db.Contrato
                                     where d.IdContrato == IdContrato
                                     select d).FirstOrDefault();

                db.Contrato.Remove(contrato);
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
        public ActionResult Create(ContratoViewModel model)
        {
            ViewBag.Title = Resources.ContratosResource.CreatePageTitle;
            ViewBag.PageHeader = Resources.ContratosResource.CreateHeaderPage;

            if (ModelState.IsValid)
            {
                using (SeguricelEntities db = new SeguricelEntities())
                {
                    Contrato dataContrato = new Contrato
                    {
                        IdContrato = Guid.NewGuid(),
                        AccesoDactilar = model.AccesoDactilar,
                        AccesoTelefonico = model.AccesoTelefonico,
                        AlarmaSilente = model.AlarmaSilente,
                        AutoGestion_Aptos = model.AutoGestion,
                        CodigoPostal = model.CodigoPostal,
                        ContraseñaCorreoComunidad = string.Empty,
                        ContraseñaCorreoJC = string.Empty,
                        CorreoElectronicoComunida = string.Empty,
                        CorreoElectronicoJunta = string.Empty,
                        DiaCorte = 0,
                        CondominioVirtual = model.CondominioVirtual,
                        Contratante = model.Contratante,
                        ControlAscensores = model.ControlAscensores,
                        ControlEstacionamiento = model.ControlEstacionamiento,
                        Direccion = model.Direccion,
                        EmergenciaVecinal = model.EmergenciaVecinal,
                        FechaContrato = model.FechaContrato,
                        IdAdministradora = model.IdAdministradora,
                        IdCiudad = model.IdCiudad,
                        IdEstado = model.IdEstado,
                        IdEstadoContrato = model.IdEstadoContrato,
                        IdPais = model.IdPais,
                        IdRedMiwi = new byte[] { 0 },
                        IdTipoContrato = model.IdTipoContrato,
                        ImagenEdificio = model.ImagenEdificio,
                        MaximoInvitados = model.MaximoInvitados,
                        MaximoPuestosFijos = model.MaximoPuestosFijos,
                        MaximoPuestosVisitantes = model.MaximoPuestosVisitantes,
                        MaximoSecundarios = model.MaximoSecundarios,
                        NombreCompleto = model.NombreCompleto,
                        NroContrato = model.NroContrato,
                        NroRedesInstalacion = 1,
                        RegistroFiscal = model.RegistroFiscal,
                        UbicacionGeografica = DbGeography.FromText(string.Format("POINT({0} {1})", model.Longitud, model.Latitud)),
                        Vigicel = model.Vigicel
                    };

                    db.Contrato.Add(dataContrato);
                    try {
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
                return RedirectToAction("Index");
            }

            model.PaisesDisponibles = ClasesVarias.GetPaises();
            if (model.IdPais > 0)
            {
                string _Culture = ClasesVarias.GetPaisCulture(model.IdPais);
                model.Estados = ClasesVarias.GetEstados(model.IdPais);
                model.TiposContrato = ClasesVarias.GetTiposContrato(_Culture);
                model.Administradoras = ClasesVarias.GetAdministradoras(model.IdPais);
                model.EstadosContrato = ClasesVarias.GetEstadosContrato(model.IdPais);
            }
            else
            {
                model.Estados = new SelectList(string.Empty, "Value", "Text");
                model.TiposContrato = new SelectList(string.Empty, "Value", "Text");
                model.Administradoras = new SelectList(string.Empty, "Value", "Text");
                model.EstadosContrato = new SelectList(string.Empty, "Value", "Text");
            }

            if (model.IdEstado > 0)
                model.Ciudades = ClasesVarias.GetCiudades(model.IdPais, model.IdEstado);
            else
                model.Ciudades = new SelectList(string.Empty, "Value", "Text");

            return View(model);
        }