A classe do repositório

Usaremos uma classe de repositório para persistir as cotações enviadas pelos usuários ao nosso aplicativo. Em uma aplicação real, a classe do repositório interagiria com um armazenamento de dados. Para nosso exemplo, usaremos apenas uma lista na memória. Como nosso aplicativo é pequeno, podemos colocar a classe do repositório diretamente em nosso diretório raiz por enquanto.

Aqui está a classe do repositório:


// QuoteRepository.cs 
using QuoteApp.Models;

namespace QuoteApp
{
    public class QuoteRepository
    {
        private static List _quotes = new List()
        {
            new Quote { Id = 1, Text = "There is no try.  Do or do not.", Author = "Yoda" },
            new Quote { Id = 2, Text = "Strive not to be a success, but rather to be of value.", Author = "Albert Einstein" }
        };

        public List GetAll()
        {
            return _quotes;
        }

        public void Add(Quote quote)
        {
            // Simple ID generation (in real app, use database ID generation)
            quote.Id = _quotes.Any() ? _quotes.Max(q => q.Id) + 1 : 1; 
            _quotes.Add(quote);
        }
    }
}

Usaremos um bloco estático para declarar e preencher um _quotes List. Usando esses dados, fornecemos dois métodos: GetAll() e Add(). GetAll() simplesmente retorna o Listenquanto Add insere o novo Quote nisso. Usamos uma lógica de incremento simples para criar um ID para o novo Quote.