Files
hamkadr/src/JobsMedical.Web/Pages/Admin/Settings.cshtml.cs
T

55 lines
1.8 KiB
C#
Raw Normal View History

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();
}
}