Ordernar sempre de uma forma diferente

image

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar como ordernar seus dados de forma aleatória para mostrar aos usuários. No meu caso, eu preciso sempre que venha um curso diferente na tela principal e tudo misturado, uma hora vem o produto A em primeiro, outra hora vem o C, outra hora vem o E e assim por diante.

Como eu busco os dados do database e estou utilizando entity framework, eu prefiro fazer diretamente com o order by esse tipo de coisa. Veja o site www.ecode10.academy, em cada momento que você entra nele, os cursos aparecem na ordem diferente ao usuário.

Utilizado:

  • Ferramenta Visual Studio ou Rider
  • Linguagem de programa√ß√£o C#
  • Framework .NET 6
  • Database Framework Entity Framework
  • Tipo do projeto Razor

Neste exemplo eu estou utilizando em Razor, mas da maneira que fiz pode ser utilizado em qualquer tipo de projeto. O código 1.1 mostra como gerar uma ordem para aparecer ao usuário de maneira diferente a cada vez que o método é acessado.

Código 1.1 - Mostrar todos os cursos

public List<CourseModel> GetAllCourses()
{
    return _db.CourseModels.OrderBy(x => Guid.NewGuid()).ToList();
}

Dentro do bloco try eu utilizo o m√©todo OrderBy() com uma l√Ęmbda de (x => Guid.NewGuid()) e esse √© o m√©todo que faz a ordem dos cursos vir diferente em cada acesso. O segredo √© utilizar o Guid.NewGuid() dentro do OrderBy, lembrando que, eu n√£o tenho no database nenhum campo do tipo Guid, a chave principal da tabela √© um Int simples; ou seja; √© bem simples ordernar de forma al√©at√≥ria.

Espero que tenha gostado e aprendido. Qualquer d√ļvida pode entrar em contato comigo pelo site www.mauriciojunior.net ou se quiser aprender mais e mais, acesse a plataforma de estudos que eu criei chamada ecode10.academy.