This commit is contained in:
backuppc
2025-07-07 17:44:59 +09:00
parent 5a0ff2e3ad
commit d537030eb3
10 changed files with 435 additions and 24 deletions

View File

@@ -11,11 +11,13 @@ namespace VNCServerList.Web.Controllers
{
private readonly DatabaseService _databaseService;
private readonly VNCService _vncService;
private readonly SettingsService _settingsService;
public VNCServerController()
{
_settingsService = new SettingsService();
_databaseService = new DatabaseService();
_vncService = new VNCService(_databaseService);
_vncService = new VNCService(_databaseService, _settingsService);
}
[HttpGet]
@@ -169,5 +171,86 @@ namespace VNCServerList.Web.Controllers
return InternalServerError(ex);
}
}
[HttpPost]
[Route("set-vnc-path")]
public IHttpActionResult SetVNCPath([FromBody] dynamic data)
{
try
{
string path = data.path;
if (string.IsNullOrEmpty(path))
{
return BadRequest("VNC Viewer 경로가 제공되지 않았습니다.");
}
_vncService.SetVNCViewerPath(path);
return Ok(new { Message = "VNC Viewer 경로가 설정되었습니다." });
}
catch (Exception ex)
{
return InternalServerError(ex);
}
}
[HttpGet]
[Route("settings")]
public IHttpActionResult GetSettings()
{
try
{
System.Diagnostics.Debug.WriteLine("=== 설정 조회 시작 ===");
var settings = _settingsService.GetSettings();
// 디버깅용 로그
System.Diagnostics.Debug.WriteLine($"조회된 설정: VNCViewerPath='{settings.VNCViewerPath}', WebServerPort={settings.WebServerPort}");
System.Diagnostics.Debug.WriteLine("=== 설정 조회 완료 ===");
return Ok(settings);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"설정 조회 오류: {ex.Message}");
System.Diagnostics.Debug.WriteLine($"스택 트레이스: {ex.StackTrace}");
return InternalServerError(ex);
}
}
[HttpPost]
[Route("settings")]
public IHttpActionResult UpdateSettings([FromBody] AppSettings settings)
{
try
{
System.Diagnostics.Debug.WriteLine("=== 설정 저장 요청 시작 ===");
if (settings == null)
{
System.Diagnostics.Debug.WriteLine("설정 객체가 null입니다.");
return BadRequest("설정 정보가 없습니다.");
}
// 디버깅용 로그
System.Diagnostics.Debug.WriteLine($"받은 설정 데이터: VNCViewerPath='{settings.VNCViewerPath}', WebServerPort={settings.WebServerPort}");
System.Diagnostics.Debug.WriteLine($"VNCViewerPath 타입: {settings.VNCViewerPath?.GetType()}");
System.Diagnostics.Debug.WriteLine($"WebServerPort 타입: {settings.WebServerPort.GetType()}");
_settingsService.SaveSettings(settings);
// 저장된 설정 확인
var savedSettings = _settingsService.GetSettings();
System.Diagnostics.Debug.WriteLine($"저장된 설정: VNCViewerPath='{savedSettings.VNCViewerPath}', WebServerPort={savedSettings.WebServerPort}");
System.Diagnostics.Debug.WriteLine("=== 설정 저장 완료 ===");
return Ok(new { Message = "설정이 저장되었습니다." });
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"설정 저장 오류: {ex.Message}");
System.Diagnostics.Debug.WriteLine($"스택 트레이스: {ex.StackTrace}");
return InternalServerError(ex);
}
}
}
}