Musica.cs
namespace ScreenSound.Modelos;
using System.Text.Json.Serialization;
public class Musica {
[JsonPropertyName("song")]
public string? Nome {get;set;}
[JsonPropertyName("artist")]
public string? Artista {get;set;}
[JsonPropertyName("duration_ms")]
public int Duracao {get;set;}
[JsonPropertyName("genre")]
public string? Genero {get;set;}
[JsonPropertyName("year")]
public string? Ano {get;set;}
public void ExibirDetalhesMusica() {
Console.WriteLine();
Console.WriteLine($"Artista: {Artista}");
Console.WriteLine($"Nome da Música: {Nome}");
Console.WriteLine($"Duração: {Duracao/1000} segundos");
Console.WriteLine($"Gênero: {Genero}");
Console.WriteLine($"Ano: {Ano}");
Console.WriteLine();
}
}
LinqFilter.cs
// ...
public static void FiltrarMusicasPorAno(List <Musica> musicas, string ano) {
var listaMusicasAno = musicas.OrderBy(m => m.Nome).Where(m => m.Ano!.Equals(ano)).Distinct().ToList();
listaMusicasAno.ForEach(m => Console.WriteLine($"{m.Nome}"));
}
Nesse caso, o filtro estaria sendo feito utilizando strings, todavia, caso fosse requisitado que o ano fosse um inteiro, poderíamos traduzir diretamente o valor recebido da API.
Musica.cs
namespace ScreenSound.Modelos;
using System.Text.Json.Serialization;
public class Musica {
[JsonPropertyName("song")]
public string? Nome {get;set;}
[JsonPropertyName("artist")]
public string? Artista {get;set;}
[JsonPropertyName("duration_ms")]
public int Duracao {get;set;}
[JsonPropertyName("genre")]
public string? Genero {get;set;}
[JsonPropertyName("year")]
public string? AnoString {get;set;}
public int Ano => int.Parse(AnoString!);
public void ExibirDetalhesMusica() {
Console.WriteLine();
Console.WriteLine($"Artista: {Artista}");
Console.WriteLine($"Nome da Música: {Nome}");
Console.WriteLine($"Duração: {Duracao/1000} segundos");
Console.WriteLine($"Gênero: {Genero}");
Console.WriteLine($"Ano: {Ano}");
Console.WriteLine();
}
}
LinqFilter.cs
public static void FiltrarMusicasPorAno(List <Musica> musicas, int ano) {
var listaMusicasAno = musicas.OrderBy(m => m.Nome).Where(m => m.Ano == ano).Distinct().ToList();
listaMusicasAno.ForEach(m => Console.WriteLine($"{m.Nome}"));
}