public async Task SetControlCarga(ControlCarga data)
        {
            try
            {
                await _archivoDbContext.AddAsync(data);

                await _archivoDbContext.SaveChangesAsync();

                _logger.LogInformation("Los datos de controlCarga se guardaron en la BD.");
            }
            catch (SqlException e)
            {
                var errorMessages = new StringBuilder();
                for (int i = 0; i < e.Errors.Count; i++)
                {
                    errorMessages.Append("Index #" + i + "\n" +
                                         "Message: " + e.Errors[i].Message + "\n" +
                                         "LineNumber: " + e.Errors[i].LineNumber + "\n" +
                                         "Source: " + e.Errors[i].Source + "\n" +
                                         "Procedure: " + e.Errors[i].Procedure + "\n");
                }
                RegistraError(e.InnerException, errorMessages.ToString());
            }
            catch (Exception e)
            {
                RegistraError(e, "Ocurrio un error al cargar los datos del archivo desde la BD.");
            }
        }
Exemplo n.º 2
0
    public async Task ProcesaPorExtension(string path, long idInterno = 0)
    {
        var extension_archivo = Path.GetExtension(path).ToUpper();
        //guarda en ControlCarga
        DateTime     fechaInicioCarga = fechaCDMX();
        ControlCarga data             = new ControlCarga()
        {
            fechaInicio           = fechaInicioCarga,
            fechaFin              = null,
            estado                = "Inicia Carga",
            numeroRegistros       = null,
            numeroRegistrosBuenos = null,
            numeroRegistrosMalos  = null,
            idDescarga            = _envVariables.ControlDescarga.idDes,
            idArchivoInterno      = idInterno,
            partesProcesadas      = null,
            idArchivoInstancia    = _envVariables.ArchivoInstancia.id,
            idCarga               = _envVariables.ControlCarga == null ? 1 : _envVariables.ControlCarga.idCarga + 1
        };

        _logger.LogInformation("El archivo intenta guardar con los siguientes datos");
        _logger.LogInformation("fechaInicio: {0}", data.fechaInicio);
        _logger.LogInformation("fechaFin: {0}", data.fechaFin);
        await _dbService.SetControlCarga(data);

        _envVariables.ControlCarga = data;
        _envVariables.estado       = "Archivo Segmentado";
        // Se procesa archivo.
        switch (extension_archivo)
        {
        case ".XLS":
            _fileService.convertirXls(path, idInterno);
            break;

        case ".XLSX":
            _fileService.procesarXlsx(path, idInterno);
            break;

        case ".CSV":
            _fileService.convertirXls(path, idInterno);
            break;

        default:
            await _fileService.DivideCargaArchivo(path, idInterno);

            break;
        }

        data.fechaInicio = fechaInicioCarga;
        data.estado      = _envVariables.estado;
        //  numeroRegistros = null,//_envVariables.totalRegistros,
        //  partesProcesadas = null,//_envVariables.totalSubArchivos,
        await _dbService.UpdateControlCarga(data);
    }