1 - Modelar o funcionamento de uma oficina automobilistica.
namespace OficinaAutomobilistica.Models
{
internal class Oficina
{
public Oficina(string nome, string endereco)
{
FuncionariosDaOficina = new List<Funcionario>();
VeiculosNaOficina = new List<Veiculo>();
Clientes = new List<Cliente>();
Nome = nome;
Endereco = endereco;
}
public string? Nome { get; private set; }
public string? Endereco { get; private set; }
public List<Funcionario> FuncionariosDaOficina { get; private set; }
public List<Veiculo> VeiculosNaOficina { get; private set; }
public List<Cliente> Clientes { get; private set; }
public string DescricaoOficina => $"Oficina: {Nome}, Endereço: {Endereco}";
public void ContratarFuncionario(Funcionario funcionario)
{
if (!FuncionariosDaOficina.Contains(funcionario))
{
FuncionariosDaOficina.Add(funcionario);
Console.WriteLine($"Funcionário: {funcionario.Nome}, contratado com sucesso. ");
}
else
Console.WriteLine($"Funcionário: {funcionario.Nome}, não consta na lista de funcionários da oficina. ");
}
public void DemitirFuncionario(Funcionario funcionario)
{
if (FuncionariosDaOficina.Contains(funcionario))
{
FuncionariosDaOficina.Remove(funcionario);
Console.WriteLine($"Funcionário: {funcionario.Nome}, não consta mais na lista de funcionários da oficina: {this.Nome}");
}
else
Console.WriteLine($"Funcionario: {funcionario.Nome}, não consta na lista de funcionários da oficina. ");
}
public void AgendarServico(Veiculo veiculo, Funcionario funcionario, DateTime DataAgendamento)
{
if (!VeiculosNaOficina.Contains(veiculo))
{
Console.WriteLine($"Serviço agendado para o veiculo de modelo: {veiculo.Modelo} correspondente a Placa: {veiculo.Placa}, com o Mecanico: {funcionario.Nome} na data informada: {DataAgendamento.ToString()}");
VeiculosNaOficina.Add(veiculo);
}
else
{
Console.WriteLine("Não contém veículo para reparo.");
}
}
public void RealizarServico(Veiculo veiculo, Funcionario mecanico)
{
if (VeiculosNaOficina.Contains(veiculo))
{
Console.WriteLine($"Serviço realizado em {veiculo.Placa} pelo mecânico {mecanico.Nome}.");
VeiculosNaOficina.Remove(veiculo);
}
else
{
Console.WriteLine($"O veículo {veiculo.Placa} não está na oficina para realizar o serviço.");
}
}
public void ExibirFichaTecnica()
{
Console.WriteLine($"Oficina: {DescricaoOficina}");
Console.Write($"Lista de funcionários da oficina");
foreach (Funcionario mecanico in FuncionariosDaOficina)
{
Console.WriteLine($"Funcionario: {mecanico.Nome}");
}
Console.Write("Veículos na oficina: ");
foreach(Veiculo meuCarro in VeiculosNaOficina)
{
Console.WriteLine($"Veiculo: {meuCarro.Modelo}");
}
Console.ReadKey();
}
}
}
2 - Criar um programa Program.cs e simular o funcionamento do programa.
using OficinaAutomobilistica.Models;
Oficina minhaOficina = new Oficina("Guedes Tech Auto", "Av. Principal, 1000");
Veiculo veiculo1 = new Veiculo("Sandero", "ATX-2391");
Veiculo veiculo2 = new Veiculo("Civic", "LOU-4455");
Funcionario mecanico = new Funcionario("Jailson", "1223456");
minhaOficina.ContratarFuncionario(mecanico);
minhaOficina.AgendarServico(veiculo1, mecanico, DateTime.Now);
minhaOficina.ExibirFichaTecnica();