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); }