私は以下のようなオブジェクトリストを持っています:
ID Name PageOrder
1 Home 1
2 Product 2
3 Link 3
4 Help 4
希望:
ID Name PageOrder
1 Home 1
3 Link 2
2 Product 3
4 Help 4
以下のようにC#でコーディングしています。しかし、私がやっている方法がベストプラクティスではないとは思いません。ご意見をお聞かせください。
public void OrderUp(int favouriteId)
{
UsFavourite currentFav = db.UsFavourites.FirstOrDefault(m => m.FavouriteID == favouriteId);
// Get favourite by current favourite's order - 1
UsFavourite tempFav = db.UsFavourites.FirstOrDefault(m => m.FavouriteOrder == (currentFav.FavouriteOrder - 1));
if (tempFav != null)
{
//update tempFav
tempFav.FavouriteOrder = currentFav.FavouriteOrder;
Save();
//update currentFav
currentFav.FavouriteOrder = currentFav.FavouriteOrder - 1;
Save();
}
}
public void OrderDown(int favouriteId)
{
UsFavourite currentFav = db.UsFavourites.FirstOrDefault(m => m.FavouriteID == favouriteId);
// Get favourite by current favourite's order + 1
UsFavourite tempFav = db.UsFavourites.FirstOrDefault(m => m.FavouriteOrder == (currentFav.FavouriteOrder + 1));
if (tempFav != null)
{
//update tempFav
tempFav.FavouriteOrder = currentFav.FavouriteOrder;
Save();
//update currentFav
currentFav.FavouriteOrder = currentFav.FavouriteOrder + 1;
Save();
}
}