consolidate Clone logic for Resource objects

This commit is contained in:
sbwalker 2024-03-08 19:33:09 -05:00
parent 7f74e79253
commit 8e287da7b5
7 changed files with 53 additions and 38 deletions

View File

@ -271,7 +271,7 @@
protected override async Task OnParametersSetAsync()
{
// repopulate the SiteState service based on the values passed in the SiteState parameter (this is how state is marshalled across the render mode boundary)
ComponentSiteState.Clone(SiteState);
ComponentSiteState.Hydrate(SiteState);
_canViewAdminDashboard = CanViewAdminDashboard();
if (UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, PageState.Page.PermissionList))

View File

@ -71,7 +71,7 @@
if (ModuleType != null)
{
// repopulate the SiteState service based on the values passed in the SiteState parameter (this is how state is marshalled across the render mode boundary)
ComponentSiteState.Clone(SiteState);
ComponentSiteState.Hydrate(SiteState);
DynamicComponent = builder =>
{

View File

@ -569,21 +569,22 @@
// ensure resource does not exist already
if (!pageresources.Exists(item => item.Url.ToLower() == resource.Url.ToLower()))
{
pageresources.Add(new Resource
{
ResourceType = resource.ResourceType,
Url = resource.Url,
Integrity = resource.Integrity,
CrossOrigin = resource.CrossOrigin,
Bundle = resource.Bundle,
Location = resource.Location,
ES6Module = resource.ES6Module,
Content = resource.Content,
RenderMode = resource.RenderMode,
Reload = resource.Reload,
Level = level,
Namespace = name
});
pageresources.Add(resource.Clone(level, name));
// pageresources.Add(new Resource
// {
// ResourceType = resource.ResourceType,
// Url = resource.Url,
// Integrity = resource.Integrity,
// CrossOrigin = resource.CrossOrigin,
// Bundle = resource.Bundle,
// Location = resource.Location,
// ES6Module = resource.ES6Module,
// Content = resource.Content,
// RenderMode = resource.RenderMode,
// Reload = resource.Reload,
// Level = level,
// Namespace = name
// });
}
}
}

View File

@ -681,21 +681,22 @@
// ensure resource does not exist already
if (!pageresources.Exists(item => item.Url.ToLower() == resource.Url.ToLower()))
{
pageresources.Add(new Resource
{
ResourceType = resource.ResourceType,
Url = resource.Url,
Integrity = resource.Integrity,
CrossOrigin = resource.CrossOrigin,
Bundle = resource.Bundle,
Location = resource.Location,
ES6Module = resource.ES6Module,
Content = resource.Content,
RenderMode = resource.RenderMode,
Reload = resource.Reload,
Level = level,
Namespace = name
});
pageresources.Add(resource.Clone(level, name));
// pageresources.Add(new Resource
// {
// ResourceType = resource.ResourceType,
// Url = resource.Url,
// Integrity = resource.Integrity,
// CrossOrigin = resource.CrossOrigin,
// Bundle = resource.Bundle,
// Location = resource.Location,
// ES6Module = resource.ES6Module,
// Content = resource.Content,
// RenderMode = resource.RenderMode,
// Reload = resource.Reload,
// Level = level,
// Namespace = name
// });
}
}
}

View File

@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
namespace Oqtane.Models

View File

@ -77,6 +77,24 @@ namespace Oqtane.Models
/// </summary>
public string Namespace { get; set; }
public Resource Clone(ResourceLevel level, string name)
{
var resource = new Resource();
resource.ResourceType = ResourceType;
resource.Url = Url;
resource.Integrity = Integrity;
resource.CrossOrigin = CrossOrigin;
resource.Bundle = Bundle;
resource.Location = Location;
resource.ES6Module = ES6Module;
resource.Content = Content;
resource.RenderMode = RenderMode;
resource.Reload = Reload;
resource.Level = level;
resource.Namespace = name;
return resource;
}
[Obsolete("ResourceDeclaration is deprecated", false)]
public ResourceDeclaration Declaration { get; set; }
}

View File

@ -1,6 +1,3 @@
using System.Net;
using System.Xml.Linq;
using System;
using Oqtane.Models;
namespace Oqtane.Shared
@ -31,7 +28,7 @@ namespace Oqtane.Shared
}
}
public void Clone(SiteState siteState)
public void Hydrate(SiteState siteState)
{
Alias = siteState.Alias;
AntiForgeryToken = siteState.AntiForgeryToken;