using System.Threading.Tasks; using API.Entities; using API.Interfaces; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; namespace API.Controllers { public class AdminController : BaseApiController { private readonly IUserRepository _userRepository; private readonly UserManager _userManager; public AdminController(IUserRepository userRepository, UserManager userManager) { _userRepository = userRepository; _userManager = userManager; } [HttpGet("exists")] public async Task> AdminExists() { var users = await _userManager.GetUsersInRoleAsync("Admin"); return users.Count > 0; } [Authorize(Policy = "RequireAdminRole")] [HttpDelete("delete-user")] public async Task DeleteUser(string username) { var user = await _userRepository.GetUserByUsernameAsync(username); _userRepository.Delete(user); if (await _userRepository.SaveAllAsync()) { return Ok(); } return BadRequest("Could not delete the user."); } } }