#420 GetUserQuotedSuggestionsAsync
This commit is contained in:
parent
14cd871870
commit
e4e05c022a
@ -3863,6 +3863,32 @@ namespace RMuseum.Controllers
|
||||
return Ok(res.Result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get list of user suggested corrections
|
||||
/// </summary>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("quoted/suggest")]
|
||||
[Authorize]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(IEnumerable<GanjoorQuotedPoemViewModel>))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> GetUserQuotedSuggestionsAsync([FromQuery] PagingParameterModel paging)
|
||||
{
|
||||
Guid userId =
|
||||
new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value);
|
||||
|
||||
var res =
|
||||
await _ganjoorService.GetUserQuotedSuggestionsAsync(userId, paging);
|
||||
|
||||
// Paging Header
|
||||
HttpContext.Response.Headers.Append("paging-headers", JsonConvert.SerializeObject(res.Result.PagingMeta));
|
||||
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
return Ok(res.Result.Items);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// next unmoderated quoted poem
|
||||
/// </summary>
|
||||
|
||||
@ -2099,6 +2099,13 @@
|
||||
<param name="quoted"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.GetUserQuotedSuggestionsAsync(RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
get list of user suggested corrections
|
||||
</summary>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Controllers.GanjoorController.GetNextUnmoderatedGanjoorQuotedPoemAsync(System.Int32)">
|
||||
<summary>
|
||||
next unmoderated quoted poem
|
||||
@ -15938,6 +15945,14 @@
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetUserQuotedSuggestionsAsync(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
get user or all quoted suggestions
|
||||
</summary>
|
||||
<param name="userId">if sent empty returns all suggestions</param>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IGanjoorService.GetNextUnmoderatedGanjoorQuotedPoemAsync(System.Int32)">
|
||||
<summary>
|
||||
next unmoderated quoted poem
|
||||
@ -17951,6 +17966,14 @@
|
||||
<param name="userId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetUserQuotedSuggestionsAsync(System.Guid,RSecurityBackend.Models.Generic.PagingParameterModel)">
|
||||
<summary>
|
||||
get user or all quoted suggestions
|
||||
</summary>
|
||||
<param name="userId">if sent empty returns all suggestions</param>
|
||||
<param name="paging"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetNextUnmoderatedGanjoorQuotedPoemAsync(System.Int32)">
|
||||
<summary>
|
||||
next unmoderated quoted poem
|
||||
|
||||
@ -1308,6 +1308,14 @@ namespace RMuseum.Services
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<GanjoorQuotedPoemViewModel>> SuggestGanjoorQuotedPoemAsync(GanjoorQuotedPoemViewModel quoted, Guid userId);
|
||||
|
||||
/// <summary>
|
||||
/// get user or all quoted suggestions
|
||||
/// </summary>
|
||||
/// <param name="userId">if sent empty returns all suggestions</param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<(PaginationMetadata PagingMeta, GanjoorQuotedPoemViewModel[] Items)>> GetUserQuotedSuggestionsAsync(Guid userId, PagingParameterModel paging);
|
||||
|
||||
/// <summary>
|
||||
/// next unmoderated quoted poem
|
||||
/// </summary>
|
||||
|
||||
@ -156,6 +156,37 @@ namespace RMuseum.Services.Implementation
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get user or all quoted suggestions
|
||||
/// </summary>
|
||||
/// <param name="userId">if sent empty returns all suggestions</param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<(PaginationMetadata PagingMeta, GanjoorQuotedPoemViewModel[] Items)>> GetUserQuotedSuggestionsAsync(Guid userId, PagingParameterModel paging)
|
||||
{
|
||||
var source = from dbSuggestion in
|
||||
_context.GanjoorQuotedPoems.AsNoTracking()
|
||||
where userId == Guid.Empty || dbSuggestion.SuggestedById == userId
|
||||
orderby dbSuggestion.Id descending
|
||||
select
|
||||
dbSuggestion;
|
||||
|
||||
(PaginationMetadata PagingMeta, GanjoorQuotedPoem[] Items) dbPaginatedResult =
|
||||
await QueryablePaginator<GanjoorQuotedPoem>.Paginate(source, paging);
|
||||
|
||||
List<GanjoorQuotedPoemViewModel> list = new List<GanjoorQuotedPoemViewModel>();
|
||||
foreach (var dbCorrection in dbPaginatedResult.Items)
|
||||
{
|
||||
list.Add
|
||||
(
|
||||
new GanjoorQuotedPoemViewModel(dbCorrection)
|
||||
);
|
||||
}
|
||||
|
||||
return new RServiceResult<(PaginationMetadata, GanjoorQuotedPoemViewModel[])>
|
||||
((dbPaginatedResult.PagingMeta, list.ToArray()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// next unmoderated quoted poem
|
||||
/// </summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user