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()
    {
        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 ReviewDto AddReview(string reviewerName, string content,
                                   int rating, long recordingId)
        {
            RecordingDataSet.Review review = AddReviewToRecording(reviewerName,
                                                                  content, rating, recordingId);

            return(RecordingAssembler.WriteReview(review));
        }
        public override void CustomizeRecording()
        {
            reviewGateway = new ReviewGateway(Connection);

            reviewId = reviewGateway.Insert(RecordingDataSet, 1, "Review");
            RecordingDataSet.Review review = reviewGateway.FindById(reviewId, RecordingDataSet);
            review.Recording = Recording;
            reviewGateway.Update(RecordingDataSet);
        }
        public void DeleteReviewFromDatabase()
        {
            RecordingDataSet emptyDataSet    = new RecordingDataSet();
            long             deletedReviewId = gateway.Insert(emptyDataSet, 1, "Deleted Review");

            gateway.Delete(emptyDataSet, deletedReviewId);

            RecordingDataSet.Review deleletedReview = gateway.FindById(deletedReviewId, emptyDataSet);
            Assert.IsNull(deleletedReview);
        }
        public void RetrieveReviewFromDatabase()
        {
            RecordingDataSet loadedFromDB = new RecordingDataSet();

            RecordingDataSet.Review loadedReview = gateway.FindById(reviewId, loadedFromDB);

            Assert.AreEqual(reviewId, loadedReview.Id);
            Assert.AreEqual(rating, loadedReview.Rating);
            Assert.AreEqual(content, loadedReview.Content);
        }
        public ReviewDto AddReview(string reviewerName, string content,
                                   int rating, long recordingId)
        {
            RecordingDataSet dataSet = new RecordingDataSet();

            RecordingDataSet.Review review = Catalog.AddReview(dataSet,
                                                               reviewerName, content, rating, recordingId);

            return(RecordingAssembler.WriteReview(review));
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        public static ReviewDto WriteReview(RecordingDataSet.Review review)
        {
            ReviewDto reviewDto = new ReviewDto();

            reviewDto.id            = review.Id;
            reviewDto.reviewContent = review.Content;
            reviewDto.rating        = review.Rating;
            reviewDto.reviewerName  = review.Reviewer.Name;

            return(reviewDto);
        }
        public new void SetUp()
        {
            base.SetUp();

            reviewGateway = new ReviewGateway(Connection);

            reviewId = reviewGateway.Insert(RecordingDataSet, 1, "Review");
            RecordingDataSet.Review review = reviewGateway.FindById(reviewId, RecordingDataSet);
            review.Recording = Recording;
            reviewGateway.Update(RecordingDataSet);
        }
        FindById(long reviewId, RecordingDataSet recordingDataSet)
        {
            reviewCommand.Parameters["@id"].Value = reviewId;
            reviewAdapter.Fill(recordingDataSet, recordingDataSet.Reviews.TableName);
            DataRow[] rows = recordingDataSet.Reviews.Select(String.Format("id={0}", reviewId));
            if (rows.Length < 1)
            {
                return(null);
            }

            RecordingDataSet.Review review = (RecordingDataSet.Review)rows[0];
            return(review);
        }
    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 void UpdateRatingFieldInReview()
        {
            int modifiedRating = 2;

            RecordingDataSet.Review review = recordingDataSet.Reviews[0];
            review.Rating = modifiedRating;
            gateway.Update(recordingDataSet);

            RecordingDataSet updatedDataSet = new RecordingDataSet();

            RecordingDataSet.Review updatedReview = gateway.FindById(reviewId, updatedDataSet);
            Assert.AreEqual(modifiedRating, updatedReview.Rating);
        }
        public void UpdateReviewFieldInReview()
        {
            string modifiedContent = "Modified Content";

            RecordingDataSet.Review review = recordingDataSet.Reviews[0];
            review.Content = modifiedContent;
            gateway.Update(recordingDataSet);

            RecordingDataSet updatedDataSet = new RecordingDataSet();

            RecordingDataSet.Review updatedReview = gateway.FindById(reviewId, updatedDataSet);
            Assert.AreEqual(modifiedContent, updatedReview.Content);
        }
        public long Insert(RecordingDataSet recordingDataSet, int rating, string content)
        {
            long reviewId = IdGenerator.GetNextId(recordingDataSet.Reviews.TableName, connection);

            RecordingDataSet.Review reviewRow = recordingDataSet.Reviews.NewReview();

            reviewRow.Id      = reviewId;
            reviewRow.Rating  = rating;
            reviewRow.Content = content;

            recordingDataSet.Reviews.AddReview(reviewRow);

            reviewAdapter.Update(recordingDataSet, recordingDataSet.Reviews.TableName);

            return(reviewId);
        }
Exemple #16
0
        public void MakeReview()
        {
            RecordingDataSet recordingDataSet = new RecordingDataSet();

            reviewer      = recordingDataSet.Reviewers.NewReviewer();
            reviewer.Id   = 1;
            reviewer.Name = "Reviewer";
            recordingDataSet.Reviewers.AddReviewer(reviewer);

            review          = recordingDataSet.Reviews.NewReview();
            review.Id       = 1;
            review.Content  = "Review Content";
            review.Rating   = 2;
            review.Reviewer = reviewer;
            recordingDataSet.Reviews.AddReview(review);

            reviewDto = RecordingAssembler.WriteReview(review);
        }
        public void MakeReview()
        {
            RecordingDataSet recordingDataSet = new RecordingDataSet();

            reviewer = recordingDataSet.Reviewers.NewReviewer();
            reviewer.Id = 1;
            reviewer.Name = "Reviewer";
            recordingDataSet.Reviewers.AddReviewer(reviewer);

            review = recordingDataSet.Reviews.NewReview();
            review.Id = 1;
            review.Content = "Review Content";
            review.Rating = 2;
            review.Reviewer = reviewer;
            recordingDataSet.Reviews.AddReview(review);

            reviewDto = RecordingAssembler.WriteReview(review);
        }
Exemple #18
0
    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 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, recordingId);

        try
        {
            RecordingDataSet.Review reviewTwo = Catalog.AddReview(recordingDataSet, reviewerName, content, rating, recordingId);
            Assert.Fail("Expected an ExistingReviewException");
        }
        catch (ExistingReviewException exception)
        {
            Assert.AreEqual(reviewOne.Id, exception.ExistingId);
        }
    }
            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 ReviewerId()
        {
            RecordingDataSet recordingDataSet = new RecordingDataSet();

            ReviewGateway reviewGateway = new ReviewGateway(Connection);
            long          reviewId      =
                reviewGateway.Insert(recordingDataSet, 1, "Review Content");

            ReviewerGateway reviewerGateway =
                new ReviewerGateway(Connection);
            long reviewerId =
                reviewerGateway.Insert(recordingDataSet, "Reviewer Name");

            RecordingDataSet.Review review =
                reviewGateway.FindById(reviewId, recordingDataSet);

            review.ReviewerId = reviewerId;
            reviewGateway.Update(recordingDataSet);

            Assert.AreEqual(reviewerId, review.Reviewer.Id);

            reviewGateway.Delete(recordingDataSet, reviewId);
            reviewerGateway.Delete(recordingDataSet, reviewerId);
        }
Exemple #24
0
    public static RecordingDataSet.Recording Make()
    {
        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);

        RecordingDataSet.Genre genre = dataSet.Genres.NewGenre();
        genre.Id   = 1;
        genre.Name = "Genre";
        dataSet.Genres.AddGenre(genre);

        int       trackCount = 2;
        ArrayList tracks     = new ArrayList(trackCount);

        for (int i = 0; i < trackCount; i++)
        {
            RecordingDataSet.Track track = dataSet.Tracks.NewTrack();
            track.Recording = recording;
            track.Id        = i + 1;
            track.Title     = "Track Title";
            track.Duration  = 100;
            track.Genre     = genre;
            track.Artist    = artist;
            dataSet.Tracks.AddTrack(track);
            tracks.Add(track);
        }

        RecordingDataSet.Reviewer reviewer =
            dataSet.Reviewers.NewReviewer();
        reviewer.Id   = 1;
        reviewer.Name = "Reviewer";
        dataSet.Reviewers.AddReviewer(reviewer);

        int       reviewCount = 3;
        ArrayList reviews     = new ArrayList(reviewCount);

        for (int j = 0; j < reviewCount; j++)
        {
            RecordingDataSet.Review review = dataSet.Reviews.NewReview();
            review.Id        = j + 1;
            review.Content   = "Review Content";
            review.Rating    = j + 1;
            review.Reviewer  = reviewer;
            review.Recording = recording;
            dataSet.Reviews.AddReview(review);
            reviews.Add(review);
        }

        return(recording);
    }
 public void Delete(RecordingDataSet recordingDataSet, long reviewId)
 {
     RecordingDataSet.Review loadedReview = FindById(reviewId, recordingDataSet);
     loadedReview.Delete();
     reviewAdapter.Update(recordingDataSet, recordingDataSet.Reviews.TableName);
 }