Build*Model -> Build*Shape (in process of changing to work with (Clay) shapes instead of ContentItemViewModel)

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2010-09-02 15:11:33 -07:00
parent 203b3e09c6
commit 33d47b3c39
36 changed files with 199 additions and 248 deletions

View File

@@ -103,7 +103,7 @@ namespace Orchard.Core.Tests.Common.Providers {
var item = contentManager.Create<ICommonPart>("test-item", VersionOptions.Draft, init => { });
var viewModel = new OwnerEditorViewModel() { Owner = "User" };
updateModel.Setup(x => x.TryUpdateModel(viewModel, "", null, null)).Returns(true);
contentManager.UpdateEditorModel(item.ContentItem, updateModel.Object);
contentManager.UpdateEditorShape(item.ContentItem, updateModel.Object);
}
class UpdatModelStub : IUpdateModel {
@@ -142,7 +142,7 @@ namespace Orchard.Core.Tests.Common.Providers {
var updater = new UpdatModelStub() { Owner = null };
contentManager.UpdateEditorModel(item.ContentItem, updater);
contentManager.UpdateEditorShape(item.ContentItem, updater);
}
[Test, Ignore("Fix pending")]
@@ -160,7 +160,7 @@ namespace Orchard.Core.Tests.Common.Providers {
var updater = new UpdatModelStub() {Owner = ""};
contentManager.UpdateEditorModel(item.ContentItem, updater);
contentManager.UpdateEditorShape(item.ContentItem, updater);
Assert.That(updater.ModelErrors.ContainsKey("CommonPart.Owner"), Is.True);
}

View File

@@ -58,7 +58,7 @@ namespace Orchard.Core.Tests.Routable.Services {
public void InvalidCharactersShouldBeReplacedByADash() {
var contentManager = _container.Resolve<IContentManager>();
var thing = contentManager.Create<Thing>(ThingDriver.ContentType.Name, t => {
var thing = contentManager.Create<Thing>("thing", t => {
t.As<RoutePart>().Record = new RoutePartRecord();
t.Title = "Please do not use any of the following characters in your slugs: \":\", \"?\", \"#\", \"[\", \"]\", \"@\", \"!\", \"$\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \";\", \"=\"";
});
@@ -159,13 +159,13 @@ namespace Orchard.Core.Tests.Routable.Services {
private RoutePart CreateRoutePart(string title, string slug = "", string containerPath = "") {
var contentManager = _container.Resolve<IContentManager>();
return contentManager.Create<Thing>(ThingDriver.ContentType.Name, t => {
return contentManager.Create<Thing>("thing", t => {
t.As<RoutePart>().Record = new RoutePartRecord();
if (!string.IsNullOrWhiteSpace(slug))
t.As<RoutePart>().Slug = slug;
t.Title = title;
if (!string.IsNullOrWhiteSpace(containerPath)) {
t.As<ICommonPart>().Container = contentManager.Create<Thing>(ThingDriver.ContentType.Name, tt => {
t.As<ICommonPart>().Container = contentManager.Create<Thing>("thing", tt => {
tt.As<RoutePart>().Path = containerPath;
tt.As<RoutePart>().Slug = containerPath;
});
@@ -191,10 +191,10 @@ namespace Orchard.Core.Tests.Routable.Services {
[UsedImplicitly]
public class ThingHandler : ContentHandler {
public ThingHandler() {
Filters.Add(new ActivatingFilter<Thing>(ThingDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>(ThingDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<CommonPart>(ThingDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<RoutePart>(ThingDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<Thing>("thing"));
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>("thing"));
Filters.Add(new ActivatingFilter<CommonPart>("thing"));
Filters.Add(new ActivatingFilter<RoutePart>("thing"));
}
}
@@ -212,20 +212,13 @@ namespace Orchard.Core.Tests.Routable.Services {
}
}
public class ThingDriver : ContentItemDriver<Thing> {
public readonly static ContentType ContentType = new ContentType {
Name = "thing",
DisplayName = "Thing"
};
}
[UsedImplicitly]
public class StuffHandler : ContentHandler {
public StuffHandler() {
Filters.Add(new ActivatingFilter<Stuff>(StuffDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>(StuffDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<CommonPart>(StuffDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<RoutePart>(StuffDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<Stuff>("stuff"));
Filters.Add(new ActivatingFilter<ContentPart<CommonPartVersionRecord>>("stuff"));
Filters.Add(new ActivatingFilter<CommonPart>("stuff"));
Filters.Add(new ActivatingFilter<RoutePart>("stuff"));
}
}
@@ -242,12 +235,5 @@ namespace Orchard.Core.Tests.Routable.Services {
set { this.As<RoutePart>().Slug = value; }
}
}
public class StuffDriver : ContentItemDriver<Stuff> {
public readonly static ContentType ContentType = new ContentType {
Name = "stuff",
DisplayName = "Stuff"
};
}
}
}

View File

@@ -7,6 +7,8 @@ using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.Drivers.Coordinators;
using Orchard.ContentManagement.Handlers;
using Orchard.DisplayManagement;
using Orchard.DisplayManagement.Implementation;
using Orchard.Environment.AutofacUtil;
using Orchard.Mvc.ViewModels;
using Orchard.Tests.Utility;
@@ -22,14 +24,15 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
var builder = new ContainerBuilder();
//builder.RegisterModule(new ImplicitCollectionSupportModule());
builder.RegisterType<ContentPartDriverCoordinator>().As<IContentHandler>();
builder.RegisterAutoMocking();
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
builder.RegisterAutoMocking(MockBehavior.Loose);
_container = builder.Build();
}
[Test]
public void DriverHandlerShouldNotThrowException() {
var contentHandler = _container.Resolve<IContentHandler>();
contentHandler.BuildDisplayModel(null);
contentHandler.BuildDisplayShape(null);
}
[Test]
@@ -41,12 +44,17 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
builder.RegisterInstance(driver2.Object);
builder.Update(_container);
var contentHandler = _container.Resolve<IContentHandler>();
var shapeHelperFactory = _container.Resolve<IShapeHelperFactory>();
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(new ContentItem()), null);
var shape = shapeHelperFactory.CreateHelper();
ContentItem foo = shape.Foo();
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(foo), "");
driver1.Verify(x => x.BuildDisplayModel(ctx), Times.Never());
contentHandler.BuildDisplayModel(ctx);
driver1.Verify(x => x.BuildDisplayModel(ctx));
driver1.Verify(x => x.BuildDisplayShape(ctx), Times.Never());
driver2.Verify(x => x.BuildDisplayShape(ctx), Times.Never());
contentHandler.BuildDisplayShape(ctx);
driver1.Verify(x => x.BuildDisplayShape(ctx));
driver2.Verify(x => x.BuildDisplayShape(ctx));
}
[Test]
@@ -55,15 +63,18 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
var builder = new ContainerUpdater();
builder.RegisterInstance(driver).As<IContentPartDriver>();
builder.Update(_container);
var contentHandler = _container.Resolve<IContentHandler>();
var shapeHelperFactory = _container.Resolve<IShapeHelperFactory>();
var item = new ContentItem();
item.Weld(new StubPart { Foo = new[] { "a", "b", "c" } });
var contentItem = new ContentItem();
contentItem.Weld(new StubPart { Foo = new[] { "a", "b", "c" } });
var shape = shapeHelperFactory.CreateHelper();
var item = shape.Item(contentItem);
var ctx = new BuildDisplayModelContext(new ContentItemViewModel(item), "");
Assert.That(ctx.ViewModel.Zones.Count(), Is.EqualTo(0));
contentHandler.BuildDisplayModel(ctx);
contentHandler.BuildDisplayShape(ctx);
Assert.That(ctx.ViewModel.Zones.Count(), Is.EqualTo(1));
Assert.That(ctx.ViewModel.Zones.Single().Key, Is.EqualTo("topmeta"));
Assert.That(ctx.ViewModel.Zones.Single().Value.Items.OfType<ContentPartDisplayZoneItem>().Single().Prefix, Is.EqualTo("Stub"));

View File

@@ -6,7 +6,7 @@ using Orchard.ContentManagement.ViewModels;
namespace Orchard.Tests.ContentManagement.Models {
public class AlphaHandler : ContentHandler {
public AlphaHandler() {
OnGetDisplayViewModel<Alpha>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" }));
OnGetDisplayShape<Alpha>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "3" }));
}
public override IEnumerable<ContentType> GetContentTypes() {
return new[] { new ContentType { Name = "alpha" } };

View File

@@ -4,7 +4,7 @@ using Orchard.ContentManagement.ViewModels;
namespace Orchard.Tests.ContentManagement.Models {
public class FlavoredHandler : ContentHandler {
public FlavoredHandler() {
OnGetDisplayViewModel<Flavored>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part)));
OnGetDisplayShape<Flavored>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part)));
}
protected override void Activating(ActivatingContentContext context) {
if (context.ContentType == "beta" || context.ContentType == "alpha") {

View File

@@ -4,7 +4,7 @@ using Orchard.ContentManagement.ViewModels;
namespace Orchard.Tests.ContentManagement.Models {
public class StyledHandler : ContentHandler {
public StyledHandler() {
OnGetDisplayViewModel<Styled>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "10" }));
OnGetDisplayShape<Styled>((ctx, part) => ctx.AddDisplay(new TemplateViewModel(part) { Position = "10" }));
}
protected override void Activating(ActivatingContentContext context) {

View File

@@ -190,7 +190,7 @@ namespace Orchard.Core.Contents.Controllers {
var entry = new ListContentsViewModel.Entry {
ContentItem = contentItem,
ContentItemMetadata = _contentManager.GetItemMetadata(contentItem),
ViewModel = _contentManager.BuildDisplayModel(contentItem, "SummaryAdmin"),
ViewModel = _contentManager.BuildDisplayShape(contentItem, "SummaryAdmin"),
};
if (string.IsNullOrEmpty(entry.ContentItemMetadata.DisplayText)) {
entry.ContentItemMetadata.DisplayText = string.Format("[{0}#{1}]", contentItem.ContentType, contentItem.Id);
@@ -225,7 +225,7 @@ namespace Orchard.Core.Contents.Controllers {
var model = new CreateItemViewModel {
Id = id,
Content = _contentManager.BuildEditorModel(contentItem)
Content = _contentManager.BuildEditorShape(contentItem)
};
PrepareEditorViewModel(model.Content);
return View("Create", model);
@@ -240,7 +240,7 @@ namespace Orchard.Core.Contents.Controllers {
return new HttpUnauthorizedResult();
_contentManager.Create(contentItem, VersionOptions.Draft);
model.Content = _contentManager.UpdateEditorModel(contentItem, this);
model.Content = _contentManager.UpdateEditorShape(contentItem, this);
if (!ModelState.IsValid) {
_transactionManager.Cancel();
@@ -266,7 +266,7 @@ namespace Orchard.Core.Contents.Controllers {
var model = new EditItemViewModel {
Id = id,
Content = _contentManager.BuildEditorModel(contentItem)
Content = _contentManager.BuildEditorShape(contentItem)
};
PrepareEditorViewModel(model.Content);
@@ -284,7 +284,7 @@ namespace Orchard.Core.Contents.Controllers {
if (!Services.Authorizer.Authorize(Permissions.EditOthersContent, contentItem, T("Couldn't edit content")))
return new HttpUnauthorizedResult();
model.Content = _contentManager.UpdateEditorModel(contentItem, this);
model.Content = _contentManager.UpdateEditorShape(contentItem, this);
if (!ModelState.IsValid) {
_transactionManager.Cancel();
PrepareEditorViewModel(model.Content);

View File

@@ -20,7 +20,7 @@ namespace Orchard.Core.Contents.Controllers {
var contentItem = _contentManager.Get(id, VersionOptions.Published);
var model = Shape.Content(
_contentManager.BuildDisplayModel(contentItem, "Detail")
_contentManager.BuildDisplayShape(contentItem, "Detail")
);
//PrepareDisplayViewModel(model.Content);
return View(model);
@@ -37,7 +37,7 @@ namespace Orchard.Core.Contents.Controllers {
var contentItem = _contentManager.Get(id, versionOptions);
var model = new DisplayItemViewModel {
Content = _contentManager.BuildDisplayModel(contentItem, "Detail")
Content = _contentManager.BuildDisplayShape(contentItem, "Detail")
};
PrepareDisplayViewModel(model.Content);
return View("Preview", model);

View File

@@ -60,7 +60,7 @@ namespace Orchard.Core.Localization.Controllers {
Id = id,
SelectedCulture = selectedCulture,
SiteCultures = siteCultures,
Content = _contentManager.BuildEditorModel(contentItem)
Content = _contentManager.BuildEditorShape(contentItem)
};
Services.TransactionManager.Cancel();
@@ -98,13 +98,13 @@ namespace Orchard.Core.Localization.Controllers {
}
}
viewModel.Content = _contentManager.UpdateEditorModel(contentItemTranslation, this);
viewModel.Content = _contentManager.UpdateEditorShape(contentItemTranslation, this);
if (!ModelState.IsValid) {
Services.TransactionManager.Cancel();
viewModel.SiteCultures = _cultureManager.ListCultures().Where(s => s != _localizationService.GetContentCulture(contentItem) && s != _cultureManager.GetSiteCulture());
contentItem.As<LocalizationPart>().Culture.Culture = null;
viewModel.Content = _contentManager.BuildEditorModel(contentItem);
viewModel.Content = _contentManager.BuildEditorShape(contentItem);
PrepareEditorViewModel(viewModel.Content);
return View(viewModel);
}

View File

@@ -80,8 +80,8 @@ namespace Orchard.Core.Navigation.Controllers {
if (!_services.Authorizer.Authorize(Permissions.ManageMainMenu, T("Couldn't manage the main menu")))
return new HttpUnauthorizedResult();
var menuPart = _services.ContentManager.New<MenuPart>(MenuItemPartDriver.ContentType.Name);
model.MenuItem = _services.ContentManager.UpdateEditorModel(menuPart, this);
var menuPart = _services.ContentManager.New<MenuPart>("MenuItem");
model.MenuItem = _services.ContentManager.UpdateEditorShape(menuPart, this);
if (!ModelState.IsValid) {
_services.TransactionManager.Cancel();

View File

@@ -6,32 +6,20 @@ using Orchard.Security;
namespace Orchard.Core.Navigation.Drivers {
[UsedImplicitly]
public class MenuItemPartDriver : ContentItemDriver<MenuItemPart> {
public class MenuItemPartDriver : ContentPartDriver<MenuItemPart> {
private readonly IAuthorizationService _authorizationService;
private readonly IWorkContextAccessor _workContextAccessor;
public readonly static ContentType ContentType = new ContentType {
Name = "MenuItem",
DisplayName = "Menu Item"
};
public MenuItemPartDriver(IAuthorizationService authorizationService) {
public MenuItemPartDriver(IAuthorizationService authorizationService, IWorkContextAccessor workContextAccessor) {
_authorizationService = authorizationService;
}
public virtual IUser CurrentUser { get; set; }
protected override ContentType GetContentType() {
return ContentType;
}
protected override string Prefix { get { return ""; } }
protected override string GetDisplayText(MenuItemPart itemPart) {
return itemPart.Url;
_workContextAccessor = workContextAccessor;
}
protected override DriverResult Editor(MenuItemPart itemPart, IUpdateModel updater) {
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, CurrentUser, itemPart))
//todo: (heskew) need context
var currentUser = _workContextAccessor.GetContext().CurrentUser;
if (!_authorizationService.TryCheckAccess(Permissions.ManageMainMenu, currentUser, itemPart))
return null;
updater.TryUpdateModel(itemPart, Prefix, null, null);

View File

@@ -1,5 +1,4 @@
using JetBrains.Annotations;
using Orchard.Core.Navigation.Drivers;
using Orchard.Core.Navigation.Models;
using Orchard.Data;
using Orchard.ContentManagement.Handlers;
@@ -8,7 +7,7 @@ namespace Orchard.Core.Navigation.Handlers {
[UsedImplicitly]
public class MenuItemPartHandler : ContentHandler {
public MenuItemPartHandler(IRepository<MenuItemPartRecord> repository) {
Filters.Add(new ActivatingFilter<MenuItemPart>(MenuItemPartDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<MenuItemPart>("MenuItem"));
Filters.Add(StorageFilter.For(repository));
}
}

View File

@@ -40,7 +40,7 @@ namespace Orchard.Core.Routable.Controllers {
throw new ApplicationException("Ambiguous content");
}
var model = new RoutableDisplayViewModel {
Routable = _contentManager.BuildDisplayModel<IRoutableAspect>(hits.Single(), "Detail")
Routable = _contentManager.BuildDisplayShape<IRoutableAspect>(hits.Single(), "Detail")
};
PrepareDisplayViewModel(model.Routable);
return View("Display", model);
@@ -71,7 +71,7 @@ namespace Orchard.Core.Routable.Controllers {
}
}
_contentManager.UpdateEditorModel(contentItem, this);
_contentManager.UpdateEditorShape(contentItem, this);
_transactionManager.Cancel();
return Json(contentItem.As<IRoutableAspect>().Slug ?? slug);

View File

@@ -37,7 +37,7 @@ namespace Orchard.Core.Routable.Services {
return new NotFoundResult();
var model = new RoutableDisplayViewModel {
Routable = _contentManager.BuildDisplayModel<IRoutableAspect>(contentItem.As<RoutePart>(), "Detail")
Routable = _contentManager.BuildDisplayShape<IRoutableAspect>(contentItem.As<RoutePart>(), "Detail")
};
return new ViewResult {

View File

@@ -33,7 +33,7 @@ namespace Orchard.Core.Settings.Controllers {
Site = _siteService.GetSiteSettings().As<SiteSettingsPart>(),
SiteCultures = _cultureManager.ListCultures()
};
model.ViewModel = Services.ContentManager.BuildEditorModel(model.Site);
model.ViewModel = Services.ContentManager.BuildEditorShape(model.Site);
return View(model);
}
@@ -43,7 +43,7 @@ namespace Orchard.Core.Settings.Controllers {
return new HttpUnauthorizedResult();
var viewModel = new SettingsIndexViewModel { Site = _siteService.GetSiteSettings().As<SiteSettingsPart>() };
viewModel.ViewModel = Services.ContentManager.UpdateEditorModel(viewModel.Site.ContentItem, this);
viewModel.ViewModel = Services.ContentManager.UpdateEditorShape(viewModel.Site.ContentItem, this);
if (!TryUpdateModel(viewModel)) {
return View(viewModel);

View File

@@ -34,8 +34,8 @@ namespace Orchard.DevTools.Controllers {
.Select(x => x.GetType())
.SelectMany(x => AllTypes(x))
.Distinct();
model.DisplayModel = _contentManager.BuildDisplayModel(model.Item, "Detail");
model.EditorModel = _contentManager.BuildEditorModel(model.Item);
model.DisplayModel = _contentManager.BuildDisplayShape(model.Item, "Detail");
model.EditorModel = _contentManager.BuildEditorShape(model.Item);
return View(model);
}

View File

@@ -6,12 +6,12 @@ using Orchard.DevTools.Models;
namespace Orchard.DevTools.Handlers {
[UsedImplicitly]
public class DebugLinkHandler : ContentHandler {
protected override void BuildDisplayModel(BuildDisplayModelContext context) {
protected override void BuildDisplayShape(BuildDisplayModelContext context) {
var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel<Settings.DevToolsSettings>();
if (devToolsSettings.ShowDebugLinks)
context.AddDisplay(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" });
}
protected override void BuildEditorModel(BuildEditorModelContext context) {
protected override void BuildEditorShape(BuildEditorModelContext context) {
var devToolsSettings = context.ContentItem.TypeDefinition.Settings.GetModel<Settings.DevToolsSettings>();
if (devToolsSettings.ShowDebugLinks)
context.AddEditor(new TemplateViewModel(new ShowDebugLink { ContentItem = context.ContentItem }) { TemplateName = "Parts/DevTools.ShowDebugLink", ZoneName = "recap", Position = "9999" });

View File

@@ -4,7 +4,6 @@ using Orchard.ContentManagement;
using Orchard.Localization;
using Orchard.Security;
using Orchard.UI.Notify;
using Orchard.Users.Drivers;
using Orchard.Users.Models;
using Orchard.Users.Services;
using Orchard.Users.ViewModels;
@@ -50,9 +49,9 @@ namespace Orchard.Users.Controllers {
if (!Services.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to manage users")))
return new HttpUnauthorizedResult();
var user = Services.ContentManager.New<IUser>(UserPartDriver.ContentType.Name);
var user = Services.ContentManager.New<IUser>("User");
var model = new UserCreateViewModel {
User = Services.ContentManager.BuildEditorModel(user)
User = Services.ContentManager.BuildEditorShape(user)
};
return View(model);
}
@@ -62,8 +61,8 @@ namespace Orchard.Users.Controllers {
if (!Services.Authorizer.Authorize(Permissions.ManageUsers, T("Not authorized to manage users")))
return new HttpUnauthorizedResult();
var user = Services.ContentManager.New<IUser>(UserPartDriver.ContentType.Name);
model.User = Services.ContentManager.UpdateEditorModel(user, this);
var user = Services.ContentManager.New<IUser>("User");
model.User = Services.ContentManager.UpdateEditorShape(user, this);
if (!ModelState.IsValid) {
Services.TransactionManager.Cancel();
return View(model);
@@ -84,7 +83,7 @@ namespace Orchard.Users.Controllers {
model.Email,
null, null, true));
model.User = Services.ContentManager.UpdateEditorModel(user, this);
model.User = Services.ContentManager.UpdateEditorShape(user, this);
if (ModelState.IsValid == false) {
Services.TransactionManager.Cancel();
@@ -99,7 +98,7 @@ namespace Orchard.Users.Controllers {
return new HttpUnauthorizedResult();
return View(new UserEditViewModel {
User = Services.ContentManager.BuildEditorModel<UserPart>(id)
User = Services.ContentManager.BuildEditorShape<UserPart>(id)
});
}
@@ -109,7 +108,7 @@ namespace Orchard.Users.Controllers {
return new HttpUnauthorizedResult();
var model = new UserEditViewModel {
User = Services.ContentManager.UpdateEditorModel<UserPart>(id, this)
User = Services.ContentManager.UpdateEditorShape<UserPart>(id, this)
};
TryUpdateModel(model);

View File

@@ -1,14 +1,13 @@
using JetBrains.Annotations;
using Orchard.Data;
using Orchard.ContentManagement.Handlers;
using Orchard.Users.Drivers;
using Orchard.Users.Models;
namespace Orchard.Users.Handlers {
[UsedImplicitly]
public class UserPartHandler : ContentHandler {
public UserPartHandler(IRepository<UserPartRecord> repository) {
Filters.Add(new ActivatingFilter<UserPart>(UserPartDriver.ContentType.Name));
Filters.Add(new ActivatingFilter<UserPart>("User"));
Filters.Add(StorageFilter.For(repository));
}
}

View File

@@ -8,7 +8,6 @@ using Orchard.Data;
using Orchard.Logging;
using Orchard.ContentManagement;
using Orchard.Security;
using Orchard.Users.Drivers;
using Orchard.Users.Models;
namespace Orchard.Users.Services {
@@ -34,7 +33,7 @@ namespace Orchard.Users.Services {
public IUser CreateUser(CreateUserParams createUserParams) {
Logger.Information("CreateUser {0} {1}", createUserParams.Username, createUserParams.Email);
return _contentManager.Create<UserPart>(UserPartDriver.ContentType.Name, init =>
return _contentManager.Create<UserPart>("User", init =>
{
init.Record.UserName = createUserParams.Username;
init.Record.Email = createUserParams.Email;

View File

@@ -165,26 +165,26 @@ namespace Orchard.ContentManagement {
/* Display and editor convenience extension methods */
public static ContentItemViewModel<T> BuildDisplayModel<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
public static ContentItemViewModel<T> BuildDisplayShape<T>(this IContentManager manager, int id, string displayType) where T : class, IContent {
var content = manager.Get<T>(id);
if (content == null)
return null;
return manager.BuildDisplayModel(content, displayType);
return manager.BuildDisplayShape(content, displayType);
}
public static ContentItemViewModel<T> BuildEditorModel<T>(this IContentManager manager, int id) where T : class, IContent {
public static ContentItemViewModel<T> BuildEditorShape<T>(this IContentManager manager, int id) where T : class, IContent {
var content = manager.Get<T>(id);
if (content == null)
return null;
return manager.BuildEditorModel(content);
return manager.BuildEditorShape(content);
}
public static ContentItemViewModel<T> UpdateEditorModel<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
public static ContentItemViewModel<T> UpdateEditorShape<T>(this IContentManager manager, int id, IUpdateModel updater) where T : class, IContent {
var content = manager.Get<T>(id);
if (content == null)
return null;
return manager.UpdateEditorModel(content, updater);
return manager.UpdateEditorShape(content, updater);
}

View File

@@ -380,37 +380,47 @@ namespace Orchard.ContentManagement {
};
foreach (var handler in Handlers) {
handler.GetContentItemMetadata(context);
//-- was - from ContentItemDriver --
//void IContentItemDriver.GetContentItemMetadata(GetContentItemMetadataContext context) {
// var item = context.ContentItem.As<TContent>();
// if (item != null) {
// context.Metadata.DisplayText = GetDisplayText(item) ?? context.Metadata.DisplayText;
// context.Metadata.DisplayRouteValues = GetDisplayRouteValues(item) ?? context.Metadata.DisplayRouteValues;
// context.Metadata.EditorRouteValues = GetEditorRouteValues(item) ?? context.Metadata.EditorRouteValues;
// context.Metadata.CreateRouteValues = GetCreateRouteValues(item) ?? context.Metadata.CreateRouteValues;
// }
//}
}
return context.Metadata;
}
public ContentItemViewModel<TContentPart> BuildDisplayModel<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
public ContentItemViewModel<TContentPart> BuildDisplayShape<TContentPart>(TContentPart content, string displayType) where TContentPart : IContent {
if (content == null)
return null;
var displayModel = new ContentItemViewModel<TContentPart>(content);
var context = new BuildDisplayModelContext(displayModel, displayType);
foreach (var handler in Handlers) {
handler.BuildDisplayModel(context);
handler.BuildDisplayShape(context);
}
return displayModel;
}
public ContentItemViewModel<TContentPart> BuildEditorModel<TContentPart>(TContentPart content) where TContentPart : IContent {
public ContentItemViewModel<TContentPart> BuildEditorShape<TContentPart>(TContentPart content) where TContentPart : IContent {
var editorModel = new ContentItemViewModel<TContentPart>(content);
var context = new BuildEditorModelContext(editorModel);
foreach (var handler in Handlers) {
handler.BuildEditorModel(context);
handler.BuildEditorShape(context);
}
return editorModel;
}
public ContentItemViewModel<TContentPart> UpdateEditorModel<TContentPart>(TContentPart content, IUpdateModel updater) where TContentPart : IContent {
public ContentItemViewModel<TContentPart> UpdateEditorShape<TContentPart>(TContentPart content, IUpdateModel updater) where TContentPart : IContent {
var editorModel = new ContentItemViewModel<TContentPart>(content);
var context = new UpdateEditorModelContext(editorModel, updater);
foreach (var handler in Handlers) {
handler.UpdateEditorModel(context);
handler.UpdateEditorShape(context);
}
return editorModel;
}

View File

@@ -9,15 +9,15 @@ namespace Orchard.ContentManagement.Drivers {
protected virtual string Prefix { get { return ""; } }
protected virtual string Zone { get { return "body"; } }
DriverResult IContentFieldDriver.BuildDisplayModel(BuildDisplayModelContext context) {
DriverResult IContentFieldDriver.BuildDisplayShape(BuildDisplayModelContext context) {
return Process(context.ContentItem, (part, field) => Display(part, field, context.DisplayType));
}
DriverResult IContentFieldDriver.BuildEditorModel(BuildEditorModelContext context) {
DriverResult IContentFieldDriver.BuildEditorShape(BuildEditorModelContext context) {
return Process(context.ContentItem, Editor);
}
DriverResult IContentFieldDriver.UpdateEditorModel(UpdateEditorModelContext context) {
DriverResult IContentFieldDriver.UpdateEditorShape(UpdateEditorModelContext context) {
return Process(context.ContentItem, (part, field) => Editor(part, field, context.Updater));
}

View File

@@ -7,17 +7,17 @@ namespace Orchard.ContentManagement.Drivers {
protected virtual string Prefix { get { return ""; } }
protected virtual string Zone { get { return "body"; } }
DriverResult IContentPartDriver.BuildDisplayModel(BuildDisplayModelContext context) {
DriverResult IContentPartDriver.BuildDisplayShape(BuildDisplayModelContext context) {
var part = context.ContentItem.As<TContent>();
return part == null ? null : Display(part, context.DisplayType);
}
DriverResult IContentPartDriver.BuildEditorModel(BuildEditorModelContext context) {
DriverResult IContentPartDriver.BuildEditorShape(BuildEditorModelContext context) {
var part = context.ContentItem.As<TContent>();
return part == null ? null : Editor(part);
}
DriverResult IContentPartDriver.UpdateEditorModel(UpdateEditorModelContext context) {
DriverResult IContentPartDriver.UpdateEditorShape(UpdateEditorModelContext context) {
var part = context.ContentItem.As<TContent>();
return part == null ? null : Editor(part, context.Updater);
}

View File

@@ -29,35 +29,35 @@ namespace Orchard.ContentManagement.Drivers.Coordinators {
var fieldTypeName = partFieldDefinition.FieldDefinition.Name;
var fieldInfo = fieldInfos.FirstOrDefault(x => x.FieldTypeName == fieldTypeName);
if (fieldInfo != null) {
var storage = _fieldStorageProviderSelector
var storage = _fieldStorageProviderSelector
.GetProvider(partFieldDefinition)
.BindStorage(contentPart, partFieldDefinition);
var field = fieldInfo.Factory(partFieldDefinition, storage);
contentPart.Weld(field);
var field = fieldInfo.Factory(partFieldDefinition, storage);
contentPart.Weld(field);
}
}
}
}
public override void BuildDisplayModel(BuildDisplayModelContext context) {
public override void BuildDisplayShape(BuildDisplayModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildDisplayModel(context);
var result = driver.BuildDisplayShape(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void BuildEditorModel(BuildEditorModelContext context) {
public override void BuildEditorShape(BuildEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildEditorModel(context);
var result = driver.BuildEditorShape(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void UpdateEditorModel(UpdateEditorModelContext context) {
public override void UpdateEditorShape(UpdateEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.UpdateEditorModel(context);
var result = driver.UpdateEditorShape(context);
if (result != null)
result.Apply(context);
}, Logger);

View File

@@ -36,25 +36,25 @@ namespace Orchard.ContentManagement.Drivers.Coordinators {
}
}
public override void BuildDisplayModel(BuildDisplayModelContext context) {
public override void BuildDisplayShape(BuildDisplayModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildDisplayModel(context);
var result = driver.BuildDisplayShape(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void BuildEditorModel(BuildEditorModelContext context) {
public override void BuildEditorShape(BuildEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.BuildEditorModel(context);
var result = driver.BuildEditorShape(context);
if (result != null)
result.Apply(context);
}, Logger);
}
public override void UpdateEditorModel(UpdateEditorModelContext context) {
public override void UpdateEditorShape(UpdateEditorModelContext context) {
_drivers.Invoke(driver => {
var result = driver.UpdateEditorModel(context);
var result = driver.UpdateEditorShape(context);
if (result != null)
result.Apply(context);
}, Logger);

View File

@@ -4,9 +4,9 @@ using Orchard.ContentManagement.MetaData;
namespace Orchard.ContentManagement.Drivers {
public interface IContentFieldDriver : IEvents {
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
DriverResult BuildEditorModel(BuildEditorModelContext context);
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
DriverResult BuildDisplayShape(BuildDisplayModelContext context);
DriverResult BuildEditorShape(BuildEditorModelContext context);
DriverResult UpdateEditorShape(UpdateEditorModelContext context);
IEnumerable<ContentFieldInfo> GetFieldInfo();
}

View File

@@ -4,9 +4,9 @@ using Orchard.ContentManagement.MetaData;
namespace Orchard.ContentManagement.Drivers {
public interface IContentPartDriver : IEvents {
DriverResult BuildDisplayModel(BuildDisplayModelContext context);
DriverResult BuildEditorModel(BuildEditorModelContext context);
DriverResult UpdateEditorModel(UpdateEditorModelContext context);
DriverResult BuildDisplayShape(BuildDisplayModelContext context);
DriverResult BuildEditorShape(BuildEditorModelContext context);
DriverResult UpdateEditorShape(UpdateEditorModelContext context);
IEnumerable<ContentPartInfo> GetPartInfo();
}

View File

@@ -80,16 +80,16 @@ namespace Orchard.ContentManagement.Handlers {
protected void OnGetContentItemMetadata<TPart>(Action<GetContentItemMetadataContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnGetItemMetadata = handler });
}
protected void OnGetDisplayViewModel<TPart>(Action<BuildDisplayModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnGetDisplayViewModel = handler });
protected void OnGetDisplayShape<TPart>(Action<BuildDisplayModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnGetDisplayShape = handler });
}
protected void OnGetEditorViewModel<TPart>(Action<BuildEditorModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnGetEditorViewModel = handler });
protected void OnGetEditorShape<TPart>(Action<BuildEditorModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnGetEditorShape = handler });
}
protected void OnUpdateEditorViewModel<TPart>(Action<UpdateEditorModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnUpdateEditorViewModel = handler });
protected void OnUpdateEditorShape<TPart>(Action<UpdateEditorModelContext, TPart> handler) where TPart : class, IContent {
Filters.Add(new InlineTemplateFilter<TPart> { OnUpdateEditorShape = handler });
}
class InlineStorageFilter<TPart> : StorageFilterBase<TPart> where TPart : class, IContent {
@@ -164,20 +164,20 @@ namespace Orchard.ContentManagement.Handlers {
class InlineTemplateFilter<TPart> : TemplateFilterBase<TPart> where TPart : class, IContent {
public Action<GetContentItemMetadataContext, TPart> OnGetItemMetadata { get; set; }
public Action<BuildDisplayModelContext, TPart> OnGetDisplayViewModel { get; set; }
public Action<BuildEditorModelContext, TPart> OnGetEditorViewModel { get; set; }
public Action<UpdateEditorModelContext, TPart> OnUpdateEditorViewModel { get; set; }
public Action<BuildDisplayModelContext, TPart> OnGetDisplayShape { get; set; }
public Action<BuildEditorModelContext, TPart> OnGetEditorShape { get; set; }
public Action<UpdateEditorModelContext, TPart> OnUpdateEditorShape { get; set; }
protected override void GetContentItemMetadata(GetContentItemMetadataContext context, TPart instance) {
if (OnGetItemMetadata != null) OnGetItemMetadata(context, instance);
}
protected override void BuildDisplayModel(BuildDisplayModelContext context, TPart instance) {
if (OnGetDisplayViewModel != null) OnGetDisplayViewModel(context, instance);
protected override void BuildDisplayShape(BuildDisplayModelContext context, TPart instance) {
if (OnGetDisplayShape != null) OnGetDisplayShape(context, instance);
}
protected override void BuildEditorModel(BuildEditorModelContext context, TPart instance) {
if (OnGetEditorViewModel != null) OnGetEditorViewModel(context, instance);
protected override void BuildEditorShape(BuildEditorModelContext context, TPart instance) {
if (OnGetEditorShape != null) OnGetEditorShape(context, instance);
}
protected override void UpdateEditorModel(UpdateEditorModelContext context, TPart instance) {
if (OnUpdateEditorViewModel != null) OnUpdateEditorViewModel(context, instance);
protected override void UpdateEditorShape(UpdateEditorModelContext context, TPart instance) {
if (OnUpdateEditorShape != null) OnUpdateEditorShape(context, instance);
}
}
@@ -292,20 +292,20 @@ namespace Orchard.ContentManagement.Handlers {
filter.GetContentItemMetadata(context);
GetItemMetadata(context);
}
void IContentHandler.BuildDisplayModel(BuildDisplayModelContext context) {
void IContentHandler.BuildDisplayShape(BuildDisplayModelContext context) {
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
filter.BuildDisplayModel(context);
BuildDisplayModel(context);
filter.BuildDisplayShape(context);
BuildDisplayShape(context);
}
void IContentHandler.BuildEditorModel(BuildEditorModelContext context) {
void IContentHandler.BuildEditorShape(BuildEditorModelContext context) {
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
filter.BuildEditorModel(context);
BuildEditorModel(context);
filter.BuildEditorShape(context);
BuildEditorShape(context);
}
void IContentHandler.UpdateEditorModel(UpdateEditorModelContext context) {
void IContentHandler.UpdateEditorShape(UpdateEditorModelContext context) {
foreach (var filter in Filters.OfType<IContentTemplateFilter>())
filter.UpdateEditorModel(context);
UpdateEditorModel(context);
filter.UpdateEditorShape(context);
UpdateEditorShape(context);
}
protected virtual void Activating(ActivatingContentContext context) { }
@@ -335,8 +335,8 @@ namespace Orchard.ContentManagement.Handlers {
protected virtual void Indexed(IndexContentContext context) { }
protected virtual void GetItemMetadata(GetContentItemMetadataContext context) { }
protected virtual void BuildDisplayModel(BuildDisplayModelContext context) { }
protected virtual void BuildEditorModel(BuildEditorModelContext context) { }
protected virtual void UpdateEditorModel(UpdateEditorModelContext context) { }
protected virtual void BuildDisplayShape(BuildDisplayModelContext context) { }
protected virtual void BuildEditorShape(BuildEditorModelContext context) { }
protected virtual void UpdateEditorShape(UpdateEditorModelContext context) { }
}
}

View File

@@ -7,67 +7,27 @@ namespace Orchard.ContentManagement.Handlers {
return Enumerable.Empty<ContentType>();
}
public virtual void Activating(ActivatingContentContext context) {
}
public virtual void Activating(ActivatingContentContext context) {}
public virtual void Activated(ActivatedContentContext context) {}
public virtual void Initializing(InitializingContentContext context) {}
public virtual void Creating(CreateContentContext context) {}
public virtual void Created(CreateContentContext context) {}
public virtual void Saving(SaveContentContext context) {}
public virtual void Saved(SaveContentContext context) {}
public virtual void Loading(LoadContentContext context) {}
public virtual void Loaded(LoadContentContext context) {}
public virtual void Versioning(VersionContentContext context) {}
public virtual void Versioned(VersionContentContext context) {}
public virtual void Publishing(PublishContentContext context) {}
public virtual void Published(PublishContentContext context) {}
public virtual void Removing(RemoveContentContext context) {}
public virtual void Removed(RemoveContentContext context) {}
public virtual void Indexing(IndexContentContext context) {}
public virtual void Indexed(IndexContentContext context) {}
public virtual void Activated(ActivatedContentContext context) {
}
public virtual void Initializing(InitializingContentContext context) {
}
public virtual void Creating(CreateContentContext context) {
}
public virtual void Created(CreateContentContext context) {
}
public virtual void Saving(SaveContentContext context) {
}
public virtual void Saved(SaveContentContext context) {
}
public virtual void Loading(LoadContentContext context) {
}
public virtual void Loaded(LoadContentContext context) {
}
public virtual void Versioning(VersionContentContext context) {
}
public virtual void Versioned(VersionContentContext context) {
}
public virtual void Publishing(PublishContentContext context) {
}
public virtual void Published(PublishContentContext context) {
}
public virtual void Removing(RemoveContentContext context) {
}
public virtual void Removed(RemoveContentContext context) {
}
public virtual void Indexing(IndexContentContext context) {
}
public virtual void Indexed(IndexContentContext context) {
}
public virtual void GetContentItemMetadata(GetContentItemMetadataContext context) {
}
public virtual void BuildDisplayModel(BuildDisplayModelContext context) {
}
public virtual void BuildEditorModel(BuildEditorModelContext context) {
}
public virtual void UpdateEditorModel(UpdateEditorModelContext context) {
}
public virtual void GetContentItemMetadata(GetContentItemMetadataContext context) {}
public virtual void BuildDisplayShape(BuildDisplayModelContext context) {}
public virtual void BuildEditorShape(BuildEditorModelContext context) {}
public virtual void UpdateEditorShape(UpdateEditorModelContext context) {}
}
}

View File

@@ -22,7 +22,7 @@ namespace Orchard.ContentManagement.Handlers {
_updater = (context, viewModel) => context.Updater.TryUpdateModel(viewModel, "", null, null);
}
protected override void BuildDisplayModel(BuildDisplayModelContext context, TContent instance) {
protected override void BuildDisplayShape(BuildDisplayModelContext context, TContent instance) {
context.ViewModel.TemplateName = _templateName;
var longestMatch = LongestMatch(context.DisplayType);
if (!string.IsNullOrEmpty(longestMatch))
@@ -54,7 +54,7 @@ namespace Orchard.ContentManagement.Handlers {
});
}
protected override void BuildEditorModel(BuildEditorModelContext context, TContent instance) {
protected override void BuildEditorShape(BuildEditorModelContext context, TContent instance) {
context.ViewModel.TemplateName = _templateName;
context.ViewModel.Prefix = _prefix;
if (context.ViewModel.GetType() != typeof(ContentItemViewModel<TContent>)) {
@@ -67,7 +67,7 @@ namespace Orchard.ContentManagement.Handlers {
}
}
protected override void UpdateEditorModel(UpdateEditorModelContext context, TContent instance) {
protected override void UpdateEditorShape(UpdateEditorModelContext context, TContent instance) {
if (context.ViewModel is ContentItemViewModel<TContent>)
_updater(context, (ContentItemViewModel<TContent>)context.ViewModel);
else

View File

@@ -23,8 +23,8 @@ namespace Orchard.ContentManagement.Handlers {
void Indexed(IndexContentContext context);
void GetContentItemMetadata(GetContentItemMetadataContext context);
void BuildDisplayModel(BuildDisplayModelContext context);
void BuildEditorModel(BuildEditorModelContext context);
void UpdateEditorModel(UpdateEditorModelContext context);
void BuildDisplayShape(BuildDisplayModelContext context);
void BuildEditorShape(BuildEditorModelContext context);
void UpdateEditorShape(UpdateEditorModelContext context);
}
}

View File

@@ -1,8 +1,8 @@
namespace Orchard.ContentManagement.Handlers {
interface IContentTemplateFilter : IContentFilter {
void GetContentItemMetadata(GetContentItemMetadataContext context);
void BuildDisplayModel(BuildDisplayModelContext context);
void BuildEditorModel(BuildEditorModelContext context);
void UpdateEditorModel(UpdateEditorModelContext context);
void BuildDisplayShape(BuildDisplayModelContext context);
void BuildEditorShape(BuildEditorModelContext context);
void UpdateEditorShape(UpdateEditorModelContext context);
}
}

View File

@@ -1,28 +1,28 @@
namespace Orchard.ContentManagement.Handlers {
public abstract class TemplateFilterBase<TPart> : IContentTemplateFilter where TPart : class, IContent {
protected virtual void GetContentItemMetadata(GetContentItemMetadataContext context, TPart instance) { }
protected virtual void BuildDisplayModel(BuildDisplayModelContext context, TPart instance) { }
protected virtual void BuildEditorModel(BuildEditorModelContext context, TPart instance) { }
protected virtual void UpdateEditorModel(UpdateEditorModelContext context, TPart instance) { }
protected virtual void BuildDisplayShape(BuildDisplayModelContext context, TPart instance) { }
protected virtual void BuildEditorShape(BuildEditorModelContext context, TPart instance) { }
protected virtual void UpdateEditorShape(UpdateEditorModelContext context, TPart instance) { }
void IContentTemplateFilter.GetContentItemMetadata(GetContentItemMetadataContext context) {
if (context.ContentItem.Is<TPart>())
GetContentItemMetadata(context, context.ContentItem.As<TPart>());
}
void IContentTemplateFilter.BuildDisplayModel(BuildDisplayModelContext context) {
void IContentTemplateFilter.BuildDisplayShape(BuildDisplayModelContext context) {
if (context.ContentItem.Is<TPart>())
BuildDisplayModel(context, context.ContentItem.As<TPart>());
BuildDisplayShape(context, context.ContentItem.As<TPart>());
}
void IContentTemplateFilter.BuildEditorModel(BuildEditorModelContext context) {
void IContentTemplateFilter.BuildEditorShape(BuildEditorModelContext context) {
if (context.ContentItem.Is<TPart>())
BuildEditorModel(context, context.ContentItem.As<TPart>());
BuildEditorShape(context, context.ContentItem.As<TPart>());
}
void IContentTemplateFilter.UpdateEditorModel(UpdateEditorModelContext context) {
void IContentTemplateFilter.UpdateEditorShape(UpdateEditorModelContext context) {
if (context.ContentItem.Is<TPart>())
UpdateEditorModel(context, context.ContentItem.As<TPart>());
UpdateEditorShape(context, context.ContentItem.As<TPart>());
}
}
}

View File

@@ -17,11 +17,11 @@ namespace Orchard.ContentManagement.Handlers {
return this;
}
protected override void BuildEditorModel(BuildEditorModelContext context, ContentPart<TRecord> part) {
protected override void BuildEditorShape(BuildEditorModelContext context, ContentPart<TRecord> part) {
context.ViewModel.Zones.AddEditorPart(_location, part.Record, _templateName, _prefix);
}
protected override void UpdateEditorModel(UpdateEditorModelContext context, ContentPart<TRecord> part) {
protected override void UpdateEditorShape(UpdateEditorModelContext context, ContentPart<TRecord> part) {
context.Updater.TryUpdateModel(part.Record, _prefix, null, null);
context.ViewModel.Zones.AddEditorPart(_location, part.Record, _templateName, _prefix);
}

View File

@@ -26,9 +26,9 @@ namespace Orchard.ContentManagement {
ContentItemMetadata GetItemMetadata(IContent contentItem);
ContentItemViewModel<TContent> BuildDisplayModel<TContent>(TContent content, string displayType) where TContent : IContent;
ContentItemViewModel<TContent> BuildEditorModel<TContent>(TContent content) where TContent : IContent;
ContentItemViewModel<TContent> UpdateEditorModel<TContent>(TContent content, IUpdateModel updater) where TContent : IContent;
ContentItemViewModel<TContent> BuildDisplayShape<TContent>(TContent content, string displayType) where TContent : IContent;
ContentItemViewModel<TContent> BuildEditorShape<TContent>(TContent content) where TContent : IContent;
ContentItemViewModel<TContent> UpdateEditorShape<TContent>(TContent content, IUpdateModel updater) where TContent : IContent;
}
public class VersionOptions {