private void cargarToolStripMenuItem_Click(object sender, EventArgs e) { Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "xls files (*.xls)|*.xls"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { var cambios = 0; if ((myStream = openFileDialog1.OpenFile()) != null) { var reader = new StreamReader(myStream); while (!reader.EndOfStream) { var line = reader.ReadLine(); var values = line.Split('\t'); DateTime fecha; if (values.Length > 0 && DateTime.TryParse(values[0], out fecha)) { var tipo = (values[1] == "Venta" ? Dominio.Enum.Tipo.Salida : Dominio.Enum.Tipo.Entrada); var cantidad = int.Parse(values[3].Split(',')[0].Replace(".", "")) * (tipo == Dominio.Enum.Tipo.Entrada ? 1 : -1); var precioUnitario = decimal.Parse(values[4].Replace("$", "")); var precioNeto = decimal.Parse(values[8].Replace("$", "")) * (tipo == Dominio.Enum.Tipo.Entrada ? -1 : 1); var movimiento = new Movimiento { Fecha = fecha, Cantidad = cantidad, PrecioUnitario = precioUnitario, PrecioNeto = precioNeto, Tipo = tipo }; cambios = repositorio.InsertarMovimiento(values[2], movimiento) ? 1 : 0; } } } MessageBox.Show(String.Format("Se insertaron {0} movimientos", cambios.ToString())); } catch (Exception ex) { MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } }
public ActionResult IngresarDatos(HttpPostedFileBase file) { var mensaje = ""; if (file != null && User.Identity.IsAuthenticated) { try { var cambios = 0; if (file.InputStream != null) { var reader = new StreamReader(file.InputStream); while (!reader.EndOfStream) { var line = reader.ReadLine(); var values = line.Split('\t'); DateTime fecha; if (values.Length > 0 && DateTime.TryParse(values[0], CultureInfo.GetCultureInfo("es-AR"), DateTimeStyles.None, out fecha)) { var tipo = (values[1] == "Venta" ? Tipo.Salida : Dominio.Enum.Tipo.Entrada); var cantidad = int.Parse(values[3].Split(',')[0], NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands, CultureInfo.GetCultureInfo("es-AR")) * (tipo == Dominio.Enum.Tipo.Entrada ? 1 : -1); var precioUnitario = decimal.Parse(values[4].Replace("$", ""), CultureInfo.GetCultureInfo("es-AR")); var precioNeto = decimal.Parse(values[9].Replace("$", ""), CultureInfo.GetCultureInfo("es-AR")) * (tipo == Tipo.Entrada ? -1 : 1); var movimiento = new Movimiento { Fecha = fecha, Cantidad = cantidad, PrecioUnitario = precioUnitario, PrecioNeto = precioNeto, Tipo = tipo }; cambios += servicio.InsertarMovimiento(values[2], movimiento, User.Identity.Name) ? 1 : 0; } } } mensaje += $"Se insertaron {cambios} movimientos"; } catch (Exception ex) { mensaje = ex.Message; } } return(RedirectToAction("Index", "Home", new { mensaje })); }