public async Task <IActionResult> AsignarUbicacion(InventarioForAssingment inventarioGeneral) { var createdInventario = await _repoInventario.AssignarUbicacion(inventarioGeneral); return(Ok(createdInventario)); }
public async Task <long> AssignarUbicacion(InventarioForAssingment command) { string query = ""; InventarioGeneral dominio = null; Ubicacion dominio_ubicacion = null; //Ubicacion dominio_ubicacionanterior = null; dominio_ubicacion = await _context.Ubicacion.SingleOrDefaultAsync(x => x.Id == command.UbicacionId); if (command.Id.Split(',').Length > 0) { using (var transaction = _context.Database.BeginTransaction()) { //Ver nivel de ocupabilidad; query = string.Format("update inventario.invlod" + " set UbicacionProxId = '{0}' " + " where id in ({1}) Select * from inventario.invlod where id in ({1}) ", command.UbicacionId.ToString(), command.Id); try { var resp = _context.InvLod .FromSql(query) .ToList(); dominio_ubicacion.EstadoId = 17; //Parcial await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(command.UbicacionId); } } else { dominio = await _context.InventarioGeneral.SingleOrDefaultAsync(x => x.Id == Convert.ToInt64(command.Id)); // if(dominio.UbicacionIdProx != null) // { // dominio_ubicacionanterior = await _context.Ubicacion.SingleOrDefaultAsync(x=>x.Id == dominio.UbicacionIdProx); // dominio_ubicacionanterior.EstadoId = 10;// Liberarlo // } using (var transaction = _context.Database.BeginTransaction()) { dominio_ubicacion.EstadoId = 11; //Separarlo // dominio.UbicacionIdProx = command.UbicacionId; try { await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(dominio.Id); } } }