//Realiza la acción de guardar el registro en la BD void SaveRegistroVnet(VnetRegistro registro) { if (!ModelState.IsValid) { Index(); } _context.VnetRegistros.Add(registro); _context.SaveChanges(); }
//Trato la linea de los txt. Guardo cada registro correspondiente a la linea de un archivo. void TratarLinea(string linea, string nombreArchivo) { var l = linea.Length; //Relleno con blancos hasta 125 while (linea.Length < 125) { linea = linea + " "; l = l + 1; } try { //Empiezo a crear variable auxiliaries para rescatar los campos de el string. var nroRegistro = Convert.ToInt32(linea.Substring(1, 11)); var nroEstablecimiento = Convert.ToInt32(linea.Substring(12, 12)); ControlNroEstablecimiento(nroEstablecimiento); var nroTerminal = Convert.ToInt32(linea.Substring(24, 12)); //Fecha var dia = Convert.ToInt32(linea.Substring(36, 2)); var mes = Convert.ToInt32(linea.Substring(38, 2)); var anio = Convert.ToInt32(linea.Substring(40, 4)); var hora = Convert.ToInt32(linea.Substring(44, 2)); var minuto = Convert.ToInt32(linea.Substring(46, 2)); var segundo = Convert.ToInt32(linea.Substring(48, 2)); DateTime fechaCompleta = new DateTime(); if (dia != 0 && mes != 0 && anio != 0) { fechaCompleta = new DateTime(anio, mes, dia, hora, minuto, segundo); } var nroTarjeta = Convert.ToInt64(linea.Substring(50, 16)); //Importes var culture = CultureInfo.InvariantCulture; //Armo los strings para poder parsear los importes var impEntera = linea.Substring(68, 10); var impDecimal = linea.Substring(78, 2); var importe = Convert.ToDecimal(impEntera + '.' + impDecimal, culture); var descuento = Convert.ToInt32(linea.Substring(66, 2)); var impDescEntera = linea.Substring(80, 10); var impDescDecimal = linea.Substring(90, 2); var importeDescuento = Convert.ToDecimal(impDescEntera + '.' + impDescDecimal, culture); var comercios = _context.Comercios.ToList(); var descripcion = linea.Substring(92, 33); var nuevoRegistro = new VnetRegistro { Id = 0, NroRegistro = nroRegistro, NroEstablecimiento = nroEstablecimiento, NroTerminal = nroTerminal, Comercio = comercios.SingleOrDefault(c => c.Establecimiento == nroEstablecimiento), FechaHoraMov = fechaCompleta, NroTarjeta = nroTarjeta, Descuento = descuento, Importe = importe, ImporteDescuento = importeDescuento, Descripcion = descripcion, NombreArchivo = nombreArchivo, HoraDeSubida = DateTime.Now }; //Guardo el Registro SaveRegistroVnet(nuevoRegistro); } catch (Exception ex) { ViewBag.mensaje = "Se produjo un error:" + ex.Message; } }
public ActionResult TratarArchivoMonoLinea(HttpPostedFileBase file) { try { //Obtengo la data del file .txt string linea = new StreamReader(file.InputStream).ReadToEnd(); var l = linea.Length; //El txt. tiene longitud variable Completo con blancos hasta Que el campo descripcion (que está al final) llegue a 33. while (linea.Length < 125) { linea = linea + " "; l = l + 1; } //Empiezo a crear variable auxiliaries para rescatar los campos de el string. var nroRegistro = Convert.ToInt32(linea.Substring(1, 11)); var nroEstablecimiento = Convert.ToInt32(linea.Substring(12, 12)); var nroTerminal = Convert.ToInt32(linea.Substring(24, 12)); //Fecha var dia = Convert.ToInt32(linea.Substring(36, 2)); var mes = Convert.ToInt32(linea.Substring(38, 2)); var anio = Convert.ToInt32(linea.Substring(40, 4)); var hora = Convert.ToInt32(linea.Substring(44, 2)); var minuto = Convert.ToInt32(linea.Substring(46, 2)); var segundo = Convert.ToInt32(linea.Substring(48, 2)); DateTime fechaCompleta = new DateTime(); if (dia != 0 && mes != 0 && anio != 0) { fechaCompleta = new DateTime(anio, mes, dia, hora, minuto, segundo); } var nroTarjeta = Convert.ToInt64(linea.Substring(50, 16)); //Importes var culture = CultureInfo.InvariantCulture; //Armo los strings para poder parsear los importes var impEntera = linea.Substring(68, 10); var impDecimal = linea.Substring(78, 2); var importe = Convert.ToDecimal(impEntera + '.' + impDecimal, culture); var descuento = Convert.ToInt32(linea.Substring(66, 2)); var impDescEntera = linea.Substring(80, 10); var impDescDecimal = linea.Substring(90, 2); var importeDescuento = Convert.ToDecimal(impDescEntera + '.' + impDescDecimal, culture); var descripcion = linea.Substring(92, 33); var comercios = _context.Comercios.ToList(); var nuevoRegistro = new VnetRegistro { Id = 0, NroRegistro = nroRegistro, NroEstablecimiento = nroEstablecimiento, NroTerminal = nroTerminal, Comercio = comercios.SingleOrDefault(c => c.Establecimiento == nroEstablecimiento), FechaHoraMov = fechaCompleta, NroTarjeta = nroTarjeta, Descuento = descuento, Importe = importe, ImporteDescuento = importeDescuento, Descripcion = descripcion }; //Guardo el Registro SaveRegistroVnet(nuevoRegistro); } catch (Exception ex) { ViewBag.mensaje = "Se produjo un error:" + ex.Message; return(View("Error", "Shared")); } var registros = _context.VnetRegistros.Include(c => c.Comercio).ToList(); return(View("Index", registros)); }