Exemple #1
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);
        }
            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 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);
            }
Exemple #4
0
        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);
        }