private void SalvarEAtualizarUsuario(UsuarioLogado usuario)
        {
            // Localizar usuário no banco
            var query = PredicateBuilder.New <UsuarioSguEntity>();

            if (usuario.IdUsuarioNoSgu == null)
            {
                query = query.And(a => a.Nome == usuario.Nome).And(a => a.Login == usuario.Login);
            }
            else
            {
                query = query.And(a => a.IdSgu == usuario.IdUsuarioNoSgu);
            }

            var usuEntity = _context.UsuarioSgu.AsExpandable().FirstOrDefault(query);

            // Cria e adiciona o objeto caso ainda nao exista.
            if (usuEntity == null)
            {
                usuEntity = new UsuarioSguEntity();
                _context.UsuarioSgu.Add(usuEntity);
            }

            // Atualiza Campos
            usuEntity.IdSgu = usuario.IdUsuarioNoSgu;
            usuEntity.Nome  = usuario.Nome;
            usuEntity.Login = usuario.Login;
            usuEntity.Email = usuario.Email;

            _context.SaveChanges();

            // Atualizar a chave
            usuario.IdUsuarioNoSistema = usuEntity.IdUsuarioSgu;
        }
 public static SuperUsuarioLogado ParaSuperUsuarioLogado(UsuarioSguEntity entity)
 {
     return(new SuperUsuarioLogado
     {
         IdUsuarioNoSistema = entity.IdUsuarioSgu,
         IdUsuarioNoSgu = entity.IdSgu,
         Nome = entity.Nome,
         Login = entity.Login,
         Email = entity.Email
                 // TODO: Carregar Perfil e Autorizacoes. Nao mecher nesta parte sem supervisao do lider tecnico.
     });
 }