Ter um projeto prático que envolve a criação de um sistema de cadastro em C# é uma ótima maneira de aprender sobre a linguagem e suas funcionalidades. Vou dar um exemplo de como você pode implementar esse projeto, com as classes de Cliente, Produto e Pedido e os CRUDs para cada uma delas:
public class Cliente
{
public int Id { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string Telefone { get; set; }
}
public class Produto{
public int Id { get; set; }
public string Nome { get; set; }
public decimal Preco { get; set; }
}
public class Pedido{
public int Id { get; set; }
public Cliente Cliente { get; set; }
public DateTime Data { get; set; }
public List<ItemPedido> Itens { get; set; }
}
public class ItemPedido
{
public int Id { get; set; }
public Produto Produto { get; set; }
public int Quantidade { get; set; }
}
public class RepositorioCliente
{
private List<Cliente> clientes = new List<Cliente>();
public void AdicionarCliente(Cliente cliente)
{
cliente.Id = clientes.Count + 1;
clientes.Add(cliente);
}
public void AtualizarCliente(Cliente cliente)
{
int index = clientes.FindIndex(c => c.Id == cliente.Id);
clientes[index] = cliente;
}
public void ExcluirCliente(int id)
{
clientes.RemoveAll(c => c.Id == id);
}
public Cliente ObterCliente(int id)
{
return clientes.FirstOrDefault(c => c.Id == id);
}
public List<Cliente> ObterTodosClientes()
{
return clientes;
}
}
public class RepositorioProduto
{
private List<Produto> produtos = new List<Produto>();
public void AdicionarProduto(Produto produto)
{
produto.Id = produtos.Count + 1;
produtos.Add(produto);
}
public void AtualizarProduto(Produto produto)
{
int index = produtos.FindIndex(p => p.Id == produto.Id);
produtos[index] = produto;
}
public void ExcluirProduto(int id)
{
produtos.RemoveAll(p => p.Id == id);
}
public Produto ObterProduto(int id)
{
return produtos.FirstOrDefault(p => p.Id == id);
}
public List<Produto> ObterTodosProdutos()
{
return produtos;
}
}
public class RepositorioPedido
{
private List<Pedido> pedidos = new List<Pedido>();
public void AdicionarPedido(Pedido pedido)
{
pedido.Id = pedidos.Count + 1;
pedidos.Add(pedido);
}
public void AtualizarPedido(Pedido pedido)
{
int index = pedidos.FindIndex(p => p.Id == pedido.Id);
pedidos[index] = pedido;
}
public void ExcluirPedido(int id)
{
pedidos.RemoveAll(p => p.Id == id);
}
public Pedido ObterPedido(int id)
{
return pedidos.FirstOrDefault(p => p.Id == id);
}
public List<Pedido> ObterTodosPedidos()
{
return pedidos;
}
}
Neste exemplo, temos as classes de Cliente, Produto e Pedido, cada uma com seus respectivos atributos e propriedades.