- @context.Name |
- @context.Version |
|
@if (context.AssemblyName != "Oqtane.Client")
{
-
+
}
|
+ @context.Name |
+ @context.Version |
@if (UpgradeAvailable(context.ModuleDefinitionName, context.Version))
{
@@ -48,8 +48,16 @@ else
protected override async Task OnInitializedAsync()
{
- moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
- packages = await PackageService.GetPackagesAsync("module");
+ try
+ {
+ moduledefinitions = await ModuleDefinitionService.GetModuleDefinitionsAsync(PageState.Site.SiteId);
+ packages = await PackageService.GetPackagesAsync("module");
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Loading Modules {Error}", ex.Message);
+ AddModuleMessage("Error Loading Modules", MessageType.Error);
+ }
}
private bool UpgradeAvailable(string moduledefinitionname, string version)
@@ -65,14 +73,32 @@ else
private async Task DownloadModule(string moduledefinitionname, string version)
{
- await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules");
- await ModuleDefinitionService.InstallModuleDefinitionsAsync();
- NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
- }
+ try
+ {
+ await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules");
+ await ModuleDefinitionService.InstallModuleDefinitionsAsync();
+ await logger.LogInformation("Module Downloaded {ModuleDefinitionName} {Version}", moduledefinitionname, version);
+ NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Downloading Module {ModuleDefinitionName} {Version} {Error}", moduledefinitionname, version, ex.Message);
+ AddModuleMessage("Error Downloading Module", MessageType.Error);
+ }
+ }
- private async Task DeleteModule(int moduledefinitionid, int siteid)
+ private async Task DeleteModule(ModuleDefinition ModuleDefinition)
{
- await ModuleDefinitionService.DeleteModuleDefinitionAsync(moduledefinitionid, siteid);
- NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
+ try
+ {
+ await ModuleDefinitionService.DeleteModuleDefinitionAsync(ModuleDefinition.ModuleDefinitionId, ModuleDefinition.SiteId);
+ await logger.LogInformation("Module Deleted {ModuleDefinition}", ModuleDefinition);
+ NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Deleting Module {ModuleDefinition} {Error}", ModuleDefinition, ex.Message);
+ AddModuleMessage("Error Deleting Module", MessageType.Error);
+ }
}
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Pages/Delete.razor b/Oqtane.Client/Modules/Admin/Pages/Delete.razor
deleted file mode 100644
index b156b922..00000000
--- a/Oqtane.Client/Modules/Admin/Pages/Delete.razor
+++ /dev/null
@@ -1,181 +0,0 @@
-@namespace Oqtane.Modules.Admin.Pages
-@inherits ModuleBase
-@inject NavigationManager NavigationManager
-@inject IPageService PageService
-@inject IThemeService ThemeService
-
-
-
-Cancel
-
-
-
-
-@code {
- public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
-
- Dictionary themes = new Dictionary();
- Dictionary panelayouts = new Dictionary();
-
- int PageId;
- string name;
- string path;
- string parentid = "";
- string isnavigation;
- string mode;
- string themetype;
- string layouttype;
- string icon;
- string permissions;
- string createdby;
- DateTime createdon;
- string modifiedby;
- DateTime modifiedon;
- string deletedby;
- DateTime? deletedon;
-
- protected override async Task OnInitializedAsync()
- {
- try
- {
- themes = ThemeService.GetThemeTypes(PageState.Themes);
-
- PageId = Int32.Parse(PageState.QueryString["id"]);
- Page page = PageState.Pages.Where(item => item.PageId == PageId).FirstOrDefault();
- if (page != null)
- {
- name = page.Name;
- path = page.Path;
- isnavigation = page.IsNavigation.ToString();
- mode = (page.EditMode) ? "edit" : "view";
- themetype = page.ThemeType;
- panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes, themetype);
- layouttype = page.LayoutType;
- icon = page.Icon;
- permissions = page.Permissions;
- createdby = page.CreatedBy;
- createdon = page.CreatedOn;
- modifiedby = page.ModifiedBy;
- modifiedon = page.ModifiedOn;
- deletedby = page.DeletedBy;
- deletedon = page.DeletedOn;
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Page {PageId} {Error}", PageId, ex.Message);
- AddModuleMessage("Error Loading Page", MessageType.Error);
- }
- }
-
- private async Task DeletePage()
- {
- try
- {
- await PageService.DeletePageAsync(PageId);
- await logger.LogInformation("Page Deleted {PageId}", PageId);
- NavigationManager.NavigateTo(NavigateUrl("", Reload.Site)); // redirect to home page
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Deleting Page {PageId} {Error}", PageId, ex.Message);
- AddModuleMessage("Error Deleting Page", MessageType.Error);
- }
- }
-}
diff --git a/Oqtane.Client/Modules/Admin/Pages/Index.razor b/Oqtane.Client/Modules/Admin/Pages/Index.razor
index 47e96364..bb6e030e 100644
--- a/Oqtane.Client/Modules/Admin/Pages/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Pages/Index.razor
@@ -5,18 +5,18 @@
@if (PageState.Pages != null)
{
-
+
- @(new string('-', context.Level * 2))@(context.Name) |
|
- |
+ |
+ @(new string('-', context.Level * 2))@(context.Name) |
}
@@ -24,18 +24,19 @@
@code {
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
- private async Task Delete(Page Page)
+ private async Task DeletePage(Page Page)
{
try
{
Page.IsDeleted = true;
await PageService.UpdatePageAsync(Page);
+ await logger.LogInformation("Page Deleted {Page}", Page);
NavigationManager.NavigateTo(NavigateUrl("admin/pages", Reload.Site));
}
catch (Exception ex)
{
- await logger.LogError(ex, "Error Loading Pages {Error}", ex.Message);
- AddModuleMessage("Error Loading Pages", MessageType.Error);
+ await logger.LogError(ex, "Error Deleting Page {Page} {Error}", Page, ex.Message);
+ AddModuleMessage("Error Deleting Page", MessageType.Error);
}
}
}
diff --git a/Oqtane.Client/Modules/Admin/Roles/Delete.razor b/Oqtane.Client/Modules/Admin/Roles/Delete.razor
deleted file mode 100644
index 9cc002ff..00000000
--- a/Oqtane.Client/Modules/Admin/Roles/Delete.razor
+++ /dev/null
@@ -1,94 +0,0 @@
-@namespace Oqtane.Modules.Admin.Roles
-@inherits ModuleBase
-@inject NavigationManager NavigationManager
-@inject IRoleService RoleService
-
-
-
-Cancel
-
-@code {
- public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
-
- int roleid;
- string name = "";
- string description = "";
- string isautoassigned = "False";
- string issystem = "False";
-
- protected override async Task OnInitializedAsync()
- {
- try
- {
- roleid = Int32.Parse(PageState.QueryString["id"]);
- Role role = await RoleService.GetRoleAsync(roleid);
- if (role != null)
- {
- name = role.Name;
- description = role.Description;
- isautoassigned = role.IsAutoAssigned.ToString();
- issystem = role.IsSystem.ToString();
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Role {RoleId} {Error}", roleid, ex.Message);
- AddModuleMessage("Error Loading Role", MessageType.Error);
- }
- }
-
- private async Task DeleteRole()
- {
- try
- {
- await RoleService.DeleteRoleAsync(roleid);
- await logger.LogInformation("Role Deleted {RoleId}", roleid);
- NavigationManager.NavigateTo(NavigateUrl());
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Deleting Role {RoleId} {Error}", roleid, ex.Message);
- AddModuleMessage("Error Deleting Role", MessageType.Error);
- }
- }
-
-}
diff --git a/Oqtane.Client/Modules/Admin/Roles/Index.razor b/Oqtane.Client/Modules/Admin/Roles/Index.razor
index e5ef72cb..79124760 100644
--- a/Oqtane.Client/Modules/Admin/Roles/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Roles/Index.razor
@@ -8,18 +8,18 @@
}
else
{
-
+
- @context.Name |
|
- |
+ |
+ @context.Name |
}
@@ -29,8 +29,23 @@ else
List Roles;
- protected override async Task OnInitializedAsync()
+ protected override async Task OnParametersSetAsync()
{
Roles = await RoleService.GetRolesAsync(PageState.Site.SiteId);
}
+
+ private async Task DeleteRole(Role Role)
+ {
+ try
+ {
+ await RoleService.DeleteRoleAsync(Role.RoleId);
+ await logger.LogInformation("Role Deleted {Role}", Role);
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Deleting Role {Role} {Error}", Role, ex.Message);
+ AddModuleMessage("Error Deleting Role", MessageType.Error);
+ }
+ }
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Sites/Delete.razor b/Oqtane.Client/Modules/Admin/Sites/Delete.razor
deleted file mode 100644
index e3edec7a..00000000
--- a/Oqtane.Client/Modules/Admin/Sites/Delete.razor
+++ /dev/null
@@ -1,185 +0,0 @@
-@namespace Oqtane.Modules.Admin.Sites
-@inherits ModuleBase
-@inject NavigationManager NavigationManager
-@inject ISiteService SiteService
-@inject IThemeService ThemeService
-
-@if (themes == null)
-{
- Loading...
-}
-else
-{
-
-
- Cancel
-
-
-
-}
-
-@code {
- public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
-
- Dictionary themes = new Dictionary();
- Dictionary panelayouts = new Dictionary();
- Dictionary containers = new Dictionary();
-
- Alias Alias;
- int siteid;
- string name = "";
- List aliases;
- string urls = "";
- string logo = "";
- string themetype;
- string layouttype;
- string containertype;
-
- string createdby;
- DateTime createdon;
- string modifiedby;
- DateTime modifiedon;
- string deletedby;
- DateTime? deletedon;
- string isdeleted;
-
- protected override async Task OnInitializedAsync()
- {
- try
- {
- themes = ThemeService.GetThemeTypes(PageState.Themes);
- containers = ThemeService.GetContainerTypes(PageState.Themes);
- Alias = PageState.Aliases.Where(item => item.AliasId == Int32.Parse(PageState.QueryString["id"])).FirstOrDefault();
-
- siteid = Alias.SiteId;
- Site site = await SiteService.GetSiteAsync(siteid, Alias);
- if (site != null)
- {
- name = site.Name;
- aliases = PageState.Aliases.Where(item => item.SiteId == site.SiteId && item.TenantId == site.TenantId).ToList();
- foreach (Alias alias in aliases)
- {
- urls += alias.Name + "\n";
- }
- logo = site.Logo;
- themetype = site.DefaultThemeType;
- panelayouts = ThemeService.GetPaneLayoutTypes(PageState.Themes, themetype);
- layouttype = site.DefaultLayoutType;
- containertype = site.DefaultContainerType;
-
- createdby = site.CreatedBy;
- createdon = site.CreatedOn;
- modifiedby = site.ModifiedBy;
- modifiedon = site.ModifiedOn;
- deletedby = site.DeletedBy;
- deletedon = site.DeletedOn;
- isdeleted = site.IsDeleted.ToString();
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Site {SiteId} {Error}", siteid, ex.Message);
- AddModuleMessage("Error Loading Site", MessageType.Error);
- }
- }
-
- private async Task DeleteSite()
- {
- try
- {
- await SiteService.DeleteSiteAsync(siteid, Alias);
- await logger.LogInformation("Sited Deleted {SiteId}", siteid);
- NavigationManager.NavigateTo(NavigateUrl());
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Deleting Site {Error}", ex.Message);
- AddModuleMessage(ex.Message, MessageType.Error);
- }
- }
-}
diff --git a/Oqtane.Client/Modules/Admin/Sites/Index.razor b/Oqtane.Client/Modules/Admin/Sites/Index.razor
index 0d946209..46152dee 100644
--- a/Oqtane.Client/Modules/Admin/Sites/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Sites/Index.razor
@@ -2,6 +2,7 @@
@inherits ModuleBase
@inject NavigationManager NavigationManager
@inject IAliasService AliasService
+@inject ISiteService SiteService
@if (sites == null)
{
@@ -9,18 +10,18 @@
}
else
{
-
+
- @context.Name |
|
- |
+ |
+ @context.Name |
}
@@ -31,7 +32,7 @@ else
List sites;
string scheme;
- protected override void OnInitialized()
+ protected override void OnParametersSet()
{
Uri uri = new Uri(NavigationManager.Uri);
scheme = uri.Scheme + "://";
@@ -45,4 +46,19 @@ else
}
}
}
+
+ private async Task DeleteSite(Alias Alias)
+ {
+ try
+ {
+ await SiteService.DeleteSiteAsync(Alias.SiteId, Alias);
+ await logger.LogInformation("Sited Deleted {Alias}", Alias);
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Deleting Site {Error}", ex.Message);
+ AddModuleMessage("Error Deleting Site", MessageType.Error);
+ }
+ }
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Delete.razor b/Oqtane.Client/Modules/Admin/Tenants/Delete.razor
deleted file mode 100644
index 7220c38f..00000000
--- a/Oqtane.Client/Modules/Admin/Tenants/Delete.razor
+++ /dev/null
@@ -1,80 +0,0 @@
-@namespace Oqtane.Modules.Admin.Tenants
-@inherits ModuleBase
-@inject NavigationManager NavigationManager
-@inject ITenantService TenantService
-
-
-
-Cancel
-
-@code {
- public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } }
-
- int tenantid;
- string name = "";
- string connectionstring = "";
- string schema = "";
-
- protected override async Task OnInitializedAsync()
- {
- try
- {
- tenantid = Int32.Parse(PageState.QueryString["id"]);
- Tenant tenant = await TenantService.GetTenantAsync(tenantid);
- if (tenant != null)
- {
- name = tenant.Name;
- connectionstring = tenant.DBConnectionString;
- schema = tenant.DBSchema;
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading Tenant {TenantId} {Error}", tenantid, ex.Message);
- AddModuleMessage(ex.Message, MessageType.Error);
- }
- }
- private async Task DeleteTenant()
- {
- try
- {
- Tenant tenant = await TenantService.GetTenantAsync(tenantid);
- if (tenant != null)
- {
- await TenantService.DeleteTenantAsync(tenantid);
- await logger.LogInformation("Tenant Deleted {TenantId}", tenantid);
- NavigationManager.NavigateTo(NavigateUrl());
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Deleting Tenant {TenantId} {Error}", tenantid, ex.Message);
- AddModuleMessage("Error Deleting Tenant", MessageType.Error);
- }
- }
-}
diff --git a/Oqtane.Client/Modules/Admin/Tenants/Index.razor b/Oqtane.Client/Modules/Admin/Tenants/Index.razor
index 116f6f0e..5c22fcbf 100644
--- a/Oqtane.Client/Modules/Admin/Tenants/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Tenants/Index.razor
@@ -8,18 +8,18 @@
}
else
{
-
+
- @context.Name |
|
- |
+ |
+ @context.Name |
@@ -30,8 +30,23 @@ else
List tenants;
- protected override async Task OnInitializedAsync()
+ protected override async Task OnParametersSetAsync()
{
tenants = await TenantService.GetTenantsAsync();
}
+
+ private async Task DeleteTenant(Tenant Tenant)
+ {
+ try
+ {
+ await TenantService.DeleteTenantAsync(Tenant.TenantId);
+ await logger.LogInformation("Tenant Deleted {Tenant}", Tenant);
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Deleting Tenant {Tenant} {Error}", Tenant, ex.Message);
+ AddModuleMessage("Error Deleting Tenant", MessageType.Error);
+ }
+ }
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor
index 0e8e3573..501dec1b 100644
--- a/Oqtane.Client/Modules/Admin/Themes/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor
@@ -10,24 +10,24 @@
}
else
{
-
+
- @context.Name |
- @context.Version |
@if (context.AssemblyName != "Oqtane.Client")
{
-
+
}
|
+ @context.Name |
+ @context.Version |
@if (UpgradeAvailable(context.ThemeName, context.Version))
{
@@ -64,13 +64,15 @@ else
private async Task DownloadTheme(string themename, string version)
{
await PackageService.DownloadPackageAsync(themename, version, "Themes");
+ await logger.LogInformation("Theme Downloaded {ThemeName} {Version}", themename, version);
await ThemeService.InstallThemesAsync();
NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
}
- private async Task DeleteTheme(string themename)
+ private async Task DeleteTheme(Theme Theme)
{
- await ThemeService.DeleteThemeAsync(themename);
+ await ThemeService.DeleteThemeAsync(Theme.ThemeName);
+ await logger.LogInformation("Theme Deleted {Theme}", Theme);
NavigationManager.NavigateTo(NavigateUrl(Reload.Application));
}
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Admin/Users/Delete.razor b/Oqtane.Client/Modules/Admin/Users/Delete.razor
deleted file mode 100644
index efe7a03c..00000000
--- a/Oqtane.Client/Modules/Admin/Users/Delete.razor
+++ /dev/null
@@ -1,115 +0,0 @@
-@namespace Oqtane.Modules.Admin.Users
-@inherits ModuleBase
-@inject NavigationManager NavigationManager
-@inject IUserService UserService
-@inject IProfileService ProfileService
-@inject ISettingService SettingService
-
-@if (!string.IsNullOrWhiteSpace(username))
-{
-
-
- Cancel
-
-
-
-}
-
-@code {
- public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Admin; } }
-
- int userid;
- string username = "";
- string email = "";
- string displayname = "";
- string createdby;
- DateTime createdon;
- string modifiedby;
- DateTime modifiedon;
- string deletedby;
- DateTime? deletedon;
- string isdeleted;
-
- protected override async Task OnInitializedAsync()
- {
- try
- {
- userid = Int32.Parse(PageState.QueryString["id"]);
- User user = await UserService.GetUserAsync(userid, PageState.Site.SiteId);
- if (user != null)
- {
- username = user.Username;
- email = user.Email;
- displayname = user.DisplayName;
- createdby = user.CreatedBy;
- createdon = user.CreatedOn;
- modifiedby = user.ModifiedBy;
- modifiedon = user.ModifiedOn;
- deletedby = user.DeletedBy;
- deletedon = user.DeletedOn;
- isdeleted = user.IsDeleted.ToString();
- }
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading User {UserId} {Error}", userid, ex.Message);
- AddModuleMessage("Error Loading User", MessageType.Error);
- }
- }
-
- private async Task DeleteUser()
- {
- try
- {
- User user = await UserService.GetUserAsync(userid, PageState.Site.SiteId);
- if (user != null)
- {
- await UserService.DeleteUserAsync(userid);
- await logger.LogInformation("User Deleted {UserId}", userid);
- NavigationManager.NavigateTo(NavigateUrl());
- }
-
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Loading User {UserId} {Error}", userid, ex.Message);
- AddModuleMessage(ex.Message, MessageType.Error);
- }
- }
-}
diff --git a/Oqtane.Client/Modules/Admin/Users/Index.razor b/Oqtane.Client/Modules/Admin/Users/Index.razor
index fbb3707c..c6e52c6e 100644
--- a/Oqtane.Client/Modules/Admin/Users/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Users/Index.razor
@@ -1,6 +1,7 @@
@namespace Oqtane.Modules.Admin.Users
@inherits ModuleBase
@inject IUserRoleService UserRoleService
+@inject IUserService UserService
@if (userroles == null)
{
@@ -8,20 +9,20 @@
}
else
{
-
+
- @context.User.DisplayName |
|
- |
+ |
|
+ @context.User.DisplayName |
}
@@ -36,4 +37,23 @@ else
userroles = await UserRoleService.GetUserRolesAsync(PageState.Site.SiteId);
userroles = userroles.Where(item => item.Role.Name == Constants.RegisteredRole).ToList();
}
+
+ private async Task DeleteUser(UserRole UserRole)
+ {
+ try
+ {
+ User user = await UserService.GetUserAsync(UserRole.UserId, PageState.Site.SiteId);
+ if (user != null)
+ {
+ await UserService.DeleteUserAsync(user.UserId);
+ await logger.LogInformation("User Deleted {User}", UserRole.User);
+ StateHasChanged();
+ }
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Deleting User {User} {Error}", UserRole.User, ex.Message);
+ AddModuleMessage(ex.Message, MessageType.Error);
+ }
+ }
}
\ No newline at end of file
diff --git a/Oqtane.Client/Modules/Controls/ActionDialog.razor b/Oqtane.Client/Modules/Controls/ActionDialog.razor
index 62077ee5..41dd4b21 100644
--- a/Oqtane.Client/Modules/Controls/ActionDialog.razor
+++ b/Oqtane.Client/Modules/Controls/ActionDialog.razor
@@ -25,7 +25,7 @@
}
@if (authorized)
{
-
+
}
@code {
@@ -41,6 +41,9 @@
[Parameter]
public SecurityAccessLevel? Security { get; set; } // optional - can be used to explicitly specify SecurityAccessLevel
+ [Parameter]
+ public string Text { get; set; } // optional - defaults to Action if not specified
+
[Parameter]
public string Class { get; set; } // optional
@@ -56,6 +59,10 @@
{
Action = "Ok";
}
+ if (string.IsNullOrEmpty(Text))
+ {
+ Text = Action;
+ }
if (string.IsNullOrEmpty(Class))
{
Class = "btn btn-success";
diff --git a/Oqtane.Client/Modules/Controls/ActionLink.razor b/Oqtane.Client/Modules/Controls/ActionLink.razor
index c3b1f7cf..afb0a8bb 100644
--- a/Oqtane.Client/Modules/Controls/ActionLink.razor
+++ b/Oqtane.Client/Modules/Controls/ActionLink.razor
@@ -36,12 +36,12 @@
protected override void OnParametersSet()
{
text = Action;
- if (!String.IsNullOrEmpty(Text))
+ if (!string.IsNullOrEmpty(Text))
{
text = Text;
}
- if (!String.IsNullOrEmpty(Parameters))
+ if (!string.IsNullOrEmpty(Parameters))
{
parameters = Parameters;
}
diff --git a/Oqtane.Client/Services/Interfaces/IScheduleLogService.cs b/Oqtane.Client/Services/Interfaces/IScheduleLogService.cs
new file mode 100644
index 00000000..d3f8af27
--- /dev/null
+++ b/Oqtane.Client/Services/Interfaces/IScheduleLogService.cs
@@ -0,0 +1,19 @@
+using Oqtane.Models;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Oqtane.Services
+{
+ public interface IScheduleLogService
+ {
+ Task> GetScheduleLogsAsync();
+
+ Task GetScheduleLogAsync(int ScheduleLogId);
+
+ Task AddScheduleLogAsync(ScheduleLog ScheduleLog);
+
+ Task UpdateScheduleLogAsync(ScheduleLog ScheduleLog);
+
+ Task DeleteScheduleLogAsync(int ScheduleLogId);
+ }
+}
diff --git a/Oqtane.Client/Services/Interfaces/IScheduleService.cs b/Oqtane.Client/Services/Interfaces/IScheduleService.cs
new file mode 100644
index 00000000..f9d7a00a
--- /dev/null
+++ b/Oqtane.Client/Services/Interfaces/IScheduleService.cs
@@ -0,0 +1,19 @@
+using Oqtane.Models;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+
+namespace Oqtane.Services
+{
+ public interface IScheduleService
+ {
+ Task> GetSchedulesAsync();
+
+ Task GetScheduleAsync(int ScheduleId);
+
+ Task AddScheduleAsync(Schedule Schedule);
+
+ Task UpdateScheduleAsync(Schedule Schedule);
+
+ Task DeleteScheduleAsync(int ScheduleId);
+ }
+}
diff --git a/Oqtane.Client/Services/ScheduleLogService.cs b/Oqtane.Client/Services/ScheduleLogService.cs
new file mode 100644
index 00000000..68b6b154
--- /dev/null
+++ b/Oqtane.Client/Services/ScheduleLogService.cs
@@ -0,0 +1,54 @@
+using Oqtane.Models;
+using System.Threading.Tasks;
+using System.Net.Http;
+using System.Linq;
+using Microsoft.AspNetCore.Components;
+using System.Collections.Generic;
+using Oqtane.Shared;
+
+namespace Oqtane.Services
+{
+ public class ScheduleLogService : ServiceBase, IScheduleLogService
+ {
+ private readonly HttpClient http;
+ private readonly SiteState sitestate;
+ private readonly NavigationManager NavigationManager;
+
+ public ScheduleLogService(HttpClient http, SiteState sitestate, NavigationManager NavigationManager)
+ {
+ this.http = http;
+ this.sitestate = sitestate;
+ this.NavigationManager = NavigationManager;
+ }
+
+ private string apiurl
+ {
+ get { return CreateApiUrl(sitestate.Alias, NavigationManager.Uri, "ScheduleLog"); }
+ }
+
+ public async Task> GetScheduleLogsAsync()
+ {
+ List schedulelogs = await http.GetJsonAsync>(apiurl);
+ return schedulelogs.OrderBy(item => item.StartDate).ToList();
+ }
+
+ public async Task GetScheduleLogAsync(int ScheduleLogId)
+ {
+ return await http.GetJsonAsync(apiurl + "/" + ScheduleLogId.ToString());
+ }
+
+ public async Task AddScheduleLogAsync(ScheduleLog schedulelog)
+ {
+ return await http.PostJsonAsync(apiurl, schedulelog);
+ }
+
+ public async Task UpdateScheduleLogAsync(ScheduleLog schedulelog)
+ {
+ return await http.PutJsonAsync(apiurl + "/" + schedulelog.ScheduleLogId.ToString(), schedulelog);
+ }
+ public async Task DeleteScheduleLogAsync(int ScheduleLogId)
+ {
+ await http.DeleteAsync(apiurl + "/" + ScheduleLogId.ToString());
+ }
+ }
+}
diff --git a/Oqtane.Client/Services/ScheduleService.cs b/Oqtane.Client/Services/ScheduleService.cs
new file mode 100644
index 00000000..6375ba9b
--- /dev/null
+++ b/Oqtane.Client/Services/ScheduleService.cs
@@ -0,0 +1,54 @@
+using Oqtane.Models;
+using System.Threading.Tasks;
+using System.Net.Http;
+using System.Linq;
+using Microsoft.AspNetCore.Components;
+using System.Collections.Generic;
+using Oqtane.Shared;
+
+namespace Oqtane.Services
+{
+ public class ScheduleService : ServiceBase, IScheduleService
+ {
+ private readonly HttpClient http;
+ private readonly SiteState sitestate;
+ private readonly NavigationManager NavigationManager;
+
+ public ScheduleService(HttpClient http, SiteState sitestate, NavigationManager NavigationManager)
+ {
+ this.http = http;
+ this.sitestate = sitestate;
+ this.NavigationManager = NavigationManager;
+ }
+
+ private string apiurl
+ {
+ get { return CreateApiUrl(sitestate.Alias, NavigationManager.Uri, "Schedule"); }
+ }
+
+ public async Task> GetSchedulesAsync()
+ {
+ List schedules = await http.GetJsonAsync>(apiurl);
+ return schedules.OrderBy(item => item.Name).ToList();
+ }
+
+ public async Task GetScheduleAsync(int ScheduleId)
+ {
+ return await http.GetJsonAsync(apiurl + "/" + ScheduleId.ToString());
+ }
+
+ public async Task AddScheduleAsync(Schedule schedule)
+ {
+ return await http.PostJsonAsync(apiurl, schedule);
+ }
+
+ public async Task UpdateScheduleAsync(Schedule schedule)
+ {
+ return await http.PutJsonAsync(apiurl + "/" + schedule.ScheduleId.ToString(), schedule);
+ }
+ public async Task DeleteScheduleAsync(int ScheduleId)
+ {
+ await http.DeleteAsync(apiurl + "/" + ScheduleId.ToString());
+ }
+ }
+}
diff --git a/Oqtane.Client/Startup.cs b/Oqtane.Client/Startup.cs
index 9a114e77..b201a879 100644
--- a/Oqtane.Client/Startup.cs
+++ b/Oqtane.Client/Startup.cs
@@ -54,6 +54,8 @@ namespace Oqtane.Client
services.AddScoped();
services.AddScoped();
services.AddScoped();
+ services.AddScoped();
+ services.AddScoped();
// dynamically register module contexts and repository services
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
diff --git a/Oqtane.Client/Themes/Controls/ControlPanel.razor b/Oqtane.Client/Themes/Controls/ControlPanel.razor
index d27c38ad..2612557f 100644
--- a/Oqtane.Client/Themes/Controls/ControlPanel.razor
+++ b/Oqtane.Client/Themes/Controls/ControlPanel.razor
@@ -7,24 +7,49 @@
@inject IModuleService ModuleService
@inject IPageService PageService
@inject IPageModuleService PageModuleService
+@inject ILogService logger
@if (UserSecurity.IsAuthorized(PageState.User, "Edit", PageState.Page.Permissions))
{
| |