aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Services/Services/FeedService.cs
diff options
context:
space:
mode:
authorKamen Mladenov <kamen.d.mladenov@protonmail.com>2021-04-09 19:51:35 +0300
committerGitHub <noreply@github.com>2021-04-09 19:51:35 +0300
commit233f38915ba0079079233eff55434ef349c05c45 (patch)
tree6c5f69017865bcab87355e910c87339453da1406 /src/DevHive.Services/Services/FeedService.cs
parentf4a70c6430db923af9fa9958a11c2d6612cb52cc (diff)
parenta992357efcf1bc1ece81b95ecee5e05a0b73bfdc (diff)
downloadDevHive-heroku/main.tar
DevHive-heroku/main.tar.gz
DevHive-heroku/main.zip
Merge pull request #28 from Team-Kaleidoscope/devHEADv0.2mainheroku/main
Second stage: Complete
Diffstat (limited to 'src/DevHive.Services/Services/FeedService.cs')
-rw-r--r--src/DevHive.Services/Services/FeedService.cs84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/DevHive.Services/Services/FeedService.cs b/src/DevHive.Services/Services/FeedService.cs
deleted file mode 100644
index f2f4a3a..0000000
--- a/src/DevHive.Services/Services/FeedService.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using AutoMapper;
-using DevHive.Data.Interfaces.Repositories;
-using DevHive.Data.Models;
-using DevHive.Services.Interfaces;
-using DevHive.Services.Models;
-using DevHive.Services.Models.Post;
-
-namespace DevHive.Services.Services
-{
- public class FeedService : IFeedService
- {
- private readonly IMapper _mapper;
- private readonly IFeedRepository _feedRepository;
- private readonly IUserRepository _userRepository;
-
- public FeedService(IFeedRepository feedRepository, IUserRepository userRepository, IMapper mapper)
- {
- this._feedRepository = feedRepository;
- this._userRepository = userRepository;
- this._mapper = mapper;
- }
-
- /// <summary>
- /// This method is used in the feed page.
- /// See the FeedRepository "GetFriendsPosts" menthod for more information on how it works.
- /// </summary>
- public async Task<ReadPageServiceModel> GetPage(GetPageServiceModel model)
- {
- User user = null;
-
- if (model.UserId != Guid.Empty)
- user = await this._userRepository.GetByIdAsync(model.UserId);
- else if (!string.IsNullOrEmpty(model.Username))
- user = await this._userRepository.GetByUsernameAsync(model.Username);
- else
- throw new ArgumentException("Invalid given data!");
-
- if (user == null)
- throw new ArgumentException("User doesn't exist!");
-
- if (user.Friends.Count == 0)
- throw new ArgumentException("User has no friends to get feed from!");
-
- List<Post> posts = await this._feedRepository
- .GetFriendsPosts(user.Friends.ToList(), model.FirstRequestIssued, model.PageNumber, model.PageSize);
-
- ReadPageServiceModel readPageServiceModel = new();
- foreach (Post post in posts)
- readPageServiceModel.Posts.Add(this._mapper.Map<ReadPostServiceModel>(post));
-
- return readPageServiceModel;
- }
-
- /// <summary>
- /// This method is used in the profile pages.
- /// See the FeedRepository "GetUsersPosts" menthod for more information on how it works.
- /// </summary>
- public async Task<ReadPageServiceModel> GetUserPage(GetPageServiceModel model)
- {
- User user = null;
-
- if (!string.IsNullOrEmpty(model.Username))
- user = await this._userRepository.GetByUsernameAsync(model.Username);
- else
- throw new ArgumentException("Invalid given data!");
-
- if (user == null)
- throw new ArgumentException("User doesn't exist!");
-
- List<Post> posts = await this._feedRepository
- .GetUsersPosts(user, model.FirstRequestIssued, model.PageNumber, model.PageSize);
-
- ReadPageServiceModel readPageServiceModel = new();
- foreach (Post post in posts)
- readPageServiceModel.Posts.Add(this._mapper.Map<ReadPostServiceModel>(post));
-
- return readPageServiceModel;
- }
- }
-}