mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Continuing to refactor ModelDriver concept into ContentHandler
--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4041354
This commit is contained in:
@@ -12,8 +12,8 @@ namespace Orchard.Media.Models {
|
||||
public virtual string RootMediaFolder { get; set; }
|
||||
}
|
||||
|
||||
public class MediaSettingsDriver : ContentHandler {
|
||||
public MediaSettingsDriver(IRepository<MediaSettingsRecord> repository) {
|
||||
public class MediaSettingsHandler : ContentHandler {
|
||||
public MediaSettingsHandler(IRepository<MediaSettingsRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<MediaSettings>("site"));
|
||||
Filters.Add(new StorageFilterForRecord<MediaSettingsRecord>(repository) { AutomaticallyCreateMissingRecord = true });
|
||||
}
|
||||
|
||||
@@ -6,8 +6,8 @@ namespace Orchard.Roles.Models.NoRecord {
|
||||
IList<string> Roles { get; }
|
||||
}
|
||||
|
||||
public class UserRolesModel : ContentItemPart, IUserRoles {
|
||||
public UserRolesModel() {
|
||||
public class UserRoles : ContentItemPart, IUserRoles {
|
||||
public UserRoles() {
|
||||
Roles = new List<string>();
|
||||
}
|
||||
|
||||
@@ -11,12 +11,12 @@ using Orchard.UI.Models;
|
||||
using Orchard.UI.Notify;
|
||||
|
||||
namespace Orchard.Roles.Models {
|
||||
public class UserRolesDriver : ContentHandler {
|
||||
public class UserRolesHandler : ContentHandler {
|
||||
private readonly IRepository<UserRolesRecord> _userRolesRepository;
|
||||
private readonly IRoleService _roleService;
|
||||
private readonly INotifier _notifier;
|
||||
|
||||
public UserRolesDriver(IRepository<UserRolesRecord> userRolesRepository, IRoleService roleService, INotifier notifier) {
|
||||
public UserRolesHandler(IRepository<UserRolesRecord> userRolesRepository, IRoleService roleService, INotifier notifier) {
|
||||
_userRolesRepository = userRolesRepository;
|
||||
_roleService = roleService;
|
||||
_notifier = notifier;
|
||||
@@ -24,18 +24,18 @@ namespace Orchard.Roles.Models {
|
||||
|
||||
protected override void Activating(ActivatingContentContext context) {
|
||||
if (context.ContentType == "user") {
|
||||
context.Builder.Weld<UserRolesModel>();
|
||||
context.Builder.Weld<UserRoles>();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Creating(CreateContentContext context) {
|
||||
var userRoles = context.ContentItem.As<UserRolesModel>();
|
||||
var userRoles = context.ContentItem.As<UserRoles>();
|
||||
if (userRoles != null) {
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Loading(LoadContentContext context) {
|
||||
var userRoles = context.ContentItem.As<UserRolesModel>();
|
||||
var userRoles = context.ContentItem.As<UserRoles>();
|
||||
if (userRoles != null) {
|
||||
userRoles.Roles = _userRolesRepository.Fetch(x => x.UserId == context.ContentItem.Id)
|
||||
.Select(x => x.Role.Name).ToList();
|
||||
@@ -43,7 +43,7 @@ namespace Orchard.Roles.Models {
|
||||
}
|
||||
|
||||
protected override void GetEditors(GetContentEditorsContext context) {
|
||||
var userRoles = context.ContentItem.As<UserRolesModel>();
|
||||
var userRoles = context.ContentItem.As<UserRoles>();
|
||||
if (userRoles != null) {
|
||||
var roles =
|
||||
_roleService.GetRoles().Select(
|
||||
@@ -64,7 +64,7 @@ namespace Orchard.Roles.Models {
|
||||
}
|
||||
|
||||
protected override void UpdateEditors(UpdateContentContext context) {
|
||||
var userRoles = context.ContentItem.As<UserRolesModel>();
|
||||
var userRoles = context.ContentItem.As<UserRoles>();
|
||||
if (userRoles != null) {
|
||||
var viewModel = new UserRolesViewModel();
|
||||
if (context.Updater.TryUpdateModel(viewModel, "UserRoles", null, null)) {
|
||||
@@ -65,8 +65,8 @@
|
||||
<Compile Include="Controllers\AdminController.cs" />
|
||||
<Compile Include="Records\PermissionRecord.cs" />
|
||||
<Compile Include="Records\RoleRecord.cs" />
|
||||
<Compile Include="Models\UserRolesModel.cs" />
|
||||
<Compile Include="Models\UserRolesDriver.cs" />
|
||||
<Compile Include="Models\UserRoles.cs" />
|
||||
<Compile Include="Models\UserRolesHandler.cs" />
|
||||
<Compile Include="Records\RolesPermissions.cs" />
|
||||
<Compile Include="Records\UserRolesRecord.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Orchard.Users.Controllers {
|
||||
var model = new UsersIndexViewModel();
|
||||
model.Rows = _userRepository.Fetch(x => x.UserName != null)
|
||||
.Select(x => new UsersIndexViewModel.Row {
|
||||
User = _contentManager.Get(x.Id).As<UserModel>()
|
||||
User = _contentManager.Get(x.Id).As<User>()
|
||||
})
|
||||
.ToList();
|
||||
|
||||
@@ -67,14 +67,14 @@ namespace Orchard.Users.Controllers {
|
||||
}
|
||||
|
||||
public ActionResult Edit(int id) {
|
||||
var model = new UserEditViewModel { User = _contentManager.Get<UserModel>(id) };
|
||||
var model = new UserEditViewModel { User = _contentManager.Get<User>(id) };
|
||||
model.Editors = _contentManager.GetEditors(model.User.ContentItem);
|
||||
return View(model);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult Edit(int id, FormCollection input) {
|
||||
var model = new UserEditViewModel { User = _contentManager.Get<UserModel>(id) };
|
||||
var model = new UserEditViewModel { User = _contentManager.Get<User>(id) };
|
||||
model.Editors = _contentManager.UpdateEditors(model.User.ContentItem, this);
|
||||
|
||||
if (!TryUpdateModel(model, input.ToValueProvider())) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
using Orchard.Security;
|
||||
|
||||
namespace Orchard.Users.Models {
|
||||
public sealed class UserModel : ContentItemPartWithRecord<UserRecord>, IUser {
|
||||
public sealed class User : ContentItemPartWithRecord<UserRecord>, IUser {
|
||||
public int Id {
|
||||
get { return ContentItem.Id; }
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
using Orchard.Data;
|
||||
using Orchard.Models.Driver;
|
||||
|
||||
namespace Orchard.Users.Models {
|
||||
public class UserDriver : ContentHandler {
|
||||
public UserDriver(IRepository<UserRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<UserModel>("user"));
|
||||
Filters.Add(new StorageFilterForRecord<UserRecord>(repository));
|
||||
}
|
||||
}
|
||||
}
|
||||
11
src/Orchard.Web/Packages/Orchard.Users/Models/UserHandler.cs
Normal file
11
src/Orchard.Web/Packages/Orchard.Users/Models/UserHandler.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Orchard.Data;
|
||||
using Orchard.Models.Driver;
|
||||
|
||||
namespace Orchard.Users.Models {
|
||||
public class UserHandler : ContentHandler {
|
||||
public UserHandler(IRepository<UserRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<User>("user"));
|
||||
Filters.Add(new StorageFilterForRecord<UserRecord>(repository));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,8 +63,8 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\AdminController.cs" />
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
<Compile Include="Models\UserModel.cs" />
|
||||
<Compile Include="Models\UserDriver.cs" />
|
||||
<Compile Include="Models\User.cs" />
|
||||
<Compile Include="Models\UserHandler.cs" />
|
||||
<Compile Include="Models\UserRecord.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Services\MembershipService.cs" />
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Orchard.Users.Services {
|
||||
SetPassword(record, createUserParams.Password);
|
||||
|
||||
var user = _contentManager.New("user");
|
||||
user.As<UserModel>().Record = record;
|
||||
user.As<User>().Record = record;
|
||||
_contentManager.Create(user);
|
||||
return user.As<IUser>();
|
||||
}
|
||||
@@ -61,10 +61,10 @@ namespace Orchard.Users.Services {
|
||||
|
||||
|
||||
public void SetPassword(IUser user, string password) {
|
||||
if (!user.Is<UserModel>())
|
||||
if (!user.Is<User>())
|
||||
throw new InvalidCastException();
|
||||
|
||||
var userRecord = user.As<UserModel>().Record;
|
||||
var userRecord = user.As<User>().Record;
|
||||
SetPassword(userRecord, password);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ using Orchard.Users.Models;
|
||||
|
||||
namespace Orchard.Users.ViewModels {
|
||||
public class UserEditViewModel : AdminViewModel {
|
||||
public UserModel User { get; set; }
|
||||
public User User { get; set; }
|
||||
public IEnumerable<ModelTemplate> Editors { get; set; }
|
||||
|
||||
[HiddenInput(DisplayValue = false)]
|
||||
@@ -18,14 +18,14 @@ namespace Orchard.Users.ViewModels {
|
||||
|
||||
[Required]
|
||||
public string UserName {
|
||||
get { return User.As<UserModel>().Record.UserName; }
|
||||
set { User.As<UserModel>().Record.UserName = value; }
|
||||
get { return User.As<User>().Record.UserName; }
|
||||
set { User.As<User>().Record.UserName = value; }
|
||||
}
|
||||
|
||||
[Required]
|
||||
public string Email {
|
||||
get { return User.As<UserModel>().Record.Email; }
|
||||
set { User.As<UserModel>().Record.Email = value; }
|
||||
get { return User.As<User>().Record.Email; }
|
||||
set { User.As<User>().Record.Email = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ namespace Orchard.Users.ViewModels {
|
||||
|
||||
public class UsersIndexViewModel : AdminViewModel {
|
||||
public class Row {
|
||||
public UserModel User { get; set; }
|
||||
public User User { get; set; }
|
||||
}
|
||||
|
||||
public IList<Row> Rows { get; set; }
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace Orchard.Wikis.Controllers {
|
||||
}
|
||||
|
||||
public ActionResult View(int id) {
|
||||
var page = _contentManager.Get(id).As<CommonModel>();
|
||||
var page = _contentManager.Get(id).As<CommonPart>();
|
||||
return View(page);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Models.Driver;
|
||||
|
||||
namespace Orchard.Wikis.Models {
|
||||
public class WikiPageDriver : ContentHandler {
|
||||
protected override void Activating(ActivatingContentContext context) {
|
||||
if (context.ContentType == "wikipage") {
|
||||
context.Builder
|
||||
.Weld<CommonModel>()
|
||||
.Weld<RoutableModel>()
|
||||
.Weld<ContentModel>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Models.Driver;
|
||||
|
||||
namespace Orchard.Wikis.Models {
|
||||
public class WikiPageHandler : ContentHandler {
|
||||
protected override void Activating(ActivatingContentContext context) {
|
||||
if (context.ContentType == "wikipage") {
|
||||
context.Builder
|
||||
.Weld<CommonPart>()
|
||||
.Weld<RoutablePart>()
|
||||
.Weld<ContentPart>();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,8 @@ namespace Orchard.Wikis.Models {
|
||||
public virtual string WikiEditTheme { get; set; }
|
||||
}
|
||||
|
||||
public class WikiSettingsDriver : ContentHandler {
|
||||
public WikiSettingsDriver(IRepository<WikiSettingsRecord> repository) {
|
||||
public class WikiSettingsHandler : ContentHandler {
|
||||
public WikiSettingsHandler(IRepository<WikiSettingsRecord> repository) {
|
||||
Filters.Add(new ActivatingFilter<WikiSettings>("site"));
|
||||
Filters.Add(new StorageFilterForRecord<WikiSettingsRecord>(repository) { AutomaticallyCreateMissingRecord = true });
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
<ItemGroup>
|
||||
<Compile Include="AdminMenu.cs" />
|
||||
<Compile Include="Controllers\AdminController.cs" />
|
||||
<Compile Include="Models\WikiPageDriver.cs" />
|
||||
<Compile Include="Models\WikiPageHandler.cs" />
|
||||
<Compile Include="Models\WikiSettings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user