Sfoglia il codice sorgente

Added Tags seeder and grant category to user after creating

BE_dev
bronjaermin 2 anni fa
parent
commit
46ad4394a2

+ 11
- 3
Diligent.WebAPI.Business/Services/CategoryService.cs Vedi File

using Dapper; using Dapper;
using Diligent.WebAPI.Business.Services.Interfaces;
using Diligent.WebAPI.Contracts.DTOs.Categories; using Diligent.WebAPI.Contracts.DTOs.Categories;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using System; using System;
private readonly DatabaseContext _context; private readonly DatabaseContext _context;
private readonly IMapper _mapper; private readonly IMapper _mapper;
private readonly UserManager<User> _userManager; private readonly UserManager<User> _userManager;
private readonly IUserService _userService;


public CategoryService(DatabaseContext context, IMapper mapper, UserManager<User> userManager)
public CategoryService(DatabaseContext context, IMapper mapper, UserManager<User> userManager, IUserService userService)
{ {
_context = context; _context = context;
_mapper = mapper; _mapper = mapper;
_userManager = userManager; _userManager = userManager;
_userService = userService;
} }


public async Task<CategoriesParentChild> GetRootCategories(int userId,int parentCategoryId) public async Task<CategoriesParentChild> GetRootCategories(int userId,int parentCategoryId)
return response; return response;
} }


public async Task CreateAsync(CreateCategoryDto createCategoryDto)
public async Task CreateAsync(CreateCategoryDto createCategoryDto, int userId)
{ {
Category category = null; Category category = null;
if(createCategoryDto.ParentId != null) if(createCategoryDto.ParentId != null)
{ {
category = await _context.Categories.Where(x => x.Id == createCategoryDto.ParentId).FirstOrDefaultAsync(); category = await _context.Categories.Where(x => x.Id == createCategoryDto.ParentId).FirstOrDefaultAsync();
} }
await _context.Categories.AddAsync(new Category { Name = createCategoryDto.Name, ParentCategory = category});

var newCategory = new Category { Name = createCategoryDto.Name, ParentCategory = category };

await _context.Categories.AddAsync(newCategory);


await _context.SaveChangesAsync(); await _context.SaveChangesAsync();

await _userService.GrantCategoryToUserAsync(new GrantUserCategoryRequestDto { UserId = userId, Categories = new List<GrantCategoryToUserRequestDto> { new GrantCategoryToUserRequestDto { Id = newCategory.Id, IsChecked = true } } });
} }
} }
} }

+ 1
- 1
Diligent.WebAPI.Business/Services/Interfaces/ICategoryService.cs Vedi File

Task<Category> GetCategoryEntityById(int? id); Task<Category> GetCategoryEntityById(int? id);
Task<List<IsGrantedCategory>> GetCategories(int userId); Task<List<IsGrantedCategory>> GetCategories(int userId);
Task<List<TreeViewCategoryResponse>> GetAllCategories(int userId); Task<List<TreeViewCategoryResponse>> GetAllCategories(int userId);
Task CreateAsync(CreateCategoryDto createCategoryDto);
Task CreateAsync(CreateCategoryDto createCategoryDto, int userId);
} }
} }

+ 37
- 1
Diligent.WebAPI.Data/DataSeeder.cs Vedi File

{ {
public class DataSeeder public class DataSeeder
{ {
public static async void Seed(IServiceProvider serviceProvider)
public static async void SeedUser(IServiceProvider serviceProvider)
{ {
using var scope = serviceProvider.CreateScope(); using var scope = serviceProvider.CreateScope();
var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>(); var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>();
await databaseContext.SaveChangesAsync(); await databaseContext.SaveChangesAsync();
} }
} }

public static async void SeedTags(IServiceProvider serviceProvider)
{
using var scope = serviceProvider.CreateScope();
var databaseContext = scope.ServiceProvider.GetRequiredService<DatabaseContext>();

if(!databaseContext.Tags.Any())
{
var tags = new List<Tag>
{
new Tag
{
Name = "T1"
},
new Tag
{
Name = "T2"
},
new Tag
{
Name = "T3"
},
new Tag
{
Name = "T4"
},
new Tag
{
Name = "T5"
}
};

await databaseContext.Tags.AddRangeAsync(tags);
await databaseContext.SaveChangesAsync();
}
}
} }
} }

+ 1
- 1
Diligent.WebAPI.Data/Entities/Tag.cs Vedi File



public string Name { get; set; } public string Name { get; set; }


public List<FileEntity> Files { get; set; }
public List<FileEntity> Files { get; set; } = new();
} }
} }

+ 2
- 1
Diligent.WebAPI.Host/Controllers/V1/CategoriesController.cs Vedi File

[HttpPost] [HttpPost]
public async Task<IActionResult> CreateCategory([FromBody] CreateCategoryDto request) public async Task<IActionResult> CreateCategory([FromBody] CreateCategoryDto request)
{ {
await _categoryService.CreateAsync(request);
User? user = (User?)HttpContext.Items["User"];
await _categoryService.CreateAsync(request, user.Id);
return StatusCode((int)HttpStatusCode.Created); return StatusCode((int)HttpStatusCode.Created);
} }
} }

+ 2
- 1
Diligent.WebAPI.Host/Extensions/DataConfigurationExtension.cs Vedi File

} }
} }


DataSeeder.Seed(app.Services);
DataSeeder.SeedUser(app.Services);
DataSeeder.SeedTags(app.Services);
} }
} }

Loading…
Annulla
Salva