public List<AtividadeInfo> ler() { List<AtividadeInfo> listaRetorno = new List<AtividadeInfo>(); String colunaDiaDaSemana = leitor.obterColuna("Dia"); String colunaHorario = leitor.obterColuna("Horário da atividade"); String colunaDescricao = leitor.obterColuna("Atividade"); String colunaPeriodicidade = leitor.obterColuna("Periodicidade"); String colunaTipoAtividade = leitor.obterColuna("Tipo de atividade"); CelulaLeitorInfo celTxtHora = new CelulaLeitorInfo(colunaHorario, 2); while (true) { double? horaInicio = lerHorario(celTxtHora, 0); if (horaInicio == null) { break; } double? horaFim = lerHorario(celTxtHora, 1); string descricao = leitor.ler(new CelulaLeitorInfo(colunaDescricao, celTxtHora.Linha)); string tipoAtividade = leitor.ler(new CelulaLeitorInfo(colunaTipoAtividade, celTxtHora.Linha)); String textoPeriodicidade = leitor.ler(new CelulaLeitorInfo(colunaPeriodicidade, celTxtHora.Linha)); Periodicidade? periodicidade = null; if (mapaPeriodicidade.ContainsKey(textoPeriodicidade)) { periodicidade = mapaPeriodicidade[textoPeriodicidade]; string textoDiaDaSemana = leitor.ler(new CelulaLeitorInfo(colunaDiaDaSemana, celTxtHora.Linha)); DayOfWeek? diaDaSemana = null; foreach (string descricaoDiaDaSemana in mapaDiaDaSemana.Keys) { if (textoDiaDaSemana.ToLower().Contains(descricaoDiaDaSemana.ToLower())) { diaDaSemana = mapaDiaDaSemana[descricaoDiaDaSemana]; int? semana = null; if (periodicidade == Periodicidade.Mensal) { for (int i = 1; i < 5; ++i) { if (textoDiaDaSemana.Contains(i + "º") || textoDiaDaSemana.Contains(i + "ª")) { semana = i; } } } listaRetorno.Add(new AtividadeInfo(diaDaSemana.Value, semana, horaInicio.Value, horaFim.Value, descricao, periodicidade.Value, tipoAtividade)); break; } } } celTxtHora = leitor.proxima(celTxtHora, 0, 1); } return listaRetorno; }
private void ler(List<ProgramacaoInfo> listaRetorno) { Dictionary<string, ExpositorInfo> expositores = new Dictionary<string, ExpositorInfo>(); String colunaData = leitor.obterColuna("Dia"); String colunaHorario = leitor.obterColuna("Horário da atividade"); String colunaTitulo1Estudo = leitor.obterColuna("Título 1º estudo"); String colunaTema1Estudo = leitor.obterColuna("1º estudo"); String colunaReferencia1Estudo = leitor.obterColuna("Referência 1º estudo"); String colunaExpositor1Estudo = leitor.obterColuna("Expositor 1º estudo"); String colunaTitulo2Estudo = leitor.obterColuna("Título 2º estudo"); String colunaTema2Estudo = leitor.obterColuna("2º estudo"); String colunaReferencia2Estudo = leitor.obterColuna("Referência 2º estudo"); String colunaExpositor2Estudo = leitor.obterColuna("Expositor 2º estudo"); String colunaLocal1e2Estudo = leitor.obterColuna("Dependência 1º e 2º estudos"); String colunaTemaCiclo = leitor.obterColuna("Ciclo de estudos"); String colunaExpositorCiclo = leitor.obterColuna("Expositor ciclo de estudos"); String colunaLocalCiclo = leitor.obterColuna("Dependência ciclo de estudos"); CelulaLeitorInfo celulaData = new CelulaLeitorInfo(colunaData, 2); while (true) { DateTime? data = celulaData.lerData(leitor); if (data == null) { break; } CelulaLeitorInfo celTxtHora = new CelulaLeitorInfo(colunaHorario, celulaData.Linha); double horaInicio = lerHorario(celTxtHora, 0); double horaFim = lerHorario(celTxtHora, 1); lerEstudo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha, colunaTitulo1Estudo, colunaTema1Estudo, colunaReferencia1Estudo, colunaExpositor1Estudo, colunaLocal1e2Estudo, 1); lerEstudo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha, colunaTitulo2Estudo, colunaTema2Estudo, colunaReferencia2Estudo, colunaExpositor2Estudo, colunaLocal1e2Estudo, 2); lerCiclo(listaRetorno, expositores, data.Value, horaInicio, horaFim, celulaData.Linha, colunaTemaCiclo, colunaExpositorCiclo, colunaLocalCiclo); celulaData = celulaData.proxima(leitor, 0, 1); } }
private double? lerHorario(CelulaLeitorInfo celulaInicio, int indiceAparicaHorario) { String texto = leitor.ler(celulaInicio); if (String.IsNullOrEmpty(texto)) { return null; } MatchCollection matches = regexHora.Matches(texto); string[] horaMinuto = matches[indiceAparicaHorario].Groups[1].Value.Split(':'); return Convert.ToDouble(horaMinuto[0]) + (Convert.ToDouble(horaMinuto[1])/60.0); }
private double lerHorario(CelulaLeitorInfo celulaInicio, int indiceAparicaHorario) { String texto = celulaInicio.ler(leitor); MatchCollection matches = regexHora.Matches(texto); string[] horaMinuto = matches[indiceAparicaHorario].Groups[1].Value.Split(':'); return Convert.ToDouble(horaMinuto[0]) + (Convert.ToDouble(horaMinuto[1])/60.0); }