public void IncluirDetalhe(DetalheBooking detalheBooking) { if (detalhesBooking == null) { detalhesBooking = new List <DetalheBooking>(); } detalhesBooking.Add(detalheBooking); }
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); }