Beispiel #1
0
 public void IncluirDetalhe(DetalheBooking detalheBooking)
 {
     if (detalhesBooking == null)
     {
         detalhesBooking = new List <DetalheBooking>();
     }
     detalhesBooking.Add(detalheBooking);
 }
Beispiel #2
0
        private List <Booking> ExtrairInformacoes(List <string> lista)
        {
            List <Booking> bookings       = new List <Booking>();
            Booking        booking        = new Booking();
            DetalheBooking detalheBooking = new DetalheBooking();

            EDIEnums.EPosicaoLeitura posicaoLeitura = EDIEnums.EPosicaoLeitura.NAO_INICIADO;

            lista = lista.Where(linha => linha.Length > 2).ToList();
            int numeroLinha = 0;

            foreach (string linha in lista)
            {
                numeroLinha++;
                try
                {
                    if (linha.StartsWith(EDIConstantes.UNH))
                    {
                        posicaoLeitura = EDIEnums.EPosicaoLeitura.INICIO;
                        booking        = new Booking();
                        detalheBooking = new DetalheBooking();
                    }
                    else if (linha.StartsWith(EDIConstantes.BGM))
                    {
                        if (detalheBooking.TipoEDI != EDIEnums.ETipoEDI.NULL)
                        {
                            booking.IncluirDetalhe(detalheBooking);
                            detalheBooking = new DetalheBooking();
                        }
                        detalheBooking.TipoEDI = ObterTipoEDI(linha);
                    }
                    else if (linha.StartsWith(EDIConstantes.SegmentoBooking))
                    {
                        posicaoLeitura = EDIEnums.EPosicaoLeitura.CORPO;
                        if (string.IsNullOrEmpty(booking.Descricao))
                        {
                            booking.Descricao = TratarBooking(ObterNumeroBooking(linha));
                        }
                    }
                    else if (linha.StartsWith(EDIConstantes.SegmentoConteinerIsocodeTipo))
                    {
                        posicaoLeitura = EDIEnums.EPosicaoLeitura.CORPO;

                        if (!string.IsNullOrEmpty(detalheBooking.Isocode) || detalheBooking.TipoConteiner != EDIEnums.ETipoConteiner.NULL)
                        {
                            booking.IncluirDetalhe(detalheBooking);
                            var tipoEDI = detalheBooking.TipoEDI;
                            detalheBooking         = new DetalheBooking();
                            detalheBooking.TipoEDI = tipoEDI;
                        }
                        detalheBooking.Isocode       = ObterISOCODE(linha);
                        detalheBooking.TipoConteiner = ObterTipoConteiner(linha);
                    }
                    else if (linha.StartsWith(EDIConstantes.SegmentoQuantidade))
                    {
                        posicaoLeitura            = EDIEnums.EPosicaoLeitura.CORPO;
                        detalheBooking.Quantidade = ObterQuantidade(linha);
                    }
                    else if (linha.StartsWith(EDIConstantes.UNT))
                    {
                        posicaoLeitura = EDIEnums.EPosicaoLeitura.FIM;
                        booking.IncluirDetalhe(detalheBooking);
                        bookings.Add(booking);
                    }
                }
                catch (Exception ex)
                {
                    booking.GravarErro(linha, ex.Message, numeroLinha);
                }
            }

            return(bookings);
        }