diff --git a/Oqtane.Client/Modules/Admin/Profile/Index.razor b/Oqtane.Client/Modules/Admin/Profile/Index.razor
index cf68fdf6..aa1ca756 100644
--- a/Oqtane.Client/Modules/Admin/Profile/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Profile/Index.razor
@@ -48,7 +48,7 @@
- ProfileChanged(e, p.Name))" />
+ ProfileChanged(e, p.Name))" />
|
}
@@ -65,7 +65,7 @@
string displayname = "";
string email = "";
List profiles;
- List settings;
+ Dictionary settings;
string category = "";
protected override async Task OnInitializedAsync()
@@ -103,12 +103,7 @@
user.DisplayName = displayname;
user.Email = email;
await UserService.UpdateUserAsync(user);
-
- foreach (Profile profile in profiles)
- {
- string value = SettingService.GetSetting(settings, profile.Name, "");
- await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId, profile.Name, value);
- }
+ await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId);
UriHelper.NavigateTo("");
}
@@ -126,6 +121,6 @@
private void ProfileChanged(UIChangeEventArgs e, string SettingName)
{
string value = (string)e.Value;
- settings = SettingService.SetSetting(settings, "User", PageState.User.UserId, SettingName, value);
+ settings = SettingService.SetSetting(settings, SettingName, value);
}
}
diff --git a/Oqtane.Client/Services/Interfaces/ISettingService.cs b/Oqtane.Client/Services/Interfaces/ISettingService.cs
index 56fccb43..66647129 100644
--- a/Oqtane.Client/Services/Interfaces/ISettingService.cs
+++ b/Oqtane.Client/Services/Interfaces/ISettingService.cs
@@ -6,32 +6,34 @@ namespace Oqtane.Services
{
public interface ISettingService
{
- Task> GetHostSettingsAsync();
+ Task> GetHostSettingsAsync();
- Task UpdateHostSettingsAsync(List HostSettings, string SettingName, string SettingValue);
+ Task UpdateHostSettingsAsync(Dictionary HostSettings);
- Task> GetSiteSettingsAsync(int SiteId);
+ Task> GetSiteSettingsAsync(int SiteId);
- Task UpdateSiteSettingsAsync(List SiteSettings, int SiteId, string SettingName, string SettingValue);
+ Task UpdateSiteSettingsAsync(Dictionary SiteSettings, int SiteId);
- Task> GetPageSettingsAsync(int PageId);
+ Task> GetPageSettingsAsync(int PageId);
- Task UpdatePageSettingsAsync(List PageSettings, int PageId, string SettingName, string SettingValue);
+ Task UpdatePageSettingsAsync(Dictionary PageSettings, int PageId);
- Task> GetPageModuleSettingsAsync(int PageModuleId);
+ Task> GetPageModuleSettingsAsync(int PageModuleId);
- Task UpdatePageModuleSettingsAsync(List PageModuleSettings, int PageModuleId, string SettingName, string SettingValue);
+ Task UpdatePageModuleSettingsAsync(Dictionary PageModuleSettings, int PageModuleId);
- Task> GetModuleSettingsAsync(int ModuleId);
+ Task> GetModuleSettingsAsync(int ModuleId);
- Task UpdateModuleSettingsAsync(List ModuleSettings, int ModuleId, string SettingName, string SettingValue);
+ Task UpdateModuleSettingsAsync(Dictionary ModuleSettings, int ModuleId);
- Task> GetUserSettingsAsync(int UserId);
+ Task> GetUserSettingsAsync(int UserId);
- Task UpdateUserSettingsAsync(List UserSettings, int UserId, string SettingName, string SettingValue);
+ Task UpdateUserSettingsAsync(Dictionary UserSettings, int UserId);
+ Task> GetSettingsAsync(string EntityName, int EntityId);
+
+ Task UpdateSettingsAsync(Dictionary Settings, string EntityName, int EntityId);
- Task> GetSettingsAsync(string EntityName, int EntityId);
Task GetSettingAsync(int SettingId);
@@ -39,13 +41,11 @@ namespace Oqtane.Services
Task UpdateSettingAsync(Setting Setting);
- Task UpdateSettingsAsync(List Settings, string EntityName, int EntityId, string SettingName, string SettingValue);
-
Task DeleteSettingAsync(int SettingId);
- string GetSetting(List Settings, string SettingName, string DefaultValue);
+ string GetSetting(Dictionary Settings, string SettingName, string DefaultValue);
- List SetSetting(List Settings, string EntityName, int EntityId, string SettingName, string SettingValue);
+ Dictionary SetSetting(Dictionary Settings, string SettingName, string SettingValue);
}
}
diff --git a/Oqtane.Client/Services/SettingService.cs b/Oqtane.Client/Services/SettingService.cs
index 02a53dfe..f36b4d67 100644
--- a/Oqtane.Client/Services/SettingService.cs
+++ b/Oqtane.Client/Services/SettingService.cs
@@ -26,72 +26,101 @@ namespace Oqtane.Services
get { return CreateApiUrl(sitestate.Alias, urihelper.GetAbsoluteUri(), "Setting"); }
}
- public async Task> GetHostSettingsAsync()
+ public async Task> GetHostSettingsAsync()
{
return await GetSettingsAsync("Host", -1);
}
- public async Task UpdateHostSettingsAsync(List HostSettings, string SettingName, string SettingValue)
+ public async Task UpdateHostSettingsAsync(Dictionary HostSettings)
{
- return await UpdateSettingsAsync(HostSettings, "Host", -1, SettingName, SettingValue);
+ await UpdateSettingsAsync(HostSettings, "Host", -1);
}
- public async Task> GetSiteSettingsAsync(int SiteId)
+ public async Task> GetSiteSettingsAsync(int SiteId)
{
return await GetSettingsAsync("Site", SiteId);
}
- public async Task UpdateSiteSettingsAsync(List SiteSettings, int SiteId, string SettingName, string SettingValue)
+ public async Task UpdateSiteSettingsAsync(Dictionary SiteSettings, int SiteId)
{
- return await UpdateSettingsAsync(SiteSettings, "Site", SiteId, SettingName, SettingValue);
+ await UpdateSettingsAsync(SiteSettings, "Site", SiteId);
}
- public async Task> GetPageSettingsAsync(int PageId)
+ public async Task> GetPageSettingsAsync(int PageId)
{
return await GetSettingsAsync("Page", PageId);
}
- public async Task UpdatePageSettingsAsync(List PageSettings, int PageId, string SettingName, string SettingValue)
+ public async Task UpdatePageSettingsAsync(Dictionary PageSettings, int PageId)
{
- return await UpdateSettingsAsync(PageSettings, "Page", PageId, SettingName, SettingValue);
+ await UpdateSettingsAsync(PageSettings, "Page", PageId);
}
- public async Task> GetPageModuleSettingsAsync(int PageModuleId)
+ public async Task> GetPageModuleSettingsAsync(int PageModuleId)
{
return await GetSettingsAsync("PageModule", PageModuleId);
}
- public async Task UpdatePageModuleSettingsAsync(List PageModuleSettings, int PageModuleId, string SettingName, string SettingValue)
+ public async Task UpdatePageModuleSettingsAsync(Dictionary PageModuleSettings, int PageModuleId)
{
- return await UpdateSettingsAsync(PageModuleSettings, "PageModule", PageModuleId, SettingName, SettingValue);
+ await UpdateSettingsAsync(PageModuleSettings, "PageModule", PageModuleId);
}
- public async Task> GetModuleSettingsAsync(int ModuleId)
+ public async Task> GetModuleSettingsAsync(int ModuleId)
{
return await GetSettingsAsync("Module", ModuleId);
}
- public async Task UpdateModuleSettingsAsync(List ModuleSettings, int ModuleId, string SettingName, string SettingValue)
+ public async Task UpdateModuleSettingsAsync(Dictionary ModuleSettings, int ModuleId)
{
- return await UpdateSettingsAsync(ModuleSettings, "Module", ModuleId, SettingName, SettingValue);
+ await UpdateSettingsAsync(ModuleSettings, "Module", ModuleId);
}
- public async Task> GetUserSettingsAsync(int UserId)
+ public async Task> GetUserSettingsAsync(int UserId)
{
return await GetSettingsAsync("User", UserId);
}
- public async Task UpdateUserSettingsAsync(List UserSettings, int UserId, string SettingName, string SettingValue)
+ public async Task UpdateUserSettingsAsync(Dictionary UserSettings, int UserId)
{
- return await UpdateSettingsAsync(UserSettings, "User", UserId, SettingName, SettingValue);
+ await UpdateSettingsAsync(UserSettings, "User", UserId);
}
- public async Task> GetSettingsAsync(string EntityName, int EntityId)
+ public async Task> GetSettingsAsync(string EntityName, int EntityId)
{
+ Dictionary dictionary = new Dictionary();
List Settings = await http.GetJsonAsync>(apiurl + "?entityname=" + EntityName + "&entityid=" + EntityId.ToString());
- return Settings.OrderBy(item => item.SettingName).ToList();
+ foreach(Setting setting in Settings.OrderBy(item => item.SettingName).ToList())
+ {
+ dictionary.Add(setting.SettingName, setting.SettingValue);
+ }
+ return dictionary;
}
+ public async Task UpdateSettingsAsync(Dictionary Settings, string EntityName, int EntityId)
+ {
+ List settings = await http.GetJsonAsync>(apiurl + "?entityname=" + EntityName + "&entityid=" + EntityId.ToString());
+ foreach (KeyValuePair kvp in Settings)
+ {
+ Setting setting = settings.Where(item => item.SettingName == kvp.Key).FirstOrDefault();
+ if (setting == null)
+ {
+ setting = new Setting();
+ setting.EntityName = EntityName;
+ setting.EntityId = EntityId;
+ setting.SettingName = kvp.Key;
+ setting.SettingValue = kvp.Value;
+ setting = await AddSettingAsync(setting);
+ }
+ else
+ {
+ setting.SettingValue = kvp.Value;
+ setting = await UpdateSettingAsync(setting);
+ }
+ }
+ }
+
+
public async Task GetSettingAsync(int SettingId)
{
return await http.GetJsonAsync(apiurl + "/" + SettingId.ToString());
@@ -107,53 +136,31 @@ namespace Oqtane.Services
return await http.PutJsonAsync(apiurl + "/" + Setting.SettingId.ToString(), Setting);
}
- public async Task UpdateSettingsAsync(List Settings, string EntityName, int EntityId, string SettingName, string SettingValue)
- {
- Setting setting = Settings.Where(item => item.SettingName == SettingName).FirstOrDefault();
- if (setting == null || setting.SettingId == -1)
- {
- setting = new Setting();
- setting.EntityName = EntityName;
- setting.EntityId = EntityId;
- setting.SettingName = SettingName;
- setting.SettingValue = SettingValue;
- setting = await AddSettingAsync(setting);
- }
- else
- {
- setting.SettingValue = SettingValue;
- setting = await UpdateSettingAsync(setting);
- }
- return setting;
- }
-
public async Task DeleteSettingAsync(int SettingId)
{
await http.DeleteAsync(apiurl + "/" + SettingId.ToString());
}
- public string GetSetting(List Settings, string SettingName, string DefaultValue)
+ public string GetSetting(Dictionary Settings, string SettingName, string DefaultValue)
{
string value = DefaultValue;
- Setting setting = Settings.Where(item => item.SettingName == SettingName).FirstOrDefault();
- if (setting != null)
+ if (Settings.ContainsKey(SettingName))
{
- value = setting.SettingValue;
+ value = Settings[SettingName];
}
return value;
}
- public List SetSetting(List Settings, string EntityName, int EntityId, string SettingName, string SettingValue)
+ public Dictionary SetSetting(Dictionary Settings, string SettingName, string SettingValue)
{
- int index = Settings.FindIndex(item => item.EntityName == EntityName && item.EntityId == EntityId && item.SettingName == SettingName);
- if (index != -1)
- {
- Settings[index].SettingValue = SettingValue;
+ if (Settings.ContainsKey(SettingName))
+ {
+ Settings[SettingName] = SettingValue;
}
else
{
- Settings.Add(new Setting { SettingId = -1, EntityName = EntityName, EntityId = EntityId, SettingName = SettingName, SettingValue = SettingValue });
+ Settings.Add(SettingName, SettingValue);
}
return Settings;
}