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."); } }
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); }