예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #5
0
        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;
        }
예제 #6
0
        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);
        }
예제 #7
0
 abstract public bool ImportarTextoPlanilha(List <string[]> textoPlanilha, string[] relacaoColunas, TipoImportacao tipoImportacao);