public ActionResult EditarPerfilPropio(PerfilUsuario perfilUsuario)
 {
     try
     {
         if (perfilUsuario.Id == SesionUsuario.Usuario.Id)
         {
             if (ModelState.IsValid)
             {
                 var existePerfil = _db.PerfilesUsuario.Count(x => x.Id == SesionUsuario.Usuario.Id) > 0;
                 if (existePerfil)
                 {
                     var perfil             = _db.PerfilesUsuario.FirstOrDefault(x => x.Id == SesionUsuario.Usuario.Id);
                     var cadenaModificacion = _auditorRepository.DiferenciasObjetos(perfil, perfilUsuario);
                     _db.PerfilesUsuario.ApplyCurrentValues(perfilUsuario);
                     _auditorRepository.GuardarRegistroEdicion(perfil, cadenaModificacion);
                     _db.SaveChanges();
                 }
                 else
                 {
                     perfilUsuario.Id = SesionUsuario.Usuario.Id;
                     _auditorRepository.GuardarRegistro(TipoTransaccion.Crear, perfilUsuario.Id,
                                                        perfilUsuario.GetType());
                     _db.PerfilesUsuario.AddObject(perfilUsuario);
                     _db.SaveChanges();
                 }
                 Utilidades.ColocarMensaje("El perfil se ha guardado exitosamente.");
                 return(RedirectToAction("Index", "Home"));
             }
             return(View(perfilUsuario));
         }
         return(RedirectToAction("Index", "Home"));
     }
     catch (Exception ex)
     {
         Utilidades.ColocarMensaje(ex.Message, ErrorType.Error, Request);
         return(View(perfilUsuario));
     }
 }
 public ActionResult Create(Usuario usuario)
 {
     try
     {
         if (ModelState.IsValid)
         {
             _db.Usuarios.AddObject(usuario);
             _db.SaveChanges();
             var usuarioDominio = _domainUserRepository.FindUser(usuario.NombreUsuario);
             var perfil         = new PerfilUsuario()
             {
                 Apellidos = usuarioDominio.LastName,
                 Email     = usuarioDominio.Email,
                 Nombre    = usuarioDominio.FirstName,
                 Telefono  = "",
                 Id        = usuario.Id
             };
             _db.PerfilesUsuario.AddObject(perfil);
             _db.SaveChanges();
             _auditorRepository.GuardarRegistro(TipoTransaccion.Crear, perfil.Id, perfil.GetType());
             Utilidades.ColocarMensaje("El usuario se ha guardado exitosamente.");
             return(RedirectToAction("EditarPerfilUsuario/" + perfil.Id));
         }
         ViewBag.Id    = new SelectList(_db.PerfilesUsuario, "Id", "Nombre", usuario.Id);
         ViewBag.IdRol = _db.Roles.ToDictionary(x => x.Id.ToString(), x => x.Nombre);
         return(View(usuario));
     }
     catch (Exception ex)
     {
         ViewBag.Id    = new SelectList(_db.PerfilesUsuario, "Id", "Nombre");
         ViewBag.IdRol = _db.Roles.ToDictionary(x => x.Id.ToString(), x => x.Nombre);
         Utilidades.ColocarMensaje(ex.Message, ErrorType.Error, Request);
         return(View(usuario));
     }
 }