diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-03-14 21:40:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-14 21:40:12 +0200 |
| commit | ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde (patch) | |
| tree | 8d57d347dd56642105998c3cc3d12bd16ac49aa1 /src/Data/DevHive.Data/Repositories/RatingRepository.cs | |
| parent | 432fc5890814596d50fb409a6e5dc952d7bb4836 (diff) | |
| parent | 76f71bb8cab45922f3e4999253a1567a0e4af3db (diff) | |
| download | DevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.tar DevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.tar.gz DevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.zip | |
Merge pull request #22 from Team-Kaleidoscope/rating_system
Rating system
Diffstat (limited to 'src/Data/DevHive.Data/Repositories/RatingRepository.cs')
| -rw-r--r-- | src/Data/DevHive.Data/Repositories/RatingRepository.cs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/Data/DevHive.Data/Repositories/RatingRepository.cs b/src/Data/DevHive.Data/Repositories/RatingRepository.cs index 9bb2368..c35f6d5 100644 --- a/src/Data/DevHive.Data/Repositories/RatingRepository.cs +++ b/src/Data/DevHive.Data/Repositories/RatingRepository.cs @@ -27,23 +27,49 @@ namespace DevHive.Data.Repositories .Include(x => x.Post) .FirstOrDefaultAsync(x => x.Id == id); } + /// <summary> + /// Gets all the ratings for a psot. + /// </summary> + /// <param name="postId">Id of the post.</param> + /// <returns></returns> public async Task<List<Rating>> GetRatingsByPostId(Guid postId) { return await this._context.Rating + .Include(x => x.User) + .Include(x => x.Post) .Where(x => x.Post.Id == postId).ToListAsync(); } + /// <summary> + /// Checks if a user rated a given post. In DevHive every user has one or no rating for every post. + /// </summary> + /// <param name="userId">Id of the user.</param> + /// <param name="postId">Id of the psot.</param> + /// <returns>True if the user has already rated the post and false if he hasn't.</returns> public async Task<bool> UserRatedPost(Guid userId, Guid postId) { return await this._context.Rating .Where(x => x.Post.Id == postId) .AnyAsync(x => x.User.Id == userId); } + /// <summary> + /// Gets a rating by the post to which the rating corresponds and the user who created it. + /// </summary> + /// <param name="userId">Id of the user.</param> + /// <param name="postId">Id of the post.</param> + /// <returns>Rating for the given post by the given user.</returns> public async Task<Rating> GetRatingByUserAndPostId(Guid userId, Guid postId) { return await this._context.Rating + .Include(x => x.User) + .Include(x => x.Post) .FirstOrDefaultAsync(x => x.Post.Id == postId && x.User.Id == userId); } + /// <summary> + /// Checks if a given rating already exist + /// </summary> + /// <param name="id">Id of the rating</param> + /// <returns>True if the rating exists and false if it does not.</returns> public async Task<bool> DoesRatingExist(Guid id) { return await this._context.Rating |
