I have a object list as below:
ID Name PageOrder
1 Home 1
2 Product 2
3 Link 3
4 Help 4
Desired:
ID Name PageOrder
1 Home 1
3 Link 2
2 Product 3
4 Help 4
I’m coding this in C# as below. But I don’t think the way i do is not best pratice.
please advice.
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();
}
}
The code looks fine. As Paul said you should not use save twice. I would also be tempted to remove some duplication with the following