protected void TracksSelectionList_ItemCommand(object sender, ListViewCommandEventArgs e)
 {
     if (e.CommandName == "AddToMyPlayList")
     {
         UserPlayListTrack        item          = GetTrackFromTracksListToAddToPlayList(e.Item);
         List <UserPlayListTrack> playListItems = GetPlayListItemsFromGridView();
         bool trackAlreadyInPlaylist            = false;
         foreach (UserPlayListTrack i in playListItems)
         {
             if (item.TrackID == i.TrackID)
             {
                 trackAlreadyInPlaylist = true;
             }
         }
         if (trackAlreadyInPlaylist)
         {
             MessageUserControl.ShowInfo("", "ERROR: Cannot have duplicate tracks in playlist");
         }
         else
         {
             playListItems.Insert(0, item);
             MyPlayList.DataSource = playListItems;
             MyPlayList.DataBind();
         }
         e.Handled = true;
     }
 }
 protected void TracksSelectionList_ItemCommand(object sender, ListViewCommandEventArgs e)
 {
     if (e.CommandName == "AddToMyPlayList")
     {
         UserPlayListTrack item = GetTrackFromTracksListToAddToPlayList(e.Item);
         var playListItems      = GetPlayListItemsFromGridView();
         playListItems.Insert(0, item);
         MyPlayList.DataSource = playListItems;
         MyPlayList.DataBind();
         e.Handled = true;
     }
 }
        UserPlayListTrack GetTrackFromTracksListToAddToPlayList(ListViewItem item)
        {
            var track = new UserPlayListTrack
            {
                TrackID      = item.FindLabel("TrackIDLabel").Text.ToInt(),
                TrackNumber  = 1,
                TrackName    = item.FindLabel("NameLabel").Text,
                Milliseconds = item.FindLabel("MillisecondsLabel").Text.ToInt(),
                UnitPrice    = item.FindLabel("UnitPriceLabel").Text.ToDecimal()
            };

            return(track);
        }
        protected void MyPlayList_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int rowIndex = Convert.ToInt32(e.CommandArgument);
            List <UserPlayListTrack> playListItems = GetPlayListItemsFromGridView();
            UserPlayListTrack        playListItem  = playListItems[rowIndex];

            if (e.CommandName == "DeleteFromMyPlayList")
            {
                MessageUserControl.ShowInfo("", "MESSAGE: DeleteFromMyPlayList, index: " +
                                            rowIndex.ToString());
                playListItems.Remove(playListItem);
                resetPlayListTrackNumbers(playListItems);
                //MyPlayList.DataSourceID = "";
                MyPlayList.DataSource = playListItems;
                MyPlayList.DataBind();
                e.Handled = true;
            }
            else if (e.CommandName == "MoveUpOnMyPlayList")
            {
                MessageUserControl.ShowInfo("", "MESSAGE: MoveUpOnMyPlayList, index: " +
                                            rowIndex.ToString());
                if (rowIndex != 0)
                {
                    playListItems.Remove(playListItem);
                    playListItems.Insert(rowIndex - 1, playListItem);
                    resetPlayListTrackNumbers(playListItems);
                    //MyPlayList.DataSourceID = "";
                    MyPlayList.DataSource = playListItems;
                    MyPlayList.DataBind();
                }
                e.Handled = true;
            }
            else if (e.CommandName == "MoveDownOnMyPlayList")
            {
                MessageUserControl.ShowInfo("", "MESSAGE: MoveDownOnMyPlayList, index: " +
                                            rowIndex.ToString());
                if (rowIndex != playListItems.Count - 1)
                {
                    playListItems.Remove(playListItem);
                    playListItems.Insert(rowIndex + 1, playListItem);
                    resetPlayListTrackNumbers(playListItems);
                    //MyPlayList.DataSourceID = "";
                    MyPlayList.DataSource = playListItems;
                    MyPlayList.DataBind();
                }
            }
        }
        List <UserPlayListTrack> GetPlayListItemsFromGridView()
        {
            var list = new List <UserPlayListTrack>();

            foreach (GridViewRow row in MyPlayList.Rows)
            {
                var item = new UserPlayListTrack
                {
                    TrackID      = row.FindLabel("TrackId").Text.ToInt(),
                    TrackNumber  = row.FindLabel("TrackNumber").Text.ToInt(),
                    TrackName    = row.FindLabel("TrackName").Text,
                    Milliseconds = row.FindLabel("Milliseconds").Text.ToInt(),
                    UnitPrice    = row.FindLabel("UnitPrice").Text.ToDecimal()
                };
                list.Add(item);
            }
            return(list);
        }