public async Task <ActionResult <object> > organizar([FromBody] Organizable o) { using (var dbContextTransaction = _context.Database.BeginTransaction()) { try { var l = await _bodega4.organizar(o); var largo = l.ToArray().Length; l.Select(p => { _context.Movimientos.Add(p); _context.SaveChanges(); return(1); }) .Aggregate((t, n) => { t = t + n; if (t == largo) { dbContextTransaction.Commit(); } return(t); }); } catch (Exception e) { dbContextTransaction.Rollback(); return(StatusCode(500, new { mensaje = "Ocurrió un error al realizar el movimiento: " + e.Message, Status = "ERR" })); } return(Ok(new { mensaje = "El tunel ha sido organizado", Status = "OK" })); } }
public ActionResult migracion([FromBody] migrationModel[] listado) { _context.Movimientos.RemoveRange(_context.Movimientos); _context.Paquetes.RemoveRange(_context.Paquetes); //por cada paquete int l = listado.Length; int c = 0; foreach (migrationModel item in listado) { c++; Movimientos ingreso = new Movimientos(); ingreso.Paquetes = new Paquetes(); ingreso.Paquetes.Lote = item.lote; ingreso.Paquetes.Bultos = item.bultos; Console.WriteLine(c + "/" + l + " pr: " + item.codigo_producto); ingreso.Paquetes.Producto = _context.Productos.First(p => p.CodigoProvidencia == item.codigo_producto); ingreso.Paquetes.Cliente = _context.Clientes.First(c => c.Nombre == item.cliente); _context.Paquetes.Add(ingreso.Paquetes); ingreso.Fecha = item.fechaingreso; ingreso.Nivel = item.nivel; ingreso.Columna = item.columna; ingreso.Posicion = item.posicion; ingreso.Sentido = 1; ingreso.Usuarios = _context.Usuarios.Find(16); _context.Movimientos.Add(ingreso); _context.SaveChanges(); } return(Ok(new { largo = listado.Length })); }