I'm developing a plugin and I've overloaded the Logout method of the CustomerController and i'm loading settingService inside. But when i'm load it, it is null. How can i load the settingService in my custom CustomerController knowing that I save them in the configure method of my primary controller.
this is where i would like to load setting:
ParagonAuthenticationController paragonAuthenticationController = new ParagonAuthenticationController();
int activeStoreScopeConfiguration = this._storeContext.ActiveStoreScopeConfiguration;
ISettingService settingService = paragonAuthenticationController.Get_settingService();
ParagonExternalAuthSettings paragonExternalAuthSettings = settingService.LoadSetting<ParagonExternalAuthSettings>(activeStoreScopeConfiguration);
HttpClient client = new HttpClient();
var values = new Dictionary<string, string>
{
{"client_id",paragonExternalAuthSettings.baseurl },
{"client_secret","u71sjOYPlFSU602ARv25rlOtuvZdoXG7" },
{"refresh_token",refreshToken }
};
var content = new FormUrlEncodedContent(values);
client.PostAsync("https://keycloak-dev.paragon-editique.fr/auth/realms/Paragon/protocol/openid-connect/logout", content);
This is where i'm saving settings
if (!this._permissionService.Authorize(StandardPermissionProvider.ManagePlugins))
{
return this.AccessDeniedView();
}
int activeStoreScopeConfiguration = this._storeContext.ActiveStoreScopeConfiguration;
ParagonExternalAuthSettings paragonExternalAuthSettings = this._settingService.LoadSetting<ParagonExternalAuthSettings>(activeStoreScopeConfiguration);
string str = this.baseurl();
paragonExternalAuthSettings.authorization_endpoint = model.authorization_endpoint;
paragonExternalAuthSettings.token_endpoint = model.token_endpoint;
paragonExternalAuthSettings.baseurl = str;
paragonExternalAuthSettings.spentityid = str;
paragonExternalAuthSettings.acsurl = string.Concat("http://localhost:44346", "/Admin/ParagonAuthentication/acs");
paragonExternalAuthSettings.splogouturl = string.Concat(str, "/Admin/ParagonAuthentication/logout");
if (string.IsNullOrEmpty(paragonExternalAuthSettings.authorization_endpoint) || string.IsNullOrEmpty(paragonExternalAuthSettings.token_endpoint))
{
return this.Content("Please fill in the empty IdP/SP configuration fields before saving.");
}
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.authorization_endpoint, activeStoreScopeConfiguration, false);
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.token_endpoint, activeStoreScopeConfiguration, false);
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.baseurl, activeStoreScopeConfiguration, false);
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.spentityid, activeStoreScopeConfiguration, false);
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.acsurl, activeStoreScopeConfiguration, false);
this._settingService.SaveSetting<ParagonExternalAuthSettings, string>(paragonExternalAuthSettings, (ParagonExternalAuthSettings x) => x.splogouturl, activeStoreScopeConfiguration, false);
this._settingService.ClearCache();
this._notificationService.SuccessNotification(this._localizationService.GetResource("Admin.Plugins.Saved"), true);
return this.Configure();
this is the get methode of settingService
public ISettingService Get_settingService()
{
return this._settingService;
}