Переглянути джерело

Implemented service for returning tree view categories

BE_dev
bronjaermin 2 роки тому
джерело
коміт
2ced0c8e30

+ 37
- 2
Diligent.WebAPI.Business/Services/CategoryService.cs Переглянути файл

return dto; return dto;
} }


public async Task<List<TreeCategoryItem>> GetAllCategories()
public async Task<List<TreeViewCategoryResponse>> GetAllCategories()
{ {
var res = await _context.Categories.Include(k => k.ParentCategory).ToListAsync(); var res = await _context.Categories.Include(k => k.ParentCategory).ToListAsync();
return _mapper.Map<List<TreeCategoryItem>>(res);

List<TreeViewCategoryResponse> response = new();

foreach (var item in res)
{
TreeViewCategoryResponse treeViewCategory = new();
if(item.ParentCategory == null)
{
treeViewCategory.Id = item.Id;
treeViewCategory.Name = item.Name;
treeViewCategory.TreeViewCategories = GetTreeCategoryItem(res, item.Id);
response.Add(treeViewCategory);
}

}

return response;
}

private List<TreeViewCategoryResponse> GetTreeCategoryItem(List<Category> items, int id)
{
List<TreeViewCategoryResponse> response = new();

foreach (var item in items)
{
if(item.ParentCategory != null && item.ParentCategory.Id == id)
{
TreeViewCategoryResponse treeViewCategory = new();
treeViewCategory.Id = item.Id;
treeViewCategory.Name = item.Name;
treeViewCategory.TreeViewCategories = GetTreeCategoryItem(items, item.Id);
response.Add(treeViewCategory);
}
}

return response;
} }
} }
} }

+ 1
- 1
Diligent.WebAPI.Business/Services/Interfaces/ICategoryService.cs Переглянути файл

Task<CategoriesParentChild> GetRootCategories(int userId,int categoryId); Task<CategoriesParentChild> GetRootCategories(int userId,int categoryId);
Task<Category> GetCategoryEntityById(int? id); Task<Category> GetCategoryEntityById(int? id);
Task<List<IsGrantedCategory>> GetCategories(int userId); Task<List<IsGrantedCategory>> GetCategories(int userId);
Task<List<TreeCategoryItem>> GetAllCategories();
Task<List<TreeViewCategoryResponse>> GetAllCategories();
} }
} }

+ 15
- 0
Diligent.WebAPI.Contracts/DTOs/Categories/TreeViewCategoryResponse.cs Переглянути файл

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Diligent.WebAPI.Contracts.DTOs.Categories
{
public class TreeViewCategoryResponse
{
public int Id { get; set; }
public string Name { get; set; }
public List<TreeViewCategoryResponse> TreeViewCategories { get; set; } = new();
}
}

Завантаження…
Відмінити
Зберегти