diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-12-13 14:41:52 +0100 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-12-13 14:41:52 +0100 |
commit | b6b2ba62aaf4a5b56b0a89639a785ab1a06cf0b4 (patch) | |
tree | ffb2d0abecfd14660634c3142eccb3e17e74735d /Backend/Api | |
parent | 61f1cd36b0d2263cd1c19f9d44004131639ae776 (diff) |
Izmenjena funkcija za filtritanje i sortiranje na back-u i front-u. Izmenjeni dijalozi za filter i sort. Dodate poruke za validaciju.
Diffstat (limited to 'Backend/Api')
-rw-r--r-- | Backend/Api/Api/Controllers/PostController.cs | 4 | ||||
-rw-r--r-- | Backend/Api/Api/Interfaces/IPostService.cs | 2 | ||||
-rw-r--r-- | Backend/Api/Api/Models/Post.cs | 4 | ||||
-rw-r--r-- | Backend/Api/Api/Services/PostService.cs | 29 |
4 files changed, 32 insertions, 7 deletions
diff --git a/Backend/Api/Api/Controllers/PostController.cs b/Backend/Api/Api/Controllers/PostController.cs index c4156f0..97646c2 100644 --- a/Backend/Api/Api/Controllers/PostController.cs +++ b/Backend/Api/Api/Controllers/PostController.cs @@ -140,9 +140,9 @@ namespace Api.Controllers } [HttpGet("locations/{id}/posts")] [Authorize(Roles = "User")] - public async Task<ActionResult<List<PostSend>>> searchPosts(string id,int page=0,int sorttype=1,int filterdate=1) + public async Task<ActionResult<List<PostSend>>> searchPosts(string id,bool filter,int page=0,int sorttype=1,int filterdate=1,int ratingFrom=-1, int ratingTo=-1,int viewsFrom=-1,int viewsTo=-1) { - var res = await _postService.SearchPosts(id,page,sorttype,filterdate); + var res = await _postService.SearchPosts(id,filter,page,sorttype,filterdate,ratingFrom,ratingTo,viewsFrom,viewsTo); if (res != null) { return Ok(res); diff --git a/Backend/Api/Api/Interfaces/IPostService.cs b/Backend/Api/Api/Interfaces/IPostService.cs index 919f3cf..f554df6 100644 --- a/Backend/Api/Api/Interfaces/IPostService.cs +++ b/Backend/Api/Api/Interfaces/IPostService.cs @@ -16,7 +16,7 @@ namespace Api.Interfaces Task<List<CommentSend>> CascadeComments(string parentid, Post p); Task<Boolean> DeleteComments(string postid, string cmntid,string userid); Task CascadeDeleteComments(string cmntid, Post p); - Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1); + Task<PostSendPage> SearchPosts(string locid,bool filter, int page = 0, int sorttype = 1, int filterdate = 1, int ratingFrom = -1, int ratingTo = -1, int viewsFrom = -1, int viewsTo = -1); int DateEnumToDays(int filterdate); Task<List<PostSend>> GetUsersPosts(string id); Task<List<PostSend>> UserHistory(string userid); diff --git a/Backend/Api/Api/Models/Post.cs b/Backend/Api/Api/Models/Post.cs index 955431f..9f7e937 100644 --- a/Backend/Api/Api/Models/Post.cs +++ b/Backend/Api/Api/Models/Post.cs @@ -92,7 +92,9 @@ namespace Api.Models { VIEWS_DESC=1, RATING_DESC=2, - DATE =3 + DATE =3, + DATE_ASC=4, + } public enum FilterDate { diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs index e6fa9fb..1c8f647 100644 --- a/Backend/Api/Api/Services/PostService.cs +++ b/Backend/Api/Api/Services/PostService.cs @@ -348,7 +348,7 @@ namespace Api.Services } } } - public async Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1) // for now sorting by number of ratings , not avg rating + public async Task<PostSendPage> SearchPosts(string locid,bool filter, int page = 0, int sorttype = 1, int filterdate = 1, int ratingFrom = -1, int ratingTo = -1, int viewsFrom = -1, int viewsTo = -1) { var days = DateEnumToDays(filterdate); var tosend = new PostSendPage(); @@ -390,6 +390,26 @@ namespace Api.Services } } + if (filter) + { + if (ratingFrom >= 0) + { + ls = ls.FindAll(post => post.ratings > ratingFrom).ToList(); + } + if (ratingTo >= 0) + { + ls= ls.FindAll(post => post.ratings < ratingTo).ToList(); + } + if (viewsFrom >= 0) + { + ls = ls.FindAll(post => post.views >viewsFrom).ToList(); + } + if (viewsTo >= 0) + { + ls = ls.FindAll(post => post.views < viewsTo).ToList(); + } + + } switch (sorttype) { case 1: @@ -401,6 +421,9 @@ namespace Api.Services case 3: xd = ls.OrderByDescending(x => x.createdAt).ToList(); break; + case 4: + xd = ls.OrderBy(x => x.createdAt).ToList(); + break; default: xd = ls.OrderByDescending(x => x.views).ToList(); break; @@ -637,7 +660,7 @@ namespace Api.Services { var novi = new Trending(); novi.tagr = trending; - novi.page = await SearchPosts(trending.tag, 0, 1, 5); + novi.page = await SearchPosts(trending.tag, false,0, 1, 5,-1,-1,-1,-1); tosend.Add(novi); } @@ -660,7 +683,7 @@ namespace Api.Services } foreach (var elem in inradius) { - var locposts = await SearchPosts(elem._id, 0, 1, 1); + var locposts = await SearchPosts(elem._id, false,0, 1, 1,-1,-1,-1,-1); var best = locposts.posts.Take(1).FirstOrDefault(); if (best != null) tosend.Add(best); |