A ideia do mini projeto é criar um sistema de gerenciamento de empréstimos/devoluções, permitindo também o cadastro de livros e usuários.
Classe Biblioteca:
class Biblioteca
{
public Biblioteca(string nome)
{
Nome = nome;
}
public string Nome { get; set; }
public List<Usuario> Usuarios { get; set; } = new List<Usuario>();
public List<Livro> Livros { get; set; } = new List<Livro>();
public void AdicionarLivro(Livro livro) =>
Livros.Add(livro);
public void RemoverLivro(Livro livro) =>
Livros.Remove(livro);
public void ExibirInfoLivros()
{
Console.WriteLine("Lista de livros!");
foreach (var livro in Livros)
livro.ExibirInfoLivro();
Console.WriteLine();
}
public void AdicionarUsuario(Usuario usuario) =>
Usuarios.Add(usuario);
public void RemoverUsuario(Usuario usuario) =>
Usuarios.Remove(usuario);
public void ExibirInfoUsuarios()
{
Console.WriteLine("Lista de usuários!");
foreach (var usuario in Usuarios)
usuario.ExibirInfoUsuario();
Console.WriteLine();
}
public void RegistrarEmprestimo(Livro livro, Usuario usuario, int id)
{
usuario.EmprestarLivro(livro, usuario, id);
}
public void RegistrarDevolucao(Usuario usuario, int idEmp)
{
usuario.DevolverLivro(idEmp);
}
public void ExibirEmprestimosUsuario(Usuario usuario)
{
Console.WriteLine("Lista de emprestimos!");
usuario.ExibirEmprestimos();
Console.WriteLine();
}
public void ExibirDevolucoesUsuario(Usuario usuario)
{
Console.WriteLine("Lista de devoluções!");
usuario.ExibirDevolucoes();
Console.WriteLine();
}
}
Classe Livro:
class Livro
{
public Livro(int id, string nome, string autor)
{
Id = id;
Nome = nome;
Autor = autor;
}
public int Id { get; set; }
public string Nome { get; set; }
public string Autor { get; set; }
public string InformacoesLivro =>
$"\nNome: {this.Nome}\nAutor: {this.Autor}";
public void ExibirInfoLivro() =>
Console.WriteLine(InformacoesLivro);
}
Classe Usuario:
class Usuario
{
private List<Emprestimo> emprestimos = new List<Emprestimo>();
private List<Emprestimo> emprestimosDevolvidos = new List<Emprestimo>();
public Usuario(int id, string nome, int idade, string cpf, string email)
{
Id = id;
Nome = nome;
Idade = idade;
Cpf = cpf;
Email = email;
}
public int Id { get; set; }
public string Nome { get; set; }
public int Idade { get; set; }
public string Cpf { get; set; }
public string Email { get; set; }
public string InfoUsuario =>
$"\nNome: {this.Nome}\nIdade: {this.Idade}\nCpf: {this.Cpf}\nE-mail: {this.Email}";
public void ExibirInfoUsuario() =>
Console.WriteLine(InfoUsuario);
public void EmprestarLivro(Livro livro, Usuario usuario, int id)
{
Emprestimo emprestimo = new Emprestimo(id, livro, usuario, DateTime.Parse("2024-08-18 16:57:00"));
emprestimos.Add(emprestimo);
}
public void DevolverLivro(int IdEmp)
{
foreach (var emp in emprestimos)
{
if (emp.Id == IdEmp)
{
emp.DataDeDevolucao = DateTime.Now;
emprestimos.Remove(emp);
emprestimosDevolvidos.Add(emp);
break;
}
}
}
public void ExibirEmprestimos()
{
foreach(var emp in emprestimos)
emp.ExibirInformacoes();
}
public void ExibirDevolucoes()
{
foreach (var empD in emprestimosDevolvidos)
empD.ExibirInformacoes();
}
}