Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: hora da prática - Atividade 05

Program.cs

using Armazenamento.Modelos;

Arquivo arquivo = new();
BancoDeDados banco = new();

Console.Clear();
Console.WriteLine("1. Arquivo");
Console.WriteLine("2. Banco de dados");
Console.Write("Escolha: ");
int opcao; int.TryParse(Console.ReadLine()!, out opcao);

Console.Clear();
Console.WriteLine("1. Salvar");
Console.WriteLine("2. Recuperar");
Console.Write("Escolha: ");
int opcao2; int.TryParse(Console.ReadLine()!, out opcao2);

switch(opcao){
    case 1: switch (opcao2) {
            case 1: arquivo.Salvar(); break;
            case 2: arquivo.Recuperar(); break;
        } break;
    case 2: switch (opcao2) {
            case 1: banco.Salvar(); break;
            case 2: banco.Recuperar(); break;
        } break;
}

BancoDeDados.cs

namespace Armazenamento.Modelos;
internal class BancoDeDados : IArmazenavel {
    public void Salvar() {
        Console.Clear();
        Console.WriteLine("O banco está armazenando as informações...");
        Thread.Sleep(3000);
        Console.WriteLine("Os dados foram salvos com sucesso!");
    }
    public void Recuperar() {
        Console.Clear();
        Console.WriteLine("Buscando dados para recuperação...");
        Thread.Sleep(3000);
        Console.WriteLine("Os dados foram recuperados com sucesso!");
    }
}

Arquivo.cs

namespace Armazenamento.Modelos;
internal class Arquivo : IArmazenavel {
    public void Salvar() {
        Console.Clear();
        Console.WriteLine("Os arquivos estão sendo salvos...");
        Thread.Sleep(3000);
        Console.WriteLine("Os arquivos foram salvos com sucesso!");
    }
    public void Recuperar() {
        Console.Clear();
        Console.WriteLine("Buscando arquivos para recuperação...");
        Thread.Sleep(3000);
        Console.WriteLine("Os arquivos foram recuperados com sucesso!");
    }
}

IArmazenavel.cs

namespace Armazenamento.Modelos;
internal interface IArmazenavel {
    public void Salvar();
    public void Recuperar();
}
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você organizou a solução com a interface IArmazenavel e separou as responsabilidades entre Arquivo e BancoDeDados. Isso mostra um bom entendimento de Orientação a Objetos, porque as classes seguem o mesmo contrato e o Program.cs coordena bem o fluxo com as escolhas do menu.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!