namespace Brizco.Repository.Handlers.Sections; public class DeleteSectionCommandHandler(IRepositoryWrapper repositoryWrapper) : IRequestHandler { public async Task Handle(DeleteSectionCommand request, CancellationToken cancellationToken) { var section = await repositoryWrapper.SetRepository
() .TableNoTracking .FirstOrDefaultAsync(s => s.Id == request.Id, cancellationToken); if (section == null) throw new AppException("Section not found", ApiResultStatusCode.NotFound); var positions = await repositoryWrapper.SetRepository() .TableNoTracking .Where(p => p.SectionId == section.Id) .CountAsync(cancellationToken); if (positions > 0) throw new AppException("این سکشن پوزیشن فعال دارد ، نخست پوزیشن های سکشن را حذف کرده یا منتقل کنید"); repositoryWrapper.SetRepository
() .Delete(section); await repositoryWrapper.SaveChangesAsync(cancellationToken); return true; } }