public void Retirar(Veiculo veiculo) { if (veiculo == null) throw new ValorNullException("Selecione um veiculo para retirar"); var vagaDoVeiculoAtual = VagasUtilizadas.ToList().Where(x => x.Veiculo != null && x.Veiculo.Id == veiculo.Id).ToList(); for (int i = 0; i < vagaDoVeiculoAtual.Count; i++) VagasUtilizadas.Remove(vagaDoVeiculoAtual[i]); }
public void Estacionar(Veiculo veiculo, Vaga vaga) { if (veiculo == null) throw new ValorNullException("Selecione um veiculo para estacionar"); if (vaga == null) throw new ValorNullException("Selecione a vaga que será estacionado o veiculo"); if (!Vagas.Contains(vaga)) throw new EstacionarException("Vaga selecionada não é do estacionado"); var vagaAtual = VagasUtilizadas.ToList().FirstOrDefault(x => x.Vaga != null && x.Vaga.Id == vaga.Id); var vagaDoVeiculoAtual = VagasUtilizadas.ToList().FirstOrDefault(x => x.Veiculo!= null && x.Veiculo.Id == veiculo.Id); if (vagaDoVeiculoAtual != null) throw new EstacionarException("O veiculo já está estacionado."); if (vagaAtual != null) throw new EstacionarException("A vaga já possui um veiculo estacionado"); this.VagasUtilizadas.Add(new VagaVeiculo(this, vaga,veiculo)); }
public VagaVeiculo(Estacionamento estacionamento, Vaga vaga, Veiculo veiculo) { Estacionamento = estacionamento; Vaga = vaga; Veiculo = veiculo; DataEntrada = DateTime.Now; }