public override void Insert() { recordingDataSet = new RecordingDataSet(); recordingGateway = new RecordingGateway(Connection); labelGateway = new LabelGateway(Connection); artistGateway = new ArtistGateway(Connection); artistId = artistGateway.Insert(recordingDataSet, "Artist"); labelId = labelGateway.Insert(recordingDataSet, "Label"); recordingId = recordingGateway.Insert(recordingDataSet, "Recording Title", new DateTime(1999, 1, 12), artistId, labelId); RecordingDataSet.Recording recording = recordingGateway.FindById(recordingId, recordingDataSet); RecordingDataSet.Label label = labelGateway.FindById(labelId, recordingDataSet); RecordingDataSet.Artist artist = artistGateway.FindById(artistId, recordingDataSet); recording.Artist = artist; recording.Label = label; recordingGateway.Update(recordingDataSet); RecordingDataSet loadedDataSet = new RecordingDataSet(); loadedRecording = Catalog.FindByRecordingId(loadedDataSet, recordingId); }
public void AddReviewWithoutExistingReviewer() { int rating = 1; string content = "Review content"; RecordingDataSet.Review review = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, Recording.Id); Assert.IsNotNull(review); RecordingDataSet loadedFromDBDataSet = new RecordingDataSet(); RecordingDataSet.Recording loadedFromDBRecording = Catalog.FindByRecordingId(loadedFromDBDataSet, Recording.Id); Assert.AreEqual(1, loadedFromDBRecording.GetReviews().Length); RecordingDataSet.Review loadedFromDBReview = loadedFromDBRecording.GetReviews()[0]; ReviewGateway reviewGateway = new ReviewGateway(Connection); reviewGateway.Delete(loadedFromDBDataSet, loadedFromDBReview.Id); ReviewerGateway ReviewerGateway = new ReviewerGateway(Connection); long reviewerId = review.ReviewerId; ReviewerGateway.Delete(recordingDataSet, reviewerId); }
public override void Insert() { dataSet = builder.Make(Connection); recording = dataSet.Recordings[0]; CustomizeRecording(); }
public void Delete(RecordingDataSet recordingDataSet, long recordingId) { RecordingDataSet.Recording loadedRecording = FindById(recordingId, recordingDataSet); loadedRecording.Delete(); adapter.Update(recordingDataSet, recordingDataSet.Recordings.TableName); }
public void AverageRatingZero() { RecordingDataSet dataSet = new RecordingDataSet(); RecordingDataSet.Recording recording = dataSet.Recordings.NewRecording(); recording.Id = 1; recording.Title = "Title"; recording.ReleaseDate = DateTime.Today; RecordingDataSet.Label label = dataSet.Labels.NewLabel(); label.Id = 1; label.Name = "Label"; dataSet.Labels.AddLabel(label); RecordingDataSet.Artist artist = dataSet.Artists.NewArtist(); artist.Id = 1; artist.Name = "Artist"; dataSet.Artists.AddArtist(artist); recording.Label = label; recording.Artist = artist; dataSet.Recordings.AddRecording(recording); RecordingDto dto = RecordingAssembler.WriteDto(recording); Assert.AreEqual(0, dto.averageRating); }
public override void Insert() { recordingDataSet = new RecordingDataSet(); recordingGateway = new RecordingGateway(Connection); trackGateway = new TrackGateway(Connection); reviewGateway = new ReviewGateway(Connection); reviewerGateway = new ReviewerGateway(Connection); labelGateway = new LabelGateway(Connection); artistGateway = new ArtistGateway(Connection); genreGateway = new GenreGateway(Connection); artistId = artistGateway.Insert(recordingDataSet, "Artist"); labelId = labelGateway.Insert(recordingDataSet, "Label"); genreId = genreGateway.Insert(recordingDataSet, "Genre"); reviewerId = reviewerGateway.Insert(recordingDataSet, "Reviewer"); recordingId = recordingGateway.Insert(recordingDataSet, "Recording Title", new DateTime(1999, 1, 12), artistId, labelId); reviewId = reviewGateway.Insert(recordingDataSet, 1, "Review"); trackId = trackGateway.Insert(recordingDataSet, "Track Title", 120); RecordingDataSet.Recording recording = recordingGateway.FindById(recordingId, recordingDataSet); RecordingDataSet.Review review = reviewGateway.FindById(reviewId, recordingDataSet); RecordingDataSet.Track track = trackGateway.FindById(trackId, recordingDataSet); RecordingDataSet.Label label = labelGateway.FindById(labelId, recordingDataSet); RecordingDataSet.Genre genre = genreGateway.FindById(genreId, recordingDataSet); RecordingDataSet.Artist artist = artistGateway.FindById(artistId, recordingDataSet); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); // setup the relationships recording.Artist = artist; recording.Label = label; track.Recording = recording; track.Artist = artist; track.Genre = genre; review.Recording = recording; review.Reviewer = reviewer; recordingGateway.Update(recordingDataSet); trackGateway.Update(recordingDataSet); reviewGateway.Update(recordingDataSet); RecordingDataSet loadedDataSet = new RecordingDataSet(); loadedRecording = Catalog.FindByRecordingId(loadedDataSet, recordingId); }
public new void SetUp() { base.SetUp(); RecordingDataSet loadedDataSet = new RecordingDataSet(); loadedRecording = Catalog.FindByRecordingId(loadedDataSet, Recording.Id); }
public void SetUp() { // create a test recording in memory recording = InMemoryRecordingBuilder.Make(); service = new StubCatalogService(recording); dto = service.FindByRecordingId(recording.Id); }
private static void WriteReviews(RecordingDto recordingDto, RecordingDataSet.Recording recording) { recordingDto.reviews = new ReviewDto[recording.GetReviews().Length]; int index = 0; foreach (RecordingDataSet.Review review in recording.GetReviews()) { recordingDto.reviews[index++] = WriteReview(review); } }
public RecordingDto FindByRecordingId(long id) { RecordingDataSet.Recording recording = FindById(id); if (recording == null) { return(null); } return(RecordingAssembler.WriteDto(recording)); }
public static RecordingDataSet.Review AddReview(RecordingDataSet dataSet, string name, string content, int rating, long recordingId) { SqlConnection connection = null; RecordingDataSet.Review review = null; try { connection = new SqlConnection( ConfigurationSettings.AppSettings.Get("Catalog.Connection")); connection.Open(); RecordingDataSet.Recording recording = FindByRecordingId(dataSet, recordingId); ReviewerGateway reviewerGateway = new ReviewerGateway(connection); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindByName(name, dataSet); if (reviewer == null) { long reviewerId = reviewerGateway.Insert(dataSet, name); reviewer = reviewerGateway.FindById(reviewerId, dataSet); } foreach (RecordingDataSet.Review existingReview in recording.GetReviews()) { if (existingReview.Reviewer.Name.Equals(name)) { throw new ExistingReviewException(existingReview.Id); } } ReviewGateway reviewGateway = new ReviewGateway(connection); long reviewId = reviewGateway.Insert(dataSet, rating, content); review = reviewGateway.FindById(reviewId, dataSet); review.ReviewerId = reviewer.Id; review.Recording = recording; reviewGateway.Update(dataSet); } finally { if (connection != null) { connection.Close(); } } return(review); }
private static void WriteTotalRuntime(RecordingDto dto, RecordingDataSet.Recording recording) { int runTime = 0; foreach (RecordingDataSet.Track track in recording.GetTracks()) { runTime += track.Duration; } dto.totalRunTime = runTime; }
WriteTracks(RecordingDto recordingDto, RecordingDataSet.Recording recording) { recordingDto.tracks = new TrackDto[recording.GetTracks().Length]; int index = 0; foreach (RecordingDataSet.Track track in recording.GetTracks()) { recordingDto.tracks[index++] = WriteTrack(track); } }
public void AddReviewWithoutExistingReviewer() { int rating = 1; string content = "Review content"; RecordingDataSet.Review review = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, recordingId); Assert.IsNotNull(review); RecordingDataSet loadedFromDBDataSet = new RecordingDataSet(); RecordingDataSet.Recording loadedFromDBRecording = Catalog.FindByRecordingId(loadedFromDBDataSet, recordingId); Assert.AreEqual(1, loadedFromDBRecording.GetReviews().Length); }
public RecordingDataSet.Recording FindById(long recordingId, RecordingDataSet recordingDataSet) { command.Parameters["@id"].Value = recordingId; adapter.Fill(recordingDataSet, recordingDataSet.Recordings.TableName); DataRow[] rows = recordingDataSet.Recordings.Select(String.Format("id={0}", recordingId)); if (rows.Length < 1) { return(null); } RecordingDataSet.Recording recording = (RecordingDataSet.Recording)rows[0]; return(recording); }
public void CheckDelete() { RecordingDataSet emptyDataSet = new RecordingDataSet(); long deletedRecordingId = recordingGateway.Insert(emptyDataSet, "Deleted Title", new DateTime(1991, 8, 6), Builder.ArtistId, Builder.LabelId); recordingGateway.Delete(emptyDataSet, deletedRecordingId); RecordingDataSet.Recording deleletedRecording = recordingGateway.FindById(deletedRecordingId, emptyDataSet); Assert.IsNull(deleletedRecording); }
public void RetrieveRecordingFromDatabase() { RecordingDataSet loadedFromDB = new RecordingDataSet(); RecordingDataSet.Recording loadedRecording = recordingGateway.FindById(Builder.RecordingId, loadedFromDB); Assert.AreEqual(Builder.RecordingId, loadedRecording.Id); Assert.AreEqual(Builder.Title, loadedRecording.Title); Assert.AreEqual(Builder.ReleaseDate, loadedRecording.ReleaseDate); Assert.AreEqual(Builder.ArtistId, loadedRecording.ArtistId); Assert.AreEqual(Builder.LabelId, loadedRecording.LabelId); }
public void Execute() { SqlConnection connection = TransactionManager.Transaction().Connection; RecordingGateway recordingGateway = new RecordingGateway(connection); recording = recordingGateway.FindById(recordingId, dataSet); if (recording == null) { return; } long artistId = recording.ArtistId; ArtistGateway artistGateway = new ArtistGateway(connection); RecordingDataSet.Artist artist = artistGateway.FindById(artistId, dataSet); long labelId = recording.LabelId; LabelGateway labelGateway = new LabelGateway(connection); RecordingDataSet.Label label = labelGateway.FindById(labelId, dataSet); GenreGateway genreGateway = new GenreGateway(connection); TrackGateway trackGateway = new TrackGateway(connection); foreach (RecordingDataSet.Track track in trackGateway.FindByRecordingId(recordingId, dataSet)) { artistId = track.ArtistId; long genreId = track.GenreId; artist = artistGateway.FindById(artistId, dataSet); RecordingDataSet.Genre genre = genreGateway.FindById(genreId, dataSet); } ReviewGateway reviewGateway = new ReviewGateway(connection); ReviewerGateway reviewerGateway = new ReviewerGateway(connection); foreach (RecordingDataSet.Review review in reviewGateway.FindByRecordingId(recordingId, dataSet)) { long reviewerId = review.ReviewerId; RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, dataSet); } }
public RecordingDto FindByRecordingId(long id) { RecordingDataSet dataSet = new RecordingDataSet(); RecordingDataSet.Recording recording = Catalog.FindByRecordingId(dataSet, id); if (recording == null) { return(null); } return(RecordingAssembler.WriteDto(recording)); }
public void UpdateReleaseDateFieldInRecording() { DateTime modifiedDate = new DateTime(1989, 5, 15); RecordingDataSet.Recording recording = Recording; recording.ReleaseDate = modifiedDate; recordingGateway.Update(RecordingDataSet); RecordingDataSet updatedDataSet = new RecordingDataSet(); RecordingDataSet.Recording updatedRecording = recordingGateway.FindById(Builder.RecordingId, updatedDataSet); Assert.AreEqual(modifiedDate, updatedRecording.ReleaseDate); }
public void UpdateTitleFieldInRecording() { string modifiedTitle = "Modified Title"; RecordingDataSet.Recording recording = Recording; recording.Title = modifiedTitle; recordingGateway.Update(RecordingDataSet); RecordingDataSet updatedDataSet = new RecordingDataSet(); RecordingDataSet.Recording updatedRecording = recordingGateway.FindById(Builder.RecordingId, updatedDataSet); Assert.AreEqual(modifiedTitle, updatedRecording.Title); }
private static void WriteAverageRating(RecordingDto recordingDto, RecordingDataSet.Recording recording) { if (recording.GetReviews().Length == 0) { recordingDto.averageRating = 0; } else { int totalRating = 0; foreach (RecordingDataSet.Review review in recording.GetReviews()) { totalRating += review.Rating; } recordingDto.averageRating = totalRating / recording.GetReviews().Length; } }
public long Insert(RecordingDataSet recordingDataSet, string title, DateTime releaseDate, long artistId, long labelId) { long recordingId = IdGenerator.GetNextId(recordingDataSet.Recordings.TableName, connection); RecordingDataSet.Recording recordingRow = recordingDataSet.Recordings.NewRecording(); recordingRow.Id = recordingId; recordingRow.Title = title; recordingRow.ReleaseDate = releaseDate; recordingRow.ArtistId = artistId; recordingRow.LabelId = labelId; recordingDataSet.Recordings.AddRecording(recordingRow); adapter.Update(recordingDataSet, recordingDataSet.Recordings.TableName); return(recordingId); }
WriteDto(RecordingDataSet.Recording recording) { RecordingDto dto = new RecordingDto(); dto.id = recording.Id; dto.title = recording.Title; dto.releaseDate = recording.ReleaseDate.ToShortDateString(); dto.artistName = recording.Artist.Name; dto.labelName = recording.Label.Name; WriteTracks(dto, recording); WriteTotalRuntime(dto, recording); WriteReviews(dto, recording); WriteAverageRating(dto, recording); return(dto); }
public void AddTwoReviewsWithExistingReviewer() { int rating = 1; string content = "Review content"; ReviewerGateway reviewerGateway = new ReviewerGateway(Connection); long reviewerId = reviewerGateway.Insert(recordingDataSet, reviewerName); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); RecordingDataSet.Review reviewOne = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, Recording.Id); try { RecordingDataSet.Review reviewTwo = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, Recording.Id); Assert.Fail("Expected an ExistingReviewException"); } catch (ExistingReviewException exception) { Assert.AreEqual(reviewOne.Id, exception.ExistingId); } finally { RecordingDataSet dbDataSet = new RecordingDataSet(); RecordingDataSet.Recording dbRecording = Catalog.FindByRecordingId(dbDataSet, Recording.Id); RecordingDataSet.Review[] reviews = dbRecording.GetReviews(); ReviewGateway reviewGateway = new ReviewGateway(Connection); foreach (RecordingDataSet.Review existingReview in reviews) { reviewGateway.Delete(dbDataSet, existingReview.Id); } reviewerGateway.Delete(recordingDataSet, reviewerId); } }
public void AddReviewWithExistingReviewer() { int rating = 1; string content = "Review content"; ReviewerGateway reviewerGateway = new ReviewerGateway(Connection); long reviewerId = reviewerGateway.Insert(recordingDataSet, reviewerName); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); RecordingDataSet.Review review = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, recordingId); Assert.IsNotNull(review); RecordingDataSet loadedFromDBDataSet = new RecordingDataSet(); RecordingDataSet.Recording loadedFromDBRecording = Catalog.FindByRecordingId(loadedFromDBDataSet, recordingId); Assert.AreEqual(1, loadedFromDBRecording.GetReviews().Length); }
public void DeleteReview() { int rating = 1; string content = "Review content"; ReviewerGateway reviewerGateway = new ReviewerGateway(Connection); long reviewerId = reviewerGateway.Insert(recordingDataSet, reviewerName); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); RecordingDataSet.Review review = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, recordingId); Catalog.DeleteReview(review.Id); RecordingDataSet loadedFromDB = new RecordingDataSet(); RecordingDataSet.Recording loadedFromDBRecording = Catalog.FindByRecordingId(loadedFromDB, recordingId); Assert.AreEqual(0, loadedFromDBRecording.GetReviews().Length); }
public void Execute() { SqlConnection connection = TransactionManager.Transaction().Connection; RecordingDataSet.Recording recording = FindByRecordingId(dataSet, recordingId); ReviewerGateway reviewerGateway = new ReviewerGateway(connection); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindByName(name, dataSet); if (reviewer == null) { long reviewerId = reviewerGateway.Insert(dataSet, name); reviewer = reviewerGateway.FindById(reviewerId, dataSet); } foreach (RecordingDataSet.Review existingReview in recording.GetReviews()) { if (existingReview.Reviewer.Name.Equals(name)) { throw new ExistingReviewException(existingReview.Id); } } ReviewGateway reviewGateway = new ReviewGateway(connection); long reviewId = reviewGateway.Insert(dataSet, rating, content); review = reviewGateway.FindById(reviewId, dataSet); review.ReviewerId = reviewer.Id; review.Recording = recording; reviewGateway.Update(dataSet); }
public void SetUp() { recording = InMemoryRecordingBuilder.Make(); service = new StubCatalogService(recording); dto = service.FindByRecordingId(recording.Id); }
public StubCatalogService(RecordingDataSet.Recording recording) { this.recording = recording; }
public static RecordingDataSet.Recording FindByRecordingId( RecordingDataSet recordingDataSet, long recordingId) { SqlConnection connection = null; RecordingDataSet.Recording recording = null; try { connection = new SqlConnection( ConfigurationSettings.AppSettings.Get("Catalog.Connection")); connection.Open(); RecordingGateway recordingGateway = new RecordingGateway(connection); recording = recordingGateway.FindById(recordingId, recordingDataSet); if (recording != null) { long artistId = recording.ArtistId; ArtistGateway artistGateway = new ArtistGateway(connection); RecordingDataSet.Artist artist = artistGateway.FindById(artistId, recordingDataSet); long labelId = recording.LabelId; LabelGateway labelGateway = new LabelGateway(connection); RecordingDataSet.Label label = labelGateway.FindById(labelId, recordingDataSet); GenreGateway genreGateway = new GenreGateway(connection); TrackGateway trackGateway = new TrackGateway(connection); foreach (RecordingDataSet.Track track in trackGateway.FindByRecordingId(recordingId, recordingDataSet)) { artistId = track.ArtistId; long genreId = track.GenreId; artist = artistGateway.FindById(artistId, recordingDataSet); RecordingDataSet.Genre genre = genreGateway.FindById(genreId, recordingDataSet); } ReviewGateway reviewGateway = new ReviewGateway(connection); ReviewerGateway reviewerGateway = new ReviewerGateway(connection); foreach (RecordingDataSet.Review review in reviewGateway.FindByRecordingId(recordingId, recordingDataSet)) { long reviewerId = review.ReviewerId; RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); } } } finally { if (connection != null) { connection.Close(); } } return(recording); }
public void SetUp_a_known_recording_then_verify_it_brings_back_the_same_data() { recordingDataSet = new RecordingDataSet(); recordingGateway = new RecordingGateway(Connection); trackGateway = new TrackGateway(Connection); reviewGateway = new ReviewGateway(Connection); reviewerGateway = new ReviewerGateway(Connection); labelGateway = new LabelGateway(Connection); artistGateway = new ArtistGateway(Connection); genreGateway = new GenreGateway(Connection); artistId = artistGateway.Insert(recordingDataSet, "Artist"); labelId = labelGateway.Insert(recordingDataSet, "Label"); genreId = genreGateway.Insert(recordingDataSet, "Genre"); reviewerId = reviewerGateway.Insert(recordingDataSet, "Reviewer"); recordingId = recordingGateway.Insert(recordingDataSet, "Recording Title", new DateTime(1999, 1, 12), artistId, labelId); reviewId = reviewGateway.Insert(recordingDataSet, 1, "Review"); trackId1 = trackGateway.Insert(recordingDataSet, "Track Title", 120); trackId2 = trackGateway.Insert(recordingDataSet, "Track Title", 130); RecordingDataSet.Recording recording = recordingGateway.FindById(recordingId, recordingDataSet); RecordingDataSet.Review review = reviewGateway.FindById(reviewId, recordingDataSet); RecordingDataSet.Track track1 = trackGateway.FindById(trackId1, recordingDataSet); RecordingDataSet.Track track2 = trackGateway.FindById(trackId2, recordingDataSet); RecordingDataSet.Label label = labelGateway.FindById(labelId, recordingDataSet); RecordingDataSet.Genre genre = genreGateway.FindById(genreId, recordingDataSet); RecordingDataSet.Artist artist = artistGateway.FindById(artistId, recordingDataSet); RecordingDataSet.Reviewer reviewer = reviewerGateway.FindById(reviewerId, recordingDataSet); // setup the relationships recording.Artist = artist; recording.Label = label; track1.Recording = recording; track1.Artist = artist; track1.Genre = genre; track2.Recording = recording; track2.Artist = artist; track2.Genre = genre; review.Recording = recording; review.Reviewer = reviewer; // only these as they are in the 'middle' and depend?? recordingGateway.Update(recordingDataSet); trackGateway.Update(recordingDataSet); reviewGateway.Update(recordingDataSet); RecordingDataSet loadedDataSet = new RecordingDataSet(); loadedRecording = Catalog.FindByRecordingId(loadedDataSet, recordingId); }
public void SetUp() { recording = InMemoryRecordingBuilder.Make(); dto = RecordingAssembler.WriteDto(recording); }
public void SetUp() { dataSet = builder.make_sample_recording_with_artist_id_and_label_id_and_insert_into_database(Connection); recording = dataSet.Recordings[0]; }
public void SetUp() { recording = InMemoryRecordingBuilder.Make(); dto = RecordingAssembler.WriteDto(recording); }