1
resposta

[Projeto] Solução do desafio com dicionário

Preferi colocar um readline pra buscar o nome da música e ele retornar a tonalidade da mesma

using System.Text.Json.Serialization;

namespace MusicKeyTranslator.Models;

internal class SongKey
{
    [JsonPropertyName("song")]
    public string? Song { get; set; }
    [JsonPropertyName("key")]
    public int Key { get; set; }
    

    private readonly Dictionary<int, string> KeyMap = new()
    {
        { 0, "C" },
        { 1, "C#" },
        { 2, "D" },
        { 3, "D#" },
        { 4, "E" },
        { 5, "F" },
        { 6, "F#" },
        { 7, "G" },
        { 8, "G#" },
        { 9, "A" },
        { 10, "A#" },
        { 11, "B" },
    };

    public string GetMusicalKey(int chave)
    {
        if (KeyMap.TryGetValue(chave, out string? value))
            return value;
        else
           return "Valor não encontrado";
    }
}

using System.Text.Json;

namespace MusicKeyTranslator.Models;

internal class SongKeyService
{
    public static async Task SearchingAsync()
    {
        using (HttpClient client = new())
        {
            var request = await client.GetStringAsync("https://guilhermeonrails.github.io/api-csharp-songs/songs.json");
            var json = JsonSerializer.Deserialize<List<SongKey>>(request)!;
            SongKey model = new();
            json.ForEach(c => Console.WriteLine(c.Song));

            Console.WriteLine("\nVocê quer pegar a tonalidade de qual música?");
            string question = Console.ReadLine()!;
            foreach (var item in json)
            {
                if (item.Song.Equals(question))
                    Console.WriteLine($"\nO tom da música é: {model.GetMusicalKey(item.Key)}");
            }
        }
    }
}
1 resposta

Oi, dev! Tudo bem?

Ótimo código, parabéns! Espero que continue a explorar os conteúdos para ampliar seu conhecimento e desenvolver novas habilidades. Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!