예제 #1
0
        public ActionResult ActualizarDatosCuenta(Usuario usuarioModif)
        {
            var integ = new IntegridadDatos();

            if ((String)Session["PerfilUsuario"] != null && integ.ValidarExistencia("SEG_Usuario") == 1)
            {
                try
                {
                    var ln   = new NegocioCuenta();
                    var aud  = new Auditoria();
                    var inte = new IntegridadDatos();
                    var priv = new Privacidad();

                    // Traduce páginas de CUENTA.
                    TraducirPagina((String)Session["IdiomaApp"]);

                    var usrAnterior = ln.InformacionCuenta(usuarioModif.Id.ToString());

                    if (usuarioModif.Direccion == null && usuarioModif.Telefono == null && usuarioModif.Localidad.Id == 0 && usuarioModif.Idioma.Id == 0)
                    {
                        return(RedirectToAction("Index"));
                    }

                    if (usuarioModif.Direccion == null)
                    {
                        usuarioModif.Direccion = usrAnterior.Direccion;
                    }


                    if (usuarioModif.Telefono == null)
                    {
                        usuarioModif.Telefono = usrAnterior.Telefono;
                    }


                    if (usuarioModif.Localidad.Id == 0)
                    {
                        usuarioModif.Localidad.Id = usrAnterior.Localidad.Id;
                    }

                    if (usuarioModif.Idioma.Id == 0)
                    {
                        usuarioModif.Idioma.Id = usrAnterior.Idioma.Id;
                    }

                    //Actualizo datos.
                    ln.ActualizarDatosCuenta(usuarioModif);

                    var usuarioActual = ln.BuscarUsuarioPorUsuario((String)Session["UsrLogin"]);

                    var usuarioActualDVH = inte.CalcularDVH(usuarioActual.Id.ToString() + priv.Cifrar(usuarioActual.RazonSocial) + priv.Cifrar(usuarioActual.Nombre) + priv.Cifrar(usuarioActual.Apellido) + priv.Cifrar(usuarioActual.Usr) + priv.Cifrar(usuarioActual.Psw) + priv.Cifrar(usuarioActual.CUIL) + usuarioActual.PerfilUsr.Id.ToString() + usuarioActual.Idioma.Id.ToString() + usuarioActual.Localidad.Id.ToString() + usuarioActual.FechaAlta.ToString() + usuarioActual.FechaBaja.ToString() + priv.Cifrar(usuarioActual.Telefono) + priv.Cifrar(usuarioActual.Direccion));

                    // Actualiza el DVH y DVV.
                    inte.ActualizarDVHUsuario(usuarioActual.Id, usuarioActualDVH);
                    inte.RecalcularDVV("SEG_Usuario");

                    aud.grabarBitacora(DateTime.Now, usuarioActual.Usr, "CAMBIO DATOS CUENTA", "INFO", "Se han actualizado datos de cuenta del Usuario: " + usuarioActual.Usr + ".");

                    Session["IdiomaApp"] = usuarioActual.Idioma.Abreviacion;

                    return(RedirectToAction("Index", "Home"));
                }
                catch
                {
                    var lnIdio = new NegocioIdioma();
                    var lnLoc  = new NegocioLocalidad();

                    ViewBag.Localidades = lnLoc.Listar();
                    ViewBag.Idiomas     = lnIdio.Listar();

                    return(View());
                }
            }

            return(RedirectToAction("Index", "Home"));
        }