aboutsummaryrefslogtreecommitdiff
path: root/src/Services/DevHive.Services
diff options
context:
space:
mode:
authorDanail Dimitrov <danaildimitrov321@gmail.com>2021-03-14 21:40:12 +0200
committerGitHub <noreply@github.com>2021-03-14 21:40:12 +0200
commitac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde (patch)
tree8d57d347dd56642105998c3cc3d12bd16ac49aa1 /src/Services/DevHive.Services
parent432fc5890814596d50fb409a6e5dc952d7bb4836 (diff)
parent76f71bb8cab45922f3e4999253a1567a0e4af3db (diff)
downloadDevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.tar
DevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.tar.gz
DevHive-ac82c773a5ec43c6a59d3d0b7665b67ac9e6bdde.zip
Merge pull request #22 from Team-Kaleidoscope/rating_system
Rating system
Diffstat (limited to 'src/Services/DevHive.Services')
-rw-r--r--src/Services/DevHive.Services/Configurations/Mapping/RatingMappings.cs2
-rw-r--r--src/Services/DevHive.Services/Interfaces/IRatingService.cs4
-rw-r--r--src/Services/DevHive.Services/Services/PostService.cs10
-rw-r--r--src/Services/DevHive.Services/Services/RatingService.cs10
4 files changed, 14 insertions, 12 deletions
diff --git a/src/Services/DevHive.Services/Configurations/Mapping/RatingMappings.cs b/src/Services/DevHive.Services/Configurations/Mapping/RatingMappings.cs
index 4534511..9ad5f25 100644
--- a/src/Services/DevHive.Services/Configurations/Mapping/RatingMappings.cs
+++ b/src/Services/DevHive.Services/Configurations/Mapping/RatingMappings.cs
@@ -1,6 +1,6 @@
using AutoMapper;
using DevHive.Data.Models;
-using DevHive.Services.Models.Post.Rating;
+using DevHive.Services.Models.Rating;
namespace DevHive.Services.Configurations.Mapping
{
diff --git a/src/Services/DevHive.Services/Interfaces/IRatingService.cs b/src/Services/DevHive.Services/Interfaces/IRatingService.cs
index beea821..be33300 100644
--- a/src/Services/DevHive.Services/Interfaces/IRatingService.cs
+++ b/src/Services/DevHive.Services/Interfaces/IRatingService.cs
@@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks;
using DevHive.Data.Models;
-using DevHive.Services.Models.Post.Rating;
+using DevHive.Services.Models.Rating;
namespace DevHive.Services.Interfaces
{
@@ -16,7 +16,5 @@ namespace DevHive.Services.Interfaces
Task<ReadRatingServiceModel> UpdateRating(UpdateRatingServiceModel updateRatingServiceModel);
Task<bool> DeleteRating(Guid ratingId);
-
- Task<bool> HasUserRatedThisPost(Guid userId, Guid postId);
}
}
diff --git a/src/Services/DevHive.Services/Services/PostService.cs b/src/Services/DevHive.Services/Services/PostService.cs
index a3d5117..a565473 100644
--- a/src/Services/DevHive.Services/Services/PostService.cs
+++ b/src/Services/DevHive.Services/Services/PostService.cs
@@ -76,11 +76,21 @@ namespace DevHive.Services.Services
User user = await this._userRepository.GetByIdAsync(post.Creator.Id) ??
throw new ArgumentException("The user does not exist!");
+ int currentRating = 0;
+ foreach (Rating rating in post.Ratings)
+ {
+ if (rating.IsLike)
+ currentRating++;
+ else
+ currentRating--;
+ }
+
ReadPostServiceModel readPostServiceModel = this._postMapper.Map<ReadPostServiceModel>(post);
readPostServiceModel.CreatorFirstName = user.FirstName;
readPostServiceModel.CreatorLastName = user.LastName;
readPostServiceModel.CreatorUsername = user.UserName;
readPostServiceModel.FileUrls = post.Attachments.Select(x => x.FileUrl).ToList();
+ readPostServiceModel.CurrentRating = currentRating;
return readPostServiceModel;
}
diff --git a/src/Services/DevHive.Services/Services/RatingService.cs b/src/Services/DevHive.Services/Services/RatingService.cs
index 6ddba1c..1f77a6e 100644
--- a/src/Services/DevHive.Services/Services/RatingService.cs
+++ b/src/Services/DevHive.Services/Services/RatingService.cs
@@ -8,7 +8,7 @@ using AutoMapper;
using DevHive.Data.Interfaces;
using DevHive.Data.Models;
using DevHive.Services.Interfaces;
-using DevHive.Services.Models.Post.Rating;
+using DevHive.Services.Models.Rating;
namespace DevHive.Services.Services
{
@@ -81,7 +81,7 @@ namespace DevHive.Services.Services
#region Update
public async Task<ReadRatingServiceModel> UpdateRating(UpdateRatingServiceModel updateRatingServiceModel)
{
- Rating rating = await this._ratingRepository.GetByIdAsync(updateRatingServiceModel.Id) ??
+ Rating rating = await this._ratingRepository.GetRatingByUserAndPostId(updateRatingServiceModel.UserId, updateRatingServiceModel.PostId) ??
throw new ArgumentException("Rating does not exist!");
User user = await this._userRepository.GetByIdAsync(updateRatingServiceModel.UserId) ??
@@ -115,11 +115,5 @@ namespace DevHive.Services.Services
return await this._ratingRepository.DeleteAsync(rating);
}
#endregion
-
- public async Task<bool> HasUserRatedThisPost(Guid userId, Guid postId)
- {
- return await this._ratingRepository
- .UserRatedPost(userId, postId);
- }
}
}