Merge pull request #72 from sbwalker/master
Refactored Settings to use Dictionary
This commit is contained in:
commit
d0e9246546
|
@ -48,7 +48,7 @@
|
||||||
<label for="@p.Name" class="control-label">@p.Title: </label>
|
<label for="@p.Name" class="control-label">@p.Title: </label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input class="form-control" maxlength="@p.MaxLength" value="@GetProfileValue(p.Name, p.DefaultValue)" @onchange="@(e => ProfileChanged(e, p.Name))" />
|
<input class="form-control" maxlength="@p.MaxLength" value="@GetProfileValue(p.Name, p.DefaultValue)" placeholder="@p.Description" @onchange="@(e => ProfileChanged(e, p.Name))" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@
|
||||||
string displayname = "";
|
string displayname = "";
|
||||||
string email = "";
|
string email = "";
|
||||||
List<Profile> profiles;
|
List<Profile> profiles;
|
||||||
List<Setting> settings;
|
Dictionary<string, string> settings;
|
||||||
string category = "";
|
string category = "";
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
@ -103,12 +103,7 @@
|
||||||
user.DisplayName = displayname;
|
user.DisplayName = displayname;
|
||||||
user.Email = email;
|
user.Email = email;
|
||||||
await UserService.UpdateUserAsync(user);
|
await UserService.UpdateUserAsync(user);
|
||||||
|
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId);
|
||||||
foreach (Profile profile in profiles)
|
|
||||||
{
|
|
||||||
string value = SettingService.GetSetting(settings, profile.Name, "");
|
|
||||||
await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId, profile.Name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
UriHelper.NavigateTo("");
|
UriHelper.NavigateTo("");
|
||||||
}
|
}
|
||||||
|
@ -126,6 +121,6 @@
|
||||||
private void ProfileChanged(UIChangeEventArgs e, string SettingName)
|
private void ProfileChanged(UIChangeEventArgs e, string SettingName)
|
||||||
{
|
{
|
||||||
string value = (string)e.Value;
|
string value = (string)e.Value;
|
||||||
settings = SettingService.SetSetting(settings, "User", PageState.User.UserId, SettingName, value);
|
settings = SettingService.SetSetting(settings, SettingName, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,32 +6,34 @@ namespace Oqtane.Services
|
||||||
{
|
{
|
||||||
public interface ISettingService
|
public interface ISettingService
|
||||||
{
|
{
|
||||||
Task<List<Setting>> GetHostSettingsAsync();
|
Task<Dictionary<string, string>> GetHostSettingsAsync();
|
||||||
|
|
||||||
Task<Setting> UpdateHostSettingsAsync(List<Setting> HostSettings, string SettingName, string SettingValue);
|
Task UpdateHostSettingsAsync(Dictionary<string, string> HostSettings);
|
||||||
|
|
||||||
Task<List<Setting>> GetSiteSettingsAsync(int SiteId);
|
Task<Dictionary<string, string>> GetSiteSettingsAsync(int SiteId);
|
||||||
|
|
||||||
Task<Setting> UpdateSiteSettingsAsync(List<Setting> SiteSettings, int SiteId, string SettingName, string SettingValue);
|
Task UpdateSiteSettingsAsync(Dictionary<string, string> SiteSettings, int SiteId);
|
||||||
|
|
||||||
Task<List<Setting>> GetPageSettingsAsync(int PageId);
|
Task<Dictionary<string, string>> GetPageSettingsAsync(int PageId);
|
||||||
|
|
||||||
Task<Setting> UpdatePageSettingsAsync(List<Setting> PageSettings, int PageId, string SettingName, string SettingValue);
|
Task UpdatePageSettingsAsync(Dictionary<string, string> PageSettings, int PageId);
|
||||||
|
|
||||||
Task<List<Setting>> GetPageModuleSettingsAsync(int PageModuleId);
|
Task<Dictionary<string, string>> GetPageModuleSettingsAsync(int PageModuleId);
|
||||||
|
|
||||||
Task<Setting> UpdatePageModuleSettingsAsync(List<Setting> PageModuleSettings, int PageModuleId, string SettingName, string SettingValue);
|
Task UpdatePageModuleSettingsAsync(Dictionary<string, string> PageModuleSettings, int PageModuleId);
|
||||||
|
|
||||||
Task<List<Setting>> GetModuleSettingsAsync(int ModuleId);
|
Task<Dictionary<string, string>> GetModuleSettingsAsync(int ModuleId);
|
||||||
|
|
||||||
Task<Setting> UpdateModuleSettingsAsync(List<Setting> ModuleSettings, int ModuleId, string SettingName, string SettingValue);
|
Task UpdateModuleSettingsAsync(Dictionary<string, string> ModuleSettings, int ModuleId);
|
||||||
|
|
||||||
Task<List<Setting>> GetUserSettingsAsync(int UserId);
|
Task<Dictionary<string, string>> GetUserSettingsAsync(int UserId);
|
||||||
|
|
||||||
Task<Setting> UpdateUserSettingsAsync(List<Setting> UserSettings, int UserId, string SettingName, string SettingValue);
|
Task UpdateUserSettingsAsync(Dictionary<string, string> UserSettings, int UserId);
|
||||||
|
|
||||||
|
Task<Dictionary<string, string>> GetSettingsAsync(string EntityName, int EntityId);
|
||||||
|
|
||||||
|
Task UpdateSettingsAsync(Dictionary<string, string> Settings, string EntityName, int EntityId);
|
||||||
|
|
||||||
Task<List<Setting>> GetSettingsAsync(string EntityName, int EntityId);
|
|
||||||
|
|
||||||
Task<Setting> GetSettingAsync(int SettingId);
|
Task<Setting> GetSettingAsync(int SettingId);
|
||||||
|
|
||||||
|
@ -39,13 +41,11 @@ namespace Oqtane.Services
|
||||||
|
|
||||||
Task<Setting> UpdateSettingAsync(Setting Setting);
|
Task<Setting> UpdateSettingAsync(Setting Setting);
|
||||||
|
|
||||||
Task<Setting> UpdateSettingsAsync(List<Setting> Settings, string EntityName, int EntityId, string SettingName, string SettingValue);
|
|
||||||
|
|
||||||
Task DeleteSettingAsync(int SettingId);
|
Task DeleteSettingAsync(int SettingId);
|
||||||
|
|
||||||
|
|
||||||
string GetSetting(List<Setting> Settings, string SettingName, string DefaultValue);
|
string GetSetting(Dictionary<string, string> Settings, string SettingName, string DefaultValue);
|
||||||
|
|
||||||
List<Setting> SetSetting(List<Setting> Settings, string EntityName, int EntityId, string SettingName, string SettingValue);
|
Dictionary<string, string> SetSetting(Dictionary<string, string> Settings, string SettingName, string SettingValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,72 +26,101 @@ namespace Oqtane.Services
|
||||||
get { return CreateApiUrl(sitestate.Alias, urihelper.GetAbsoluteUri(), "Setting"); }
|
get { return CreateApiUrl(sitestate.Alias, urihelper.GetAbsoluteUri(), "Setting"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetHostSettingsAsync()
|
public async Task<Dictionary<string, string>> GetHostSettingsAsync()
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("Host", -1);
|
return await GetSettingsAsync("Host", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdateHostSettingsAsync(List<Setting> HostSettings, string SettingName, string SettingValue)
|
public async Task UpdateHostSettingsAsync(Dictionary<string, string> HostSettings)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(HostSettings, "Host", -1, SettingName, SettingValue);
|
await UpdateSettingsAsync(HostSettings, "Host", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetSiteSettingsAsync(int SiteId)
|
public async Task<Dictionary<string, string>> GetSiteSettingsAsync(int SiteId)
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("Site", SiteId);
|
return await GetSettingsAsync("Site", SiteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdateSiteSettingsAsync(List<Setting> SiteSettings, int SiteId, string SettingName, string SettingValue)
|
public async Task UpdateSiteSettingsAsync(Dictionary<string, string> SiteSettings, int SiteId)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(SiteSettings, "Site", SiteId, SettingName, SettingValue);
|
await UpdateSettingsAsync(SiteSettings, "Site", SiteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetPageSettingsAsync(int PageId)
|
public async Task<Dictionary<string, string>> GetPageSettingsAsync(int PageId)
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("Page", PageId);
|
return await GetSettingsAsync("Page", PageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdatePageSettingsAsync(List<Setting> PageSettings, int PageId, string SettingName, string SettingValue)
|
public async Task UpdatePageSettingsAsync(Dictionary<string, string> PageSettings, int PageId)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(PageSettings, "Page", PageId, SettingName, SettingValue);
|
await UpdateSettingsAsync(PageSettings, "Page", PageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetPageModuleSettingsAsync(int PageModuleId)
|
public async Task<Dictionary<string, string>> GetPageModuleSettingsAsync(int PageModuleId)
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("PageModule", PageModuleId);
|
return await GetSettingsAsync("PageModule", PageModuleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdatePageModuleSettingsAsync(List<Setting> PageModuleSettings, int PageModuleId, string SettingName, string SettingValue)
|
public async Task UpdatePageModuleSettingsAsync(Dictionary<string, string> PageModuleSettings, int PageModuleId)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(PageModuleSettings, "PageModule", PageModuleId, SettingName, SettingValue);
|
await UpdateSettingsAsync(PageModuleSettings, "PageModule", PageModuleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetModuleSettingsAsync(int ModuleId)
|
public async Task<Dictionary<string, string>> GetModuleSettingsAsync(int ModuleId)
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("Module", ModuleId);
|
return await GetSettingsAsync("Module", ModuleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdateModuleSettingsAsync(List<Setting> ModuleSettings, int ModuleId, string SettingName, string SettingValue)
|
public async Task UpdateModuleSettingsAsync(Dictionary<string, string> ModuleSettings, int ModuleId)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(ModuleSettings, "Module", ModuleId, SettingName, SettingValue);
|
await UpdateSettingsAsync(ModuleSettings, "Module", ModuleId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetUserSettingsAsync(int UserId)
|
public async Task<Dictionary<string, string>> GetUserSettingsAsync(int UserId)
|
||||||
{
|
{
|
||||||
return await GetSettingsAsync("User", UserId);
|
return await GetSettingsAsync("User", UserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdateUserSettingsAsync(List<Setting> UserSettings, int UserId, string SettingName, string SettingValue)
|
public async Task UpdateUserSettingsAsync(Dictionary<string, string> UserSettings, int UserId)
|
||||||
{
|
{
|
||||||
return await UpdateSettingsAsync(UserSettings, "User", UserId, SettingName, SettingValue);
|
await UpdateSettingsAsync(UserSettings, "User", UserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Setting>> GetSettingsAsync(string EntityName, int EntityId)
|
public async Task<Dictionary<string, string>> GetSettingsAsync(string EntityName, int EntityId)
|
||||||
{
|
{
|
||||||
|
Dictionary<string, string> dictionary = new Dictionary<string, string>();
|
||||||
List<Setting> Settings = await http.GetJsonAsync<List<Setting>>(apiurl + "?entityname=" + EntityName + "&entityid=" + EntityId.ToString());
|
List<Setting> Settings = await http.GetJsonAsync<List<Setting>>(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<string, string> Settings, string EntityName, int EntityId)
|
||||||
|
{
|
||||||
|
List<Setting> settings = await http.GetJsonAsync<List<Setting>>(apiurl + "?entityname=" + EntityName + "&entityid=" + EntityId.ToString());
|
||||||
|
foreach (KeyValuePair<string, string> 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<Setting> GetSettingAsync(int SettingId)
|
public async Task<Setting> GetSettingAsync(int SettingId)
|
||||||
{
|
{
|
||||||
return await http.GetJsonAsync<Setting>(apiurl + "/" + SettingId.ToString());
|
return await http.GetJsonAsync<Setting>(apiurl + "/" + SettingId.ToString());
|
||||||
|
@ -107,53 +136,31 @@ namespace Oqtane.Services
|
||||||
return await http.PutJsonAsync<Setting>(apiurl + "/" + Setting.SettingId.ToString(), Setting);
|
return await http.PutJsonAsync<Setting>(apiurl + "/" + Setting.SettingId.ToString(), Setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Setting> UpdateSettingsAsync(List<Setting> 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)
|
public async Task DeleteSettingAsync(int SettingId)
|
||||||
{
|
{
|
||||||
await http.DeleteAsync(apiurl + "/" + SettingId.ToString());
|
await http.DeleteAsync(apiurl + "/" + SettingId.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public string GetSetting(List<Setting> Settings, string SettingName, string DefaultValue)
|
public string GetSetting(Dictionary<string, string> Settings, string SettingName, string DefaultValue)
|
||||||
{
|
{
|
||||||
string value = DefaultValue;
|
string value = DefaultValue;
|
||||||
Setting setting = Settings.Where(item => item.SettingName == SettingName).FirstOrDefault();
|
if (Settings.ContainsKey(SettingName))
|
||||||
if (setting != null)
|
|
||||||
{
|
{
|
||||||
value = setting.SettingValue;
|
value = Settings[SettingName];
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Setting> SetSetting(List<Setting> Settings, string EntityName, int EntityId, string SettingName, string SettingValue)
|
public Dictionary<string, string> SetSetting(Dictionary<string, string> Settings, string SettingName, string SettingValue)
|
||||||
{
|
{
|
||||||
int index = Settings.FindIndex(item => item.EntityName == EntityName && item.EntityId == EntityId && item.SettingName == SettingName);
|
if (Settings.ContainsKey(SettingName))
|
||||||
if (index != -1)
|
{
|
||||||
{
|
Settings[SettingName] = SettingValue;
|
||||||
Settings[index].SettingValue = SettingValue;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Settings.Add(new Setting { SettingId = -1, EntityName = EntityName, EntityId = EntityId, SettingName = SettingName, SettingValue = SettingValue });
|
Settings.Add(SettingName, SettingValue);
|
||||||
}
|
}
|
||||||
return Settings;
|
return Settings;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user