private void LoadAlbumUrls(Album album) { MsSql db = new MsSql(_connectionString); SqlCommand command = db.GetNewCommand("GetAlbumUrls", CommandType.StoredProcedure); try { command.Parameters.Add("@AlbumId", SqlDbType.BigInt).Value = album.Id; db.AddErrorHandlingParamsToSqlCommand(command); SqlDataReader reader = command.ExecuteReader(); try { int ordId = reader.GetOrdinal("Id"); int ordDisplayText = reader.GetOrdinal("DisplayText"); int ordUrl = reader.GetOrdinal("Url"); while (reader.Read()) { album.ListenUrls.Add(new DynamicUrl() { DisplayText = reader.GetString(ordDisplayText), Url = reader.GetString(ordUrl) }); } } finally { reader.Close(); } db.FreeCommand(command); } catch (Exception ex) { db.FreeCommand(command, false); throw ex; } }
public ViewAlbum() { Album = new Album(); ImageRelativeDirPath = string.Empty; }
private void LoadPodcastAlbums(PodcastArticle article) { MsSql db = new MsSql(_connectionString); SqlCommand command = db.GetNewCommand("GetPodcastAlbums", CommandType.StoredProcedure); try { command.Parameters.Add("@ArticleId", SqlDbType.BigInt).Value = article.Id; db.AddErrorHandlingParamsToSqlCommand(command); SqlDataReader reader = command.ExecuteReader(); try { int ordId = reader.GetOrdinal("Id"); int ordArtist = reader.GetOrdinal("Artist"); int ordCaption = reader.GetOrdinal("Caption"); int ordCoverImageFileName = reader.GetOrdinal("CoverImageFileName"); int ordLabel = reader.GetOrdinal("Label"); int ordTitle = reader.GetOrdinal("Title"); int ordYear = reader.GetOrdinal("Year"); const int EXPECTED_ALBUM_COUNT = 2; int albumCount = 0; while (reader.Read()) { //Increment our album counter albumCount++; //Make sure that we haven't surpassed the expected album count if (albumCount > EXPECTED_ALBUM_COUNT) throw new PodcastAlbumCountException(albumCount, EXPECTED_ALBUM_COUNT); Album newAlbum = new Album() { Artist = reader.GetString(ordArtist), Caption = reader.GetString(ordCaption), CoverImageFileName = reader.GetString(ordCoverImageFileName), Id = reader.GetInt64(ordId), Label = reader.GetString(ordLabel), Title = reader.GetString(ordTitle), Year = reader.GetInt32(ordYear) }; //Get listen URLs for the album LoadAlbumUrls(newAlbum); //Assign the album to the provided article if (albumCount == 1) { //Podcast album #1 article.Album1 = newAlbum; } else { //Podcast album #2 article.Album2 = newAlbum; } } if (albumCount != EXPECTED_ALBUM_COUNT) throw new PodcastAlbumCountException(albumCount, EXPECTED_ALBUM_COUNT); } finally { reader.Close(); } db.FreeCommand(command); } catch (Exception ex) { db.FreeCommand(command, false); throw ex; } }