Visão geral
Aplicação de console para gerenciar tarefas: criar, listar, buscar por texto/status/prioridade, atualizar (edição parcial, campo em branco mantém o valor atual), concluir/reabrir e remover, com confirmação. Sem banco de dados: os dados persistem em JSON, gravado a cada alteração.
Arquitetura
Console (UI) → Service (regra de negócio) → Repository (persistência) → Modelo. Cada camada
depende só de abstração (ITarefaRepository, ITarefaService), nunca de implementação
concreta, injetadas via Microsoft.Extensions.DependencyInjection, o mesmo padrão de uma
aplicação ASP.NET Core. Falha de regra de negócio vira exceção de domínio
(TarefaInvalidaException, TarefaNaoEncontradaException) em vez de código de retorno mágico.
Testes
16 testes (xUnit), rodados e confirmados antes de qualquer mudança neste projeto: validação de título/descrição, busca com filtro combinado, exceção ao buscar/atualizar/remover ID inexistente, e persistência real da camada de repositório. GitHub Actions builda e roda a suíte a cada push.
Stack
C# 12, .NET 8, System.Text.Json, xUnit, GitHub Actions.