using Microsoft.AspNetCore.Mvc; using HardwarePerformance.Infrastructure.Data; namespace HardwarePerformance.API.Controllers; [ApiController] [Route("api/[controller]")] public class TestController : ControllerBase { private readonly SimpleAppDbContext _context; private readonly ILogger _logger; public TestController(SimpleAppDbContext context, ILogger logger) { _context = context; _logger = logger; } [HttpGet("database-status")] public async Task GetDatabaseStatus() { try { var isConnected = await _context.TestConnectionAsync(); return Ok(new { IsConnected = isConnected, Message = isConnected ? "数据库连接成功" : "数据库连接失败", Timestamp = DateTime.Now }); } catch (Exception ex) { _logger.LogError(ex, "检查数据库连接时发生错误"); return StatusCode(500, new { IsConnected = false, Message = $"检查数据库连接时发生错误: {ex.Message}", Timestamp = DateTime.Now }); } } [HttpPost("initialize-database")] public async Task InitializeDatabase() { try { await _context.InitializeDatabaseAsync(); await _context.SeedInitialDataAsync(); return Ok(new { Message = "数据库初始化成功,种子数据已添加", Timestamp = DateTime.Now }); } catch (Exception ex) { _logger.LogError(ex, "初始化数据库时发生错误"); return StatusCode(500, new { Message = $"初始化数据库时发生错误: {ex.Message}", Timestamp = DateTime.Now }); } } [HttpGet("categories")] public async Task GetCategories() { try { var categories = await _context.GetCategoriesAsync(); return Ok(new { success = true, data = categories }); } catch (Exception ex) { _logger.LogError(ex, "获取类别列表时发生错误"); return StatusCode(500, new { success = false, message = ex.Message }); } } [HttpGet("products")] public async Task GetProducts([FromQuery] int categoryId = 0, [FromQuery] int page = 1, [FromQuery] int pageSize = 10) { try { var products = await _context.GetProductsAsync(categoryId, page, pageSize); return Ok(new { success = true, data = products }); } catch (Exception ex) { _logger.LogError(ex, "获取产品列表时发生错误"); return StatusCode(500, new { success = false, message = ex.Message }); } } }