protected override void OnResume() { base.OnResume(); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.SetLayoutManager(mLayoutManager); mAdapter = new CommandsListAdapter(this, script.Id); mRecyclerView.SetAdapter(mAdapter); mAdapter.ItemClick += OnItemClick; mAdapter.MoveOrderingCommand += MoveOrderingCommand; }
private void MoveOrderingCommand(object sender, int command_id) { ImageButton button = (ImageButton)sender; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { CommandModel command = db.Commands.Find(command_id); if (button.Id == Resource.Id.UpCommandOrdering) { if (db.Commands.Any(x => x.ScriptId == command.ScriptId && x.Ordering < command.Ordering)) { int exchange_order = db.Commands.Where(x => x.ScriptId == command.ScriptId && x.Ordering < command.Ordering).Max(x => x.Ordering); CommandModel command2 = db.Commands.FirstOrDefault(x => x.ScriptId == command.ScriptId && x.Ordering == exchange_order); command2.Ordering = command.Ordering; command.Ordering = exchange_order; // db.Commands.UpdateRange(command, command2); db.SaveChanges(); //mAdapter.NotifyAll(); } } else { if (db.Commands.Any(x => x.ScriptId == command.ScriptId && x.Ordering > command.Ordering)) { int exchange_order = db.Commands.Where(x => x.ScriptId == command.ScriptId && x.Ordering > command.Ordering).Min(x => x.Ordering); CommandModel command2 = db.Commands.FirstOrDefault(x => x.ScriptId == command.ScriptId && x.Ordering == exchange_order); command2.Ordering = command.Ordering; command.Ordering = exchange_order; // db.Commands.UpdateRange(command, command2); db.SaveChanges(); //mAdapter.Notify(); } } mAdapter = new CommandsListAdapter(this, script.Id); mRecyclerView.SetAdapter(mAdapter); mAdapter.ItemClick += OnItemClick; mAdapter.MoveOrderingCommand += MoveOrderingCommand; } } }