コード例 #1
0
        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.");
                }
            }
        }