docs: #285 changes the FAQ pinned items API
This commit is contained in:
parent
b3e9f3077d
commit
67abb34c95
@ -119,11 +119,11 @@ namespace RMuseum.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpGet("pinned")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQItem[]))]
|
||||
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(FAQCategory[]))]
|
||||
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
|
||||
public async Task<IActionResult> GetPinnedItemsAsync()
|
||||
{
|
||||
var res = await _faqService.GetPinnedItemsAsync(true);
|
||||
var res = await _faqService.GetPinnedItemsAsync();
|
||||
if (!string.IsNullOrEmpty(res.ExceptionString))
|
||||
return BadRequest(res.ExceptionString);
|
||||
return Ok(res.Result);
|
||||
|
||||
@ -10154,11 +10154,10 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IFAQService.GetPinnedItemsAsync(System.Boolean)">
|
||||
<member name="M:RMuseum.Services.IFAQService.GetPinnedItemsAsync">
|
||||
<summary>
|
||||
get pinned items
|
||||
</summary>
|
||||
<param name="onlyPublished"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.IFAQService.GetCategoryItemsAsync(System.Int32,System.Boolean)">
|
||||
@ -12163,11 +12162,10 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.FAQService.GetPinnedItemsAsync(System.Boolean)">
|
||||
<member name="M:RMuseum.Services.Implementation.FAQService.GetPinnedItemsAsync">
|
||||
<summary>
|
||||
get pinned items
|
||||
</summary>
|
||||
<param name="onlyPublished"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.FAQService.GetCategoryItemsAsync(System.Int32,System.Boolean)">
|
||||
|
||||
@ -48,9 +48,8 @@ namespace RMuseum.Services
|
||||
/// <summary>
|
||||
/// get pinned items
|
||||
/// </summary>
|
||||
/// <param name="onlyPublished"></param>
|
||||
/// <returns></returns>
|
||||
Task<RServiceResult<FAQItem[]>> GetPinnedItemsAsync(bool onlyPublished);
|
||||
Task<RServiceResult<FAQCategory[]>> GetPinnedItemsAsync();
|
||||
|
||||
/// <summary>
|
||||
/// get category items
|
||||
|
||||
@ -3,6 +3,7 @@ using RMuseum.DbContext;
|
||||
using RMuseum.Models.FAQ;
|
||||
using RSecurityBackend.Models.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@ -110,15 +111,41 @@ namespace RMuseum.Services.Implementation
|
||||
/// <summary>
|
||||
/// get pinned items
|
||||
/// </summary>
|
||||
/// <param name="onlyPublished"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<RServiceResult<FAQItem[]>> GetPinnedItemsAsync(bool onlyPublished)
|
||||
public async Task<RServiceResult<FAQCategory[]>> GetPinnedItemsAsync()
|
||||
{
|
||||
var items = await _context.FAQItems.Where(c => c.Pinned && (c.Published == onlyPublished || c.Published == true)).OrderBy(c => c.PinnedItemOrder).ToArrayAsync();
|
||||
return new RServiceResult<FAQItem[]>
|
||||
(
|
||||
items
|
||||
);
|
||||
var items = await _context.FAQItems.Include(i => i.Category).Where(c => c.Pinned && c.Published == true).OrderBy(c => c.Category.CatOrder).ThenBy(c => c.PinnedItemOrder).ThenBy(c => c.ItemOrderInCategory).ToArrayAsync();
|
||||
List<FAQCategory> result = new List<FAQCategory>();
|
||||
FAQCategory cat = null;
|
||||
int catId = -1;
|
||||
foreach (var item in items)
|
||||
{
|
||||
if(item.CategoryId != catId)
|
||||
{
|
||||
if(cat != null)
|
||||
{
|
||||
result.Add(cat);
|
||||
}
|
||||
cat = item.Category;
|
||||
catId = item.CategoryId;
|
||||
cat.Items = new List<FAQItem>();
|
||||
}
|
||||
cat.Items.Add(item);
|
||||
}
|
||||
if (cat != null)
|
||||
{
|
||||
result.Add(cat);
|
||||
}
|
||||
|
||||
foreach (var resultCat in result)
|
||||
{
|
||||
foreach (var item in resultCat.Items)
|
||||
{
|
||||
item.Category = null;
|
||||
}
|
||||
}
|
||||
|
||||
return new RServiceResult<FAQCategory[]>(result.ToArray());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user