public static DataTable RetornarDataTable(TipoImportacao peTpImportacao, string psNomeArquivo) { DataTable dtDados = new DataTable(); if (peTpImportacao == TipoImportacao.Comodos) { csComodos oComodos = new csComodos(psNomeArquivo); dtDados = oComodos.dtDados; return(dtDados); } if (peTpImportacao == TipoImportacao.Produtos) { csProdutos oProdutos = new csProdutos(psNomeArquivo); dtDados = oProdutos.dtDados; return(dtDados); } if (peTpImportacao == TipoImportacao.Atividades) { csAtividades oAtividades = new csAtividades(psNomeArquivo); dtDados = oAtividades.dtDados; return(dtDados); } return(dtDados); }
public static LogImportacao Parse <TData>(NotImportedReason <TData> item, TipoImportacao tipoImportacao) { var log = new LogImportacao() { DataImportacao = item.Date, TipoImportacao = tipoImportacao, DadosImportados = JsonConvert.SerializeObject(item.Data), DadosRetornados = "", Url = item.Url, Sucesso = false, Mensagem = item.Reason, Excecao = item.Exception != null?JsonConvert.SerializeObject(item.Exception) : "" }; return(log); }
public static void ImportarDados(TipoImportacao peTpImportacao, string psNomeArquivo, csControleDados poControleDados, ProgressBar pbProgresso) { DataTable dtRegistros = RetornarDataTable(peTpImportacao, psNomeArquivo); if (peTpImportacao == TipoImportacao.Comodos) { ImportarComodos(dtRegistros, poControleDados, pbProgresso); return; } if (peTpImportacao == TipoImportacao.Produtos) { ImportarProdutos(dtRegistros, poControleDados, pbProgresso); return; } if (peTpImportacao == TipoImportacao.Atividades) { ImportarAtividades(dtRegistros, poControleDados, pbProgresso); return; } }
public bool ImportarTextoPlanilha(List <string[]> textoPlanilha, string[] relacaoColunas, TipoImportacao tipoImportacao) { var importacao = new ImportacaoFuncionario(_funcionarioRepository); importacao.ImportarTextoPlanilha(textoPlanilha, relacaoColunas, tipoImportacao); return(true); }
public override bool ImportarTextoPlanilha(List<string[]> textoPlanilha, string[] relacaoColunas, TipoImportacao tipoImportacao) { if (tipoImportacao != TipoImportacao.Funcionario) throw new ArgumentException("Tipo de importação inválido para essa operação"); int[] indicesRelacionados = { }; var listaDosNomes = indicesRelacionados.ToList(); for (int i = 0; i < relacaoColunas.GetLength(0); i++) { listaDosNomes.Add(int.Parse(relacaoColunas[i])); } indicesRelacionados = listaDosNomes.ToArray(); #region Pega o indice e transforma em nomes para criar o objeto Funcionario var nomeColunasRelacionadas = (new string[] { }).ToList(); for (int j = 0; j < indicesRelacionados.Length; j++) { nomeColunasRelacionadas.Add(camposFuncionario.GetValue(indicesRelacionados[j]).ToString()); } var nomeColunasRelacionadasArray = nomeColunasRelacionadas.ToArray(); #endregion #region Baseado na lista de nomes, monta lista de funcionarios para inserir no sistema var novosFuncionarios = new List<Funcionario>(); for (int i = 0; i < textoPlanilha.ToArray().Length; i++) { var novoFuncionario = new Funcionario(); for (int j = 0; j < indicesRelacionados.Length; j++) { Type tipoFuncionario = typeof(Funcionario); var propriedade = tipoFuncionario.GetProperty(nomeColunasRelacionadasArray[j]); var tipoDesejado = IsNullableType(propriedade.PropertyType) ? Nullable.GetUnderlyingType(propriedade.PropertyType) : propriedade.PropertyType; #region Formata campo de acordo com seu tipo switch (nomeColunasRelacionadasArray[j]) { case "DataNascimento": string data = $"{textoPlanilha[i][j]} 00:00"; CultureInfo cult = new CultureInfo("pt-BR"); novoFuncionario.DataNascimento = DateTime.Parse(data,cult); break; default: propriedade.SetValue(novoFuncionario, Convert.ChangeType(textoPlanilha[i][j], tipoDesejado), null); break; } #endregion } novosFuncionarios.Add(novoFuncionario); } #endregion #region Inserir Funcionarios no Banco novosFuncionarios.ForEach(funcionario => { _funcionarioRepository.Salvar(funcionario); }); _funcionarioRepository.Executar(); #endregion return true; }
public static LogImportacao Parse <TData, TResponse>(ImportedResult <TData, TResponse> item, TipoImportacao tipoImportacao) { var log = new LogImportacao() { DataImportacao = item.Date, TipoImportacao = tipoImportacao, DadosImportados = JsonConvert.SerializeObject(item.Data), DadosRetornados = JsonConvert.SerializeObject(item.Result), Url = item.Url, Sucesso = true, Suspenso = !item.Active }; return(log); }
abstract public bool ImportarTextoPlanilha(List <string[]> textoPlanilha, string[] relacaoColunas, TipoImportacao tipoImportacao);