mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Renaming ShellTopologyDescriptor to ShellDescriptor
More accurate and terse Associated tests, interface, component names changed to follow suit --HG-- branch : dev
This commit is contained in:
@@ -11,9 +11,9 @@ using Orchard.Events;
|
|||||||
|
|
||||||
namespace Orchard.Tests.Modules.Settings.Topology {
|
namespace Orchard.Tests.Modules.Settings.Topology {
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class TopologyDescriptorManagerTests : DatabaseEnabledTestsBase {
|
public class ShellDescriptorManagerTests : DatabaseEnabledTestsBase {
|
||||||
public override void Register(ContainerBuilder builder) {
|
public override void Register(ContainerBuilder builder) {
|
||||||
builder.RegisterType<TopologyDescriptorManager>().As<ITopologyDescriptorManager>();
|
builder.RegisterType<ShellDescriptorManager>().As<IShellDescriptorManager>();
|
||||||
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
builder.RegisterType<StubEventBus>().As<IEventBus>().SingleInstance();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -40,104 +40,104 @@ namespace Orchard.Tests.Modules.Settings.Topology {
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TopologyShouldBeNullWhenItsNotInitialized() {
|
public void TopologyShouldBeNullWhenItsNotInitialized() {
|
||||||
var manager = _container.Resolve<ITopologyDescriptorManager>();
|
var manager = _container.Resolve<IShellDescriptorManager>();
|
||||||
var topology = manager.GetTopologyDescriptor();
|
var topology = manager.GetShellDescriptor();
|
||||||
Assert.That(topology, Is.Null);
|
Assert.That(topology, Is.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void PriorSerialNumberOfZeroIsAcceptableForInitialUpdateAndSerialNumberIsNonzeroAfterwards() {
|
public void PriorSerialNumberOfZeroIsAcceptableForInitialUpdateAndSerialNumberIsNonzeroAfterwards() {
|
||||||
var manager = _container.Resolve<ITopologyDescriptorManager>();
|
var manager = _container.Resolve<IShellDescriptorManager>();
|
||||||
manager.UpdateTopologyDescriptor(
|
manager.UpdateShellDescriptor(
|
||||||
0,
|
0,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>());
|
Enumerable.Empty<ShellParameter>());
|
||||||
|
|
||||||
var topology = manager.GetTopologyDescriptor();
|
var topology = manager.GetShellDescriptor();
|
||||||
Assert.That(topology, Is.Not.Null);
|
Assert.That(topology, Is.Not.Null);
|
||||||
Assert.That(topology.SerialNumber, Is.Not.EqualTo(0));
|
Assert.That(topology.SerialNumber, Is.Not.EqualTo(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void NonZeroInitialUpdateThrowsInvalidOperationException() {
|
public void NonZeroInitialUpdateThrowsInvalidOperationException() {
|
||||||
var manager = _container.Resolve<ITopologyDescriptorManager>();
|
var manager = _container.Resolve<IShellDescriptorManager>();
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
1,
|
1,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void OnlyCorrectSerialNumberOnLaterUpdatesDoesNotThrowException() {
|
public void OnlyCorrectSerialNumberOnLaterUpdatesDoesNotThrowException() {
|
||||||
var manager = _container.Resolve<ITopologyDescriptorManager>();
|
var manager = _container.Resolve<IShellDescriptorManager>();
|
||||||
manager.UpdateTopologyDescriptor(
|
manager.UpdateShellDescriptor(
|
||||||
0,
|
0,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>());
|
Enumerable.Empty<ShellParameter>());
|
||||||
|
|
||||||
var topology = manager.GetTopologyDescriptor();
|
var topology = manager.GetShellDescriptor();
|
||||||
Assert.That(topology.SerialNumber, Is.Not.EqualTo(0));
|
Assert.That(topology.SerialNumber, Is.Not.EqualTo(0));
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
0,
|
0,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
topology.SerialNumber + 665321,
|
topology.SerialNumber + 665321,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
|
|
||||||
manager.UpdateTopologyDescriptor(
|
manager.UpdateShellDescriptor(
|
||||||
topology.SerialNumber,
|
topology.SerialNumber,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>());
|
Enumerable.Empty<ShellParameter>());
|
||||||
|
|
||||||
var topology2 = manager.GetTopologyDescriptor();
|
var topology2 = manager.GetShellDescriptor();
|
||||||
Assert.That(topology2.SerialNumber, Is.Not.EqualTo(0));
|
Assert.That(topology2.SerialNumber, Is.Not.EqualTo(0));
|
||||||
Assert.That(topology2.SerialNumber, Is.Not.EqualTo(topology.SerialNumber));
|
Assert.That(topology2.SerialNumber, Is.Not.EqualTo(topology.SerialNumber));
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
0,
|
0,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
topology.SerialNumber,
|
topology.SerialNumber,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
|
|
||||||
manager.UpdateTopologyDescriptor(
|
manager.UpdateShellDescriptor(
|
||||||
topology2.SerialNumber,
|
topology2.SerialNumber,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>());
|
Enumerable.Empty<ShellParameter>());
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
topology2.SerialNumber,
|
topology2.SerialNumber,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void SuccessfulUpdateRaisesAnEvent() {
|
public void SuccessfulUpdateRaisesAnEvent() {
|
||||||
var manager = _container.Resolve<ITopologyDescriptorManager>();
|
var manager = _container.Resolve<IShellDescriptorManager>();
|
||||||
var eventBus = _container.Resolve<IEventBus>() as StubEventBus;
|
var eventBus = _container.Resolve<IEventBus>() as StubEventBus;
|
||||||
|
|
||||||
Assert.That(eventBus.LastMessageName, Is.Null);
|
Assert.That(eventBus.LastMessageName, Is.Null);
|
||||||
|
|
||||||
Assert.Throws<InvalidOperationException>(() => manager.UpdateTopologyDescriptor(
|
Assert.Throws<InvalidOperationException>(() => manager.UpdateShellDescriptor(
|
||||||
5,
|
5,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>()));
|
Enumerable.Empty<ShellParameter>()));
|
||||||
|
|
||||||
Assert.That(eventBus.LastMessageName, Is.Null);
|
Assert.That(eventBus.LastMessageName, Is.Null);
|
||||||
|
|
||||||
manager.UpdateTopologyDescriptor(
|
manager.UpdateShellDescriptor(
|
||||||
0,
|
0,
|
||||||
Enumerable.Empty<TopologyFeature>(),
|
Enumerable.Empty<ShellFeature>(),
|
||||||
Enumerable.Empty<TopologyParameter>());
|
Enumerable.Empty<ShellParameter>());
|
||||||
|
|
||||||
Assert.That(eventBus.LastMessageName, Is.EqualTo(typeof(ITopologyDescriptorManager).FullName + ".UpdateTopologyDescriptor"));
|
Assert.That(eventBus.LastMessageName, Is.EqualTo(typeof(IShellDescriptorManager).FullName + ".UpdateShellDescriptor"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,7 @@ using Orchard.Environment.Topology.Models;
|
|||||||
|
|
||||||
namespace Orchard.Tests.Environment.Topology {
|
namespace Orchard.Tests.Environment.Topology {
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class DefaultTopologyDescriptorCacheTests {
|
public class DefaultShellDescriptorCacheTests {
|
||||||
private IContainer _container;
|
private IContainer _container;
|
||||||
private string _tempFolder;
|
private string _tempFolder;
|
||||||
private IAppDataFolder _appDataFolder;
|
private IAppDataFolder _appDataFolder;
|
||||||
@@ -23,7 +23,7 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
_appDataFolder.SetBasePath(_tempFolder);
|
_appDataFolder.SetBasePath(_tempFolder);
|
||||||
var builder = new ContainerBuilder();
|
var builder = new ContainerBuilder();
|
||||||
builder.RegisterInstance(_appDataFolder).As<IAppDataFolder>();
|
builder.RegisterInstance(_appDataFolder).As<IAppDataFolder>();
|
||||||
builder.RegisterType<TopologyDescriptorCache>().As<ITopologyDescriptorCache>();
|
builder.RegisterType<ShellDescriptorCache>().As<IShellDescriptorCache>();
|
||||||
_container = builder.Build();
|
_container = builder.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,15 +34,15 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void FetchReturnsNullForCacheMiss() {
|
public void FetchReturnsNullForCacheMiss() {
|
||||||
var service = _container.Resolve<ITopologyDescriptorCache>();
|
var service = _container.Resolve<IShellDescriptorCache>();
|
||||||
var descriptor = service.Fetch("No such shell");
|
var descriptor = service.Fetch("No such shell");
|
||||||
Assert.That(descriptor, Is.Null);
|
Assert.That(descriptor, Is.Null);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void StoreCanBeCalledMoreThanOnceOnTheSameName() {
|
public void StoreCanBeCalledMoreThanOnceOnTheSameName() {
|
||||||
var service = _container.Resolve<ITopologyDescriptorCache>();
|
var service = _container.Resolve<IShellDescriptorCache>();
|
||||||
var descriptor = new ShellTopologyDescriptor { SerialNumber = 6655321 };
|
var descriptor = new ShellDescriptor { SerialNumber = 6655321 };
|
||||||
service.Store("Hello", descriptor);
|
service.Store("Hello", descriptor);
|
||||||
service.Store("Hello", descriptor);
|
service.Store("Hello", descriptor);
|
||||||
var result = service.Fetch("Hello");
|
var result = service.Fetch("Hello");
|
||||||
@@ -52,10 +52,10 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void SecondCallUpdatesData() {
|
public void SecondCallUpdatesData() {
|
||||||
var service = _container.Resolve<ITopologyDescriptorCache>();
|
var service = _container.Resolve<IShellDescriptorCache>();
|
||||||
var descriptor1 = new ShellTopologyDescriptor { SerialNumber = 6655321 };
|
var descriptor1 = new ShellDescriptor { SerialNumber = 6655321 };
|
||||||
service.Store("Hello", descriptor1);
|
service.Store("Hello", descriptor1);
|
||||||
var descriptor2 = new ShellTopologyDescriptor { SerialNumber = 42 };
|
var descriptor2 = new ShellDescriptor { SerialNumber = 42 };
|
||||||
service.Store("Hello", descriptor2);
|
service.Store("Hello", descriptor2);
|
||||||
var result = service.Fetch("Hello");
|
var result = service.Fetch("Hello");
|
||||||
Assert.That(result, Is.Not.Null);
|
Assert.That(result, Is.Not.Null);
|
||||||
@@ -64,9 +64,9 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void StoreNullWillClearEntry() {
|
public void StoreNullWillClearEntry() {
|
||||||
var service = _container.Resolve<ITopologyDescriptorCache>();
|
var service = _container.Resolve<IShellDescriptorCache>();
|
||||||
|
|
||||||
var descriptor1 = new ShellTopologyDescriptor { SerialNumber = 6655321 };
|
var descriptor1 = new ShellDescriptor { SerialNumber = 6655321 };
|
||||||
service.Store("Hello", descriptor1);
|
service.Store("Hello", descriptor1);
|
||||||
var result1 = service.Fetch("Hello");
|
var result1 = service.Fetch("Hello");
|
||||||
Assert.That(result1, Is.Not.Null);
|
Assert.That(result1, Is.Not.Null);
|
||||||
@@ -79,17 +79,17 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void AllDataWillRoundTrip() {
|
public void AllDataWillRoundTrip() {
|
||||||
var service = _container.Resolve<ITopologyDescriptorCache>();
|
var service = _container.Resolve<IShellDescriptorCache>();
|
||||||
|
|
||||||
var descriptor = new ShellTopologyDescriptor {
|
var descriptor = new ShellDescriptor {
|
||||||
SerialNumber = 6655321,
|
SerialNumber = 6655321,
|
||||||
EnabledFeatures = new[] {
|
EnabledFeatures = new[] {
|
||||||
new TopologyFeature { Name = "f2"},
|
new ShellFeature { Name = "f2"},
|
||||||
new TopologyFeature { Name = "f4"},
|
new ShellFeature { Name = "f4"},
|
||||||
},
|
},
|
||||||
Parameters = new[] {
|
Parameters = new[] {
|
||||||
new TopologyParameter {Component = "p1", Name = "p2",Value = "p3"},
|
new ShellParameter {Component = "p1", Name = "p2",Value = "p3"},
|
||||||
new TopologyParameter {Component = "p4",Name = "p5", Value = "p6"},
|
new ShellParameter {Component = "p4",Name = "p5", Value = "p6"},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
var descriptorInfo = descriptor.ToDataString();
|
var descriptorInfo = descriptor.ToDataString();
|
||||||
@@ -107,7 +107,7 @@ namespace Orchard.Tests.Environment.Topology {
|
|||||||
|
|
||||||
static class DataContractExtensions {
|
static class DataContractExtensions {
|
||||||
public static string ToDataString<T>(this T obj) {
|
public static string ToDataString<T>(this T obj) {
|
||||||
var serializer = new DataContractSerializer(typeof(ShellTopologyDescriptor));
|
var serializer = new DataContractSerializer(typeof(ShellDescriptor));
|
||||||
var writer = new StringWriter();
|
var writer = new StringWriter();
|
||||||
using (var xmlWriter = XmlWriter.Create(writer)) {
|
using (var xmlWriter = XmlWriter.Create(writer)) {
|
||||||
serializer.WriteObject(xmlWriter, obj);
|
serializer.WriteObject(xmlWriter, obj);
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
name: Settings
|
name: Settings
|
||||||
antiforgery: enabled
|
antiforgery: enabled
|
||||||
|
features:
|
||||||
|
Settings:
|
||||||
|
description: Site configuration support
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using Orchard.Logging;
|
|||||||
|
|
||||||
namespace Orchard.Environment.ShellBuilders {
|
namespace Orchard.Environment.ShellBuilders {
|
||||||
|
|
||||||
public interface IShellContextFactory {
|
public interface IShellContextFactory {
|
||||||
ShellContext Create(ShellSettings settings);
|
ShellContext Create(ShellSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,18 +35,13 @@ namespace Orchard.Environment.ShellBuilders {
|
|||||||
|
|
||||||
Logger.Debug("Creating shell context for tenant {0}", settings.Name);
|
Logger.Debug("Creating shell context for tenant {0}", settings.Name);
|
||||||
|
|
||||||
var cachedDescriptor = _topologyDescriptorCache.Fetch(settings.Name);
|
var knownDescriptor = _topologyDescriptorCache.Fetch(settings.Name);
|
||||||
if (cachedDescriptor == null) {
|
if (knownDescriptor == null) {
|
||||||
Logger.Information("No topology cached. Starting with minimum components.");
|
Logger.Information("No topology cached. Starting with minimum components.");
|
||||||
cachedDescriptor = new ShellTopologyDescriptor {
|
knownDescriptor = MinimumTopologyDescriptor();
|
||||||
SerialNumber = 0,
|
|
||||||
EnabledFeatures = Enumerable.Empty<TopologyFeature>(),
|
|
||||||
Parameters = Enumerable.Empty<TopologyParameter>(),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
// handle null-(e.g. cache miss)
|
|
||||||
|
|
||||||
var topology = _compositionStrategy.Compose(cachedDescriptor);
|
var topology = _compositionStrategy.Compose(knownDescriptor);
|
||||||
var shellScope = _shellContainerFactory.CreateContainer(settings, topology);
|
var shellScope = _shellContainerFactory.CreateContainer(settings, topology);
|
||||||
|
|
||||||
ShellTopologyDescriptor currentDescriptor;
|
ShellTopologyDescriptor currentDescriptor;
|
||||||
@@ -55,7 +50,7 @@ namespace Orchard.Environment.ShellBuilders {
|
|||||||
currentDescriptor = topologyDescriptorProvider.GetTopologyDescriptor();
|
currentDescriptor = topologyDescriptorProvider.GetTopologyDescriptor();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cachedDescriptor.SerialNumber != currentDescriptor.SerialNumber) {
|
if (currentDescriptor != null && knownDescriptor.SerialNumber != currentDescriptor.SerialNumber) {
|
||||||
Logger.Information("Newer topology obtained. Rebuilding shell container.");
|
Logger.Information("Newer topology obtained. Rebuilding shell container.");
|
||||||
|
|
||||||
_topologyDescriptorCache.Store(settings.Name, currentDescriptor);
|
_topologyDescriptorCache.Store(settings.Name, currentDescriptor);
|
||||||
@@ -72,6 +67,17 @@ namespace Orchard.Environment.ShellBuilders {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static ShellTopologyDescriptor MinimumTopologyDescriptor() {
|
||||||
|
return new ShellTopologyDescriptor {
|
||||||
|
SerialNumber = -1,
|
||||||
|
EnabledFeatures = new[] {
|
||||||
|
new TopologyFeature {Name = "Orchard.Framework"},
|
||||||
|
new TopologyFeature {Name = "Settings"},
|
||||||
|
},
|
||||||
|
Parameters = Enumerable.Empty<TopologyParameter>(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private ShellContext CreateSetupContext() {
|
private ShellContext CreateSetupContext() {
|
||||||
Logger.Warning("No shell settings available. Creating shell context for setup");
|
Logger.Warning("No shell settings available. Creating shell context for setup");
|
||||||
|
|
||||||
|
|||||||
@@ -5,23 +5,23 @@ namespace Orchard.Environment.Topology {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Service resolved out of the shell container. Primarily used by host.
|
/// Service resolved out of the shell container. Primarily used by host.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface ITopologyDescriptorManager {
|
public interface IShellDescriptorManager : IDependency {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Uses shell-specific database or other resources to return
|
/// Uses shell-specific database or other resources to return
|
||||||
/// the current "correct" configuration. The host will use this information
|
/// the current "correct" configuration. The host will use this information
|
||||||
/// to reinitialize the shell.
|
/// to reinitialize the shell.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ShellTopologyDescriptor GetTopologyDescriptor();
|
ShellDescriptor GetShellDescriptor();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Alters databased information to match information passed as arguments.
|
/// Alters databased information to match information passed as arguments.
|
||||||
/// Prior SerialNumber used for optomistic concurrency, and an exception
|
/// Prior SerialNumber used for optomistic concurrency, and an exception
|
||||||
/// should be thrown if the number in storage doesn't match what's provided.
|
/// should be thrown if the number in storage doesn't match what's provided.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
void UpdateTopologyDescriptor(
|
void UpdateShellDescriptor(
|
||||||
int priorSerialNumber,
|
int priorSerialNumber,
|
||||||
IEnumerable<TopologyFeature> enabledFeatures,
|
IEnumerable<ShellFeature> enabledFeatures,
|
||||||
IEnumerable<TopologyParameter> parameters);
|
IEnumerable<ShellParameter> parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
25
src/Orchard/Environment/Topology/Models/ShellDescriptor.cs
Normal file
25
src/Orchard/Environment/Topology/Models/ShellDescriptor.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Orchard.Environment.Topology.Models {
|
||||||
|
public class ShellDescriptor {
|
||||||
|
public ShellDescriptor() {
|
||||||
|
EnabledFeatures = Enumerable.Empty<ShellFeature>();
|
||||||
|
Parameters = Enumerable.Empty<ShellParameter>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int SerialNumber { get; set; }
|
||||||
|
public IEnumerable<ShellFeature> EnabledFeatures { get; set; }
|
||||||
|
public IEnumerable<ShellParameter> Parameters { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShellFeature {
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ShellParameter {
|
||||||
|
public string Component { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Orchard.Environment.Topology.Models {
|
|
||||||
public class ShellTopologyDescriptor {
|
|
||||||
public ShellTopologyDescriptor() {
|
|
||||||
EnabledFeatures = Enumerable.Empty<TopologyFeature>();
|
|
||||||
Parameters = Enumerable.Empty<TopologyParameter>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int SerialNumber { get; set; }
|
|
||||||
public IEnumerable<TopologyFeature> EnabledFeatures { get; set; }
|
|
||||||
public IEnumerable<TopologyParameter> Parameters { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TopologyFeature {
|
|
||||||
public string Name { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TopologyParameter {
|
|
||||||
public string Component { get; set; }
|
|
||||||
public string Name { get; set; }
|
|
||||||
public string Value { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user