コード例 #1
0
        private void btnProcurarArquivo_Click(object sender, EventArgs e)
        {
            if (ofdArquivo.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            edtArquivo.Text = ofdArquivo.FileName;

            items.Clear();

            using (var arquivo = new ExcelPackage(new FileInfo(ofdArquivo.FileName)))
                using (var worksheet = arquivo.Workbook.Worksheets[1])
                    using (var conexao = new Connection(Database.Local))
                    {
                        int colCount = worksheet.Dimension.End.Column;
                        int rowCount = worksheet.Dimension.End.Row;

                        for (int row = 2; row <= rowCount; row++)
                        {
                            DateTime dataNascimento;
                            DateTime.TryParse(worksheet.Cells[row, 6].Value?.ToString().Trim(), out dataNascimento);

                            int idCidade = 0;

                            var cidade = new Cidade();
                            if (cidade.GetByCidadeAndUf(worksheet.Cells[row, 19].Value?.ToString().Trim(), worksheet.Cells[row, 20].Value?.ToString().Trim(), null))
                            {
                                idCidade = cidade.Id;
                            }

                            var item = new ImportacaoClienteTO();

                            item.Cliente.Nome           = worksheet.Cells[row, 4].Value?.ToString().Trim() + " " + worksheet.Cells[row, 5].Value?.ToString().Trim();
                            item.Cliente.DataNascimento = dataNascimento;
                            item.Cliente.Cpf            = worksheet.Cells[row, 7].Value?.ToString().Trim().Replace(".", String.Empty).Replace("-", String.Empty);
                            item.Cliente.Email          = worksheet.Cells[row, 8].Value?.ToString().Trim();
                            item.Cliente.Telefone       = worksheet.Cells[row, 9].Value?.ToString().Trim() + worksheet.Cells[row, 10].Value?.ToString().Trim();
                            item.Cliente.Celular        = worksheet.Cells[row, 11].Value?.ToString().Trim() + worksheet.Cells[row, 12].Value?.ToString().Trim();
                            item.Cliente.Cep            = worksheet.Cells[row, 13].Value?.ToString().Trim();
                            item.Cliente.TipoLogradouro = worksheet.Cells[row, 14].Value?.ToString().Trim();
                            item.Cliente.Logradouro     = worksheet.Cells[row, 15].Value?.ToString().Trim();
                            item.Cliente.Numero         = worksheet.Cells[row, 16].Value?.ToString().Trim();
                            item.Cliente.Complemento    = worksheet.Cells[row, 17].Value?.ToString().Trim();
                            item.Cliente.Bairro         = worksheet.Cells[row, 18].Value?.ToString().Trim();
                            item.Cliente.IdCidade       = idCidade;

                            if (idCidade != 0)
                            {
                                item.Cidade = cidade;
                            }

                            item.Tatuagem.Local = worksheet.Cells[row, 21].Value?.ToString();

                            DateTime dataUltimaSessao;
                            DateTime.TryParse(string.IsNullOrEmpty(worksheet.Cells[row, 3].Value?.ToString()) ? worksheet.Cells[row, 2].Value?.ToString().Trim() : worksheet.Cells[row, 3].Value?.ToString().Trim(), out dataUltimaSessao);

                            Decimal valorSessao;
                            Decimal.TryParse(worksheet.Cells[row, 1].Value?.ToString(), out valorSessao);

                            item.Sessao.DataSessao = dataUltimaSessao;
                            item.Sessao.Valor      = valorSessao;
                            item.Sessao.Parametros = worksheet.Cells[row, 22].Value?.ToString();
                            item.Sessao.Disparos   = worksheet.Cells[row, 23].Value?.ToString();
                            item.Sessao.Pago       = true;

                            for (int col = 24; col <= colCount; col++)
                            {
                                Pergunta pergunta = Pergunta.GetAtivaByCodigoImportacao(worksheet.Cells[1, col].Value?.ToString().Trim(), conexao, null);

                                if (pergunta == null)
                                {
                                    continue;
                                }

                                var resposta = new Resposta()
                                {
                                    IdPergunta = pergunta.Id
                                };

                                if (pergunta.Dissertativa)
                                {
                                    resposta.RespostaDissertativa = worksheet.Cells[row, col].Value?.ToString().Trim();
                                }
                                else
                                {
                                    Alternativa alternativa = Alternativa.GetAtivaByIdPerguntaAndDescricao(pergunta.Id, worksheet.Cells[row, col].Value?.ToString().Trim(), conexao, null);

                                    if (alternativa == null)
                                    {
                                        continue;
                                    }

                                    resposta.IdAlternativa = alternativa.Id;
                                }

                                item.Respostas.Add(resposta);
                            }

                            items.Add(item);
                        }
                    }

            lblQtdeClientesCarregados.Text    = items.Count.ToString();
            lblClientesCarregados.Visible     = true;
            lblQtdeClientesCarregados.Visible = true;
        }