69 lines
2.8 KiB
C#
69 lines
2.8 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Models;
|
|
using Nop.Services.Configuration;
|
|
using Nop.Web.Framework.Controllers;
|
|
using Nop.Services.Messages;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
|
|
{
|
|
[Area("Admin")]
|
|
public class FruitBankPluginAdminController : BasePluginController
|
|
{
|
|
private readonly INotificationService _notificationService;
|
|
private readonly ISettingService _settingService;
|
|
private readonly FruitBankSettings _settings;
|
|
|
|
public FruitBankPluginAdminController(INotificationService notificationService, ISettingService settingService, FruitBankSettings settings)
|
|
{
|
|
_notificationService = notificationService;
|
|
_settingService = settingService;
|
|
_settings = settings;
|
|
}
|
|
|
|
[HttpGet]
|
|
public IActionResult Configure()
|
|
{
|
|
var model = new ConfigureModel
|
|
{
|
|
ApiKey = _settings.ApiKey,
|
|
ModelName = _settings.ModelName,
|
|
OpenAIApiKey = _settings.OpenAIApiKey,
|
|
OpenAIModelName = _settings.OpenAIModelName,
|
|
IsEnabled = _settings.IsEnabled,
|
|
ApiBaseUrl = _settings.ApiBaseUrl,
|
|
MaxTokens = _settings.MaxTokens,
|
|
Temperature = _settings.Temperature,
|
|
RequestTimeoutSeconds = _settings.RequestTimeoutSeconds
|
|
};
|
|
return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Configure/Configure.cshtml", model);
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> Configure(ConfigureModel model)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Configure/Configure.cshtml", model);
|
|
}
|
|
|
|
// Map model properties to settings
|
|
_settings.ApiKey = model.ApiKey ?? string.Empty;
|
|
_settings.ModelName = model.ModelName ?? string.Empty;
|
|
_settings.OpenAIApiKey = model.OpenAIApiKey ?? string.Empty;
|
|
_settings.OpenAIModelName = model.OpenAIModelName ?? string.Empty;
|
|
_settings.IsEnabled = model.IsEnabled;
|
|
_settings.ApiBaseUrl = model.ApiBaseUrl ?? string.Empty;
|
|
_settings.OpenAIApiBaseUrl = model.OpenAIApiBaseUrl ?? string.Empty;
|
|
_settings.MaxTokens = model.MaxTokens;
|
|
_settings.Temperature = model.Temperature;
|
|
_settings.RequestTimeoutSeconds = model.RequestTimeoutSeconds;
|
|
|
|
// Save settings
|
|
await _settingService.SaveSettingAsync(_settings);
|
|
|
|
_notificationService.SuccessNotification("Beállítások mentve.");
|
|
return RedirectToAction("Configure");
|
|
}
|
|
}
|
|
} |