public string Inserir(Reserva reserva) { if (reserva.DATAENTRADA > reserva.PREVISAOSAIDA) { erros.Add("A data de entrada não pode ser maior que a data de saída"); } if (reserva.IDCLIENTE < 1) { erros.Add("O cliente não existe"); } else { Cliente cliente = cbll.LerPorID(reserva.IDCLIENTE); if (cliente == null) { erros.Add("Cliente não existe"); } } if (reserva.IDQUARTO < 1) { erros.Add("O quarto não existe"); } else { Quarto quarto = qbll.LerPorID(reserva.IDQUARTO); if (quarto == null) { erros.Add("Quarto não existe"); } else if (quarto.Ocupado) { erros.Add("Quarto já está em uso"); } } if (erros.Count != 0) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < erros.Count; i++) { builder.AppendLine(erros[i]); } erros.Clear(); return(builder.ToString()); } using (TransactionScope scope = new TransactionScope()) { try { rdal.Inserir(reserva); qbll.OcuparQuarto(reserva.IDQUARTO); scope.Complete(); return("Reserva feita com sucesso."); } catch (Exception) { return("Erro na reserva."); } } }