示例#1
0
        public void TreatFile()
        {
            try
            {
                Stopwatch watch;
                long elapsedMs = 0;

                watch = Stopwatch.StartNew();

                _logger.LogInformation(string.Format(LogsProcess.InitProcess, Variables.TreatFile, DateTime.Now.ToString()));

                dynamic fileInClass = null;
                MemoryStream file = null;

                if (_parametersProcessum.Zip)
                {
                    file = ExtractFile.Extract(expectedFilePath);
                }
                else
                {
                    FileStream fs = new FileStream(expectedFilePath, FileMode.Open, FileAccess.Read);
                    file = new MemoryStream();
                    fs.CopyTo(file);
                }

                fileInClass = DynamicExpressions.FileInClass(file, @class, _parametersProcessum);

                if (_parametersProcessum.IdGeracaoArquivoDeParaNavigation != null)
                {
                    //Tem de Para

                    switch ((ETipoArquivo)_parametersProcessum.IdGeracaoArquivoDeParaNavigation.IdTipoArquivo)
                    {
                        case ETipoArquivo.CSV:
                            //implementar caso precise
                            break;

                        case ETipoArquivo.XLSX:
                            _excel.TreatFile(fileInClass, @class, _parametersProcessum);
                            break;

                        case ETipoArquivo.XLS:
                            //implementar caso precise
                            break;

                        case ETipoArquivo.TXT:
                            //implementar caso precise
                            break;
                        default:
                            break;
                    }
                }

                if (File.Exists(expectedFilePath))
                {
                    File.Delete(expectedFilePath);
                }

                watch.Stop();

                elapsedMs = watch.ElapsedMilliseconds;

                _logger.LogInformation(string.Format(LogsProcess.FinishProcess, Variables.TreatFile, DateTime.Now.ToString()));
                _logger.LogInformation(string.Format(LogsProcess.TimeExecution, Variables.TreatFile, elapsedMs.ToString()));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }