Kaynağa Gözat

Implemented service for returning tree view categories

BE_dev
bronjaermin 2 yıl önce
ebeveyn
işleme
2ced0c8e30

+ 37
- 2
Diligent.WebAPI.Business/Services/CategoryService.cs Dosyayı Görüntüle

@@ -149,10 +149,45 @@ namespace Diligent.WebAPI.Business.Services
return dto;
}

public async Task<List<TreeCategoryItem>> GetAllCategories()
public async Task<List<TreeViewCategoryResponse>> GetAllCategories()
{
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 Dosyayı Görüntüle

@@ -12,6 +12,6 @@ namespace Diligent.WebAPI.Business.Services.Interfaces
Task<CategoriesParentChild> GetRootCategories(int userId,int categoryId);
Task<Category> GetCategoryEntityById(int? id);
Task<List<IsGrantedCategory>> GetCategories(int userId);
Task<List<TreeCategoryItem>> GetAllCategories();
Task<List<TreeViewCategoryResponse>> GetAllCategories();
}
}

+ 15
- 0
Diligent.WebAPI.Contracts/DTOs/Categories/TreeViewCategoryResponse.cs Dosyayı Görüntüle

@@ -0,0 +1,15 @@
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();
}
}

Loading…
İptal
Kaydet