void Handle(Input.MoveDown Action) { var maxSortOrder = Db.SlowSQL <Int64>("SELECT MAX(SortOrder) FROM Person p").First; //can only move down if it is not the last row if (this.SortOrder < maxSortOrder) { //swap SortOrder values, execute as an atomic operation Db.Transact(() => { var nextPerson = Db.SQL <Person>("SELECT p FROM Person p WHERE SortOrder = ?", (this.SortOrder + 1)).First; nextPerson.SortOrder = this.SortOrder; this.SortOrder = this.SortOrder + 1; }); //refresh table binding this.ParentPage.RefreshPersonList(); } }
void Handle(Input.MoveDown action) { }