public void GetFeedbackViewModelTest() { var artistDto = CreateArtist(); var genreDto = CreateGenre(); var trackDto = CreateTrack(artistDto, genreDto); var userData = new UserData { Id = 1 }; var feedbackDto = new Feedback { Id = 1, Comments = "Some comments", Track = trackDto, TrackId = trackDto.Id, User = userData, UserId = userData.Id }; var feedback = ModelsMapper.GetFeedbackViewModel(feedbackDto); Assert.IsNotNull(feedback); Assert.IsTrue(feedback.UserDataId == userData.Id); Assert.IsTrue(feedback.Comments.Equals(feedbackDto.Comments, StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// Returns the feedback which have made the specified user for the track. /// </summary> /// <param name="trackId"> /// The track id. /// </param> /// <param name="userDataId"> /// The user who have left a comment and/or a vote for the track. /// </param> /// <returns> /// The feedback for the <paramref name="trackId"/> which have made the specified <paramref name="userDataId"/> /// or <b>null</b> in case if feedback doesn't exist. /// </returns> public FeedbackViewModel GetTrackFeedback(int trackId, int userDataId) { Feedback feedback; using (var repository = Factory.GetFeedbackRepository()) { feedback = repository.FirstOrDefault(f => f.TrackId == trackId && f.UserId == userDataId, f => f.User, f => f.User.User); } Vote vote; using (var repository = Factory.GetVoteRepository()) { vote = repository.FirstOrDefault(v => v.TrackId == trackId && v.UserId == userDataId); } FeedbackViewModel feedbackViewModel = null; // if user comments exist for this feedback if (feedback != null) { feedbackViewModel = ModelsMapper.GetFeedbackViewModel(feedback); } // if a user mark exists for this feedback if (vote != null) { if (feedbackViewModel == null) { // this is a feedback only with mark feedbackViewModel = new FeedbackViewModel { Mark = vote.Mark, UserDataId = vote.UserId }; } else { // this is a feedback with comments and mark feedbackViewModel.Mark = vote.Mark; } } return(feedbackViewModel); }