Exercício 1 e Exercício 2:
public class Holder
{
private int _age;
public string FirstName { get; set; }
public string LastName { get; set; }
public string Document { get; set; }
public DateTime DateBirth { get; set; }
public int Age => (int)((DateTime.Today - DateBirth).TotalDays / 365);
public string DetailedDescription => $"Holder: {this.FirstName} {this.LastName} - Document: {this.Document} - Date of Birth {this.DateBirth:dd/MM/yyyy}";
public Holder(string firstName, string lastName, string document, DateTime dateBirth, int age)
{
FirstName = firstName;
LastName = lastName;
Document = document;
DateBirth = dateBirth;
if (Age < 18)
throw new ArgumentOutOfRangeException(nameof(DateBirth), "Only adults can create an account.");
}
}
public class BankAccount
{
public int AccountNumber { get; set; }
public Holder Holder { get; set; }
public double Balance { get; set; }
public string Password { get; set; }
public BankAccount(int accountNumber, Holder holder, double balance, string password)
{
AccountNumber = accountNumber;
Holder = holder;
Balance = balance;
Password = new string('*', 3) + password[3..^3] + new string('*', 3);
}
public void ShowDetails()
{
Console.WriteLine($"Account Number: {AccountNumber}");
Console.WriteLine(Holder.DetailedDescription);
Console.WriteLine($"Balance: {Balance:F2}");
Console.WriteLine($"Password: {Password}");
}
}
Holder holder = new Holder("Carlos", "Eduardo", "123.456.789-10", new DateTime(2000, 7, 15), 22);
BankAccount bankAccount = new BankAccount(1, holder, 300.00, "123456789");
bankAccount.ShowDetails();