55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
|
|
using JobsMedical.Web.Models;
|
||
|
|
using JobsMedical.Web.Services.Scraping;
|
||
|
|
using Microsoft.AspNetCore.Authorization;
|
||
|
|
using Microsoft.AspNetCore.Mvc;
|
||
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||
|
|
|
||
|
|
namespace JobsMedical.Web.Pages.Admin;
|
||
|
|
|
||
|
|
[Authorize(Roles = "Admin")]
|
||
|
|
public class SettingsModel : PageModel
|
||
|
|
{
|
||
|
|
private readonly SettingsService _settings;
|
||
|
|
public SettingsModel(SettingsService settings) => _settings = settings;
|
||
|
|
|
||
|
|
[BindProperty] public IngestionMode Mode { get; set; }
|
||
|
|
[BindProperty] public int AutoPublishMinConfidence { get; set; }
|
||
|
|
[BindProperty] public bool AiEnabled { get; set; }
|
||
|
|
[BindProperty] public string? AiEndpoint { get; set; }
|
||
|
|
[BindProperty] public string? AiApiKey { get; set; }
|
||
|
|
[BindProperty] public string? AiModel { get; set; }
|
||
|
|
[BindProperty] public string AiSystemPrompt { get; set; } = "";
|
||
|
|
[BindProperty] public bool AiAutoApprove { get; set; }
|
||
|
|
[TempData] public string? Saved { get; set; }
|
||
|
|
|
||
|
|
public async Task OnGetAsync()
|
||
|
|
{
|
||
|
|
var s = await _settings.GetAsync();
|
||
|
|
Mode = s.Mode;
|
||
|
|
AutoPublishMinConfidence = s.AutoPublishMinConfidence;
|
||
|
|
AiEnabled = s.AiEnabled;
|
||
|
|
AiEndpoint = s.AiEndpoint;
|
||
|
|
AiApiKey = s.AiApiKey;
|
||
|
|
AiModel = s.AiModel;
|
||
|
|
AiSystemPrompt = s.AiSystemPrompt;
|
||
|
|
AiAutoApprove = s.AiAutoApprove;
|
||
|
|
}
|
||
|
|
|
||
|
|
public async Task<IActionResult> OnPostAsync()
|
||
|
|
{
|
||
|
|
await _settings.SaveAsync(new AppSetting
|
||
|
|
{
|
||
|
|
Mode = Mode,
|
||
|
|
AutoPublishMinConfidence = AutoPublishMinConfidence,
|
||
|
|
AiEnabled = AiEnabled,
|
||
|
|
AiEndpoint = AiEndpoint,
|
||
|
|
AiApiKey = AiApiKey,
|
||
|
|
AiModel = AiModel,
|
||
|
|
AiSystemPrompt = AiSystemPrompt,
|
||
|
|
AiAutoApprove = AiAutoApprove,
|
||
|
|
});
|
||
|
|
Saved = "تنظیمات ذخیره شد.";
|
||
|
|
return RedirectToPage();
|
||
|
|
}
|
||
|
|
}
|