Fixed format settings. Made IsManaged optional with default value false in IAliasService.

This commit is contained in:
mahsaro
2015-08-03 12:28:16 +01:00
parent 057a2a32ad
commit bb143d7236
21 changed files with 189 additions and 209 deletions

View File

@@ -3,17 +3,14 @@ using Orchard.Localization;
using Orchard.Security; using Orchard.Security;
using Orchard.UI.Navigation; using Orchard.UI.Navigation;
namespace Orchard.Alias namespace Orchard.Alias {
{
[OrchardFeature("Orchard.Alias.UI")] [OrchardFeature("Orchard.Alias.UI")]
public class AdminMenu : INavigationProvider public class AdminMenu : INavigationProvider {
{
public Localizer T { get; set; } public Localizer T { get; set; }
public string MenuName { get { return "admin"; } } public string MenuName { get { return "admin"; } }
public void GetNavigation(NavigationBuilder builder) public void GetNavigation(NavigationBuilder builder) {
{
builder builder
.Add(T("Aliases"), "4", item => item.Action("Index", "Admin", new { area = "Orchard.Alias" }).Permission(StandardPermissions.SiteOwner)); .Add(T("Aliases"), "4", item => item.Action("Index", "Admin", new { area = "Orchard.Alias" }).Permission(StandardPermissions.SiteOwner));
} }

View File

@@ -55,8 +55,7 @@ namespace Orchard.Alias.Controllers {
aliases = aliases.ToList(); aliases = aliases.ToList();
switch (options.Filter) switch (options.Filter) {
{
case AliasFilter.Managed: case AliasFilter.Managed:
aliases = aliases.Where(x => x.IsManaged); aliases = aliases.Where(x => x.IsManaged);
break; break;
@@ -212,8 +211,7 @@ namespace Orchard.Alias.Controllers {
try { try {
_aliasService.Set(aliasPath, routePath, "Custom", false); _aliasService.Set(aliasPath, routePath, "Custom", false);
} }
catch (Exception ex) catch (Exception ex) {
{
Services.TransactionManager.Cancel(); Services.TransactionManager.Cancel();
Services.Notifier.Error(T("An error occured while editing the alias '{0}': {1}. Please check the values are correct.", aliasPath, ex.Message)); Services.Notifier.Error(T("An error occured while editing the alias '{0}': {1}. Please check the values are correct.", aliasPath, ex.Message));
Logger.Error(ex, T("An error occured while creating the alias '{0}'", aliasPath).Text); Logger.Error(ex, T("An error occured while creating the alias '{0}'", aliasPath).Text);
@@ -251,8 +249,7 @@ namespace Orchard.Alias.Controllers {
return this.RedirectLocal(returnUrl, Url.Action("Index")); return this.RedirectLocal(returnUrl, Url.Action("Index"));
} }
private string GetExistingPathForAlias(string aliasPath) private string GetExistingPathForAlias(string aliasPath) {
{
var routeValues = _aliasService.Get(aliasPath.TrimStart('/', '\\')); var routeValues = _aliasService.Get(aliasPath.TrimStart('/', '\\'));
if (routeValues == null) return null; if (routeValues == null) return null;
@@ -261,8 +258,7 @@ namespace Orchard.Alias.Controllers {
.FirstOrDefault(); .FirstOrDefault();
} }
private bool CheckAndWarnIfAliasExists(string aliasPath) private bool CheckAndWarnIfAliasExists(string aliasPath) {
{
var routePath = GetExistingPathForAlias(aliasPath); var routePath = GetExistingPathForAlias(aliasPath);
if (routePath == null) return false; if (routePath == null) return false;

View File

@@ -5,8 +5,8 @@ using System.Web.Routing;
namespace Orchard.Alias { namespace Orchard.Alias {
public interface IAliasService : IDependency { public interface IAliasService : IDependency {
RouteValueDictionary Get(string aliasPath); RouteValueDictionary Get(string aliasPath);
void Set(string aliasPath, RouteValueDictionary routeValues, string aliasSource, bool isManaged); void Set(string aliasPath, RouteValueDictionary routeValues, string aliasSource, bool isManaged = false);
void Set(string aliasPath, string routePath, string aliasSource, bool isManaged); void Set(string aliasPath, string routePath, string aliasSource, bool isManaged = false);
void Delete(string aliasPath); void Delete(string aliasPath);
void Delete(string aliasPath, string aliasSource); void Delete(string aliasPath, string aliasSource);
/// <summary> /// <summary>
@@ -18,8 +18,8 @@ namespace Orchard.Alias {
IEnumerable<string> Lookup(RouteValueDictionary routeValues); IEnumerable<string> Lookup(RouteValueDictionary routeValues);
IEnumerable<string> Lookup(string routePath); IEnumerable<string> Lookup(string routePath);
void Replace(string aliasPath, RouteValueDictionary routeValues, string aliasSource, bool isManaged); void Replace(string aliasPath, RouteValueDictionary routeValues, string aliasSource, bool isManaged = false);
void Replace(string aliasPath, string routePath, string aliasSource, bool isManaged); void Replace(string aliasPath, string routePath, string aliasSource, bool isManaged = false);
IEnumerable<Tuple<string, RouteValueDictionary>> List(); IEnumerable<Tuple<string, RouteValueDictionary>> List();
IEnumerable<Tuple<string, RouteValueDictionary, string>> List(string sourceStartsWith); IEnumerable<Tuple<string, RouteValueDictionary, string>> List(string sourceStartsWith);

View File

@@ -32,8 +32,7 @@ namespace Orchard.Alias.Implementation {
//IDictionary<string, string> routeValues; //IDictionary<string, string> routeValues;
AliasInfo aliasInfo; AliasInfo aliasInfo;
// TODO: Might as well have the lookup in AliasHolder... // TODO: Might as well have the lookup in AliasHolder...
if (_aliasMap.TryGetAlias(virtualPath, out aliasInfo)) if (_aliasMap.TryGetAlias(virtualPath, out aliasInfo)) {
{
// Construct RouteData from the route values // Construct RouteData from the route values
var data = new RouteData(this, _routeHandler); var data = new RouteData(this, _routeHandler);
foreach (var routeValue in aliasInfo.RouteValues) { foreach (var routeValue in aliasInfo.RouteValues) {

View File

@@ -80,8 +80,7 @@ namespace Orchard.Alias.Implementation {
Set(aliasPath, routeValues, aliasSource, isManaged); Set(aliasPath, routeValues, aliasSource, isManaged);
} }
public void Replace(string aliasPath, string routePath, string aliasSource, bool isManaged) public void Replace(string aliasPath, string routePath, string aliasSource, bool isManaged) {
{
Replace(aliasPath, ToDictionary(routePath).ToRouteValueDictionary(), aliasSource, isManaged); Replace(aliasPath, ToDictionary(routePath).ToRouteValueDictionary(), aliasSource, isManaged);
} }
@@ -157,8 +156,7 @@ namespace Orchard.Alias.Implementation {
} }
private class StubHttpContext : HttpContextBase { private class StubHttpContext : HttpContextBase {
public override HttpRequestBase Request public override HttpRequestBase Request {
{
get { return new StubHttpRequest(); } get { return new StubHttpRequest(); }
} }

View File

@@ -22,8 +22,7 @@ namespace Orchard.Alias.Implementation.Map {
return _aliases.Select(x => new AliasInfo { Area = _area, Path = x.Key, RouteValues = x.Value.RouteValues, IsManaged = x.Value.IsManaged }); return _aliases.Select(x => new AliasInfo { Area = _area, Path = x.Key, RouteValues = x.Value.RouteValues, IsManaged = x.Value.IsManaged });
} }
public bool TryGetAlias(string virtualPath, out AliasInfo aliasInfo) public bool TryGetAlias(string virtualPath, out AliasInfo aliasInfo) {
{
return _aliases.TryGetValue(virtualPath, out aliasInfo); return _aliases.TryGetValue(virtualPath, out aliasInfo);
} }

View File

@@ -114,8 +114,7 @@ namespace Orchard.Alias.Implementation.Storage {
} }
} }
public IEnumerable<Tuple<string, string, IDictionary<string, string>, string, int, bool>> List() public IEnumerable<Tuple<string, string, IDictionary<string, string>, string, int, bool>> List() {
{
return List((Expression<Func<AliasRecord, bool>>)null); return List((Expression<Func<AliasRecord, bool>>)null);
} }
@@ -129,13 +128,11 @@ namespace Orchard.Alias.Implementation.Storage {
return table.OrderBy(a => a.Id).Select(ToDictionary).ToList(); return table.OrderBy(a => a.Id).Select(ToDictionary).ToList();
} }
public IEnumerable<Tuple<string, string, IDictionary<string, string>, string, int, bool>> List(string sourceStartsWith) public IEnumerable<Tuple<string, string, IDictionary<string, string>, string, int, bool>> List(string sourceStartsWith) {
{
return List(a => a.Source.StartsWith(sourceStartsWith)); return List(a => a.Source.StartsWith(sourceStartsWith));
} }
private static Tuple<string, string, IDictionary<string, string>, string, int, bool> ToDictionary(AliasRecord aliasRecord) private static Tuple<string, string, IDictionary<string, string>, string, int, bool> ToDictionary(AliasRecord aliasRecord) {
{
IDictionary<string, string> routeValues = new Dictionary<string, string>(); IDictionary<string, string> routeValues = new Dictionary<string, string>();
if (aliasRecord.Action.Area != null) { if (aliasRecord.Action.Area != null) {
routeValues.Add("area", aliasRecord.Action.Area); routeValues.Add("area", aliasRecord.Action.Area);

View File

@@ -20,8 +20,7 @@ namespace Orchard.Alias {
return 1; return 1;
} }
public int UpdateFrom1() public int UpdateFrom1() {
{
SchemaBuilder.AlterTable("AliasRecord", SchemaBuilder.AlterTable("AliasRecord",
table => table table => table
.AddColumn<bool>("IsManaged", column => column.WithDefault(false)) .AddColumn<bool>("IsManaged", column => column.WithDefault(false))

View File

@@ -7,12 +7,11 @@ using Orchard.Alias.Records;
using Orchard.Alias.Implementation.Holder; using Orchard.Alias.Implementation.Holder;
namespace Orchard.Roles.Recipes.Builders { namespace Orchard.Roles.Recipes.Builders {
public class RolesStep : RecipeBuilderStep { public class AliasStep : RecipeBuilderStep {
private readonly IRepository<AliasRecord> _aliasRecordepository; private readonly IRepository<AliasRecord> _aliasRecordepository;
private readonly IAliasHolder _aliasHolder; private readonly IAliasHolder _aliasHolder;
public RolesStep(IRepository<AliasRecord> aliasRecordRepository, IAliasHolder aliasHolder) public AliasStep(IRepository<AliasRecord> aliasRecordRepository, IAliasHolder aliasHolder) {
{
_aliasRecordepository = aliasRecordRepository; _aliasRecordepository = aliasRecordRepository;
_aliasHolder = aliasHolder; _aliasHolder = aliasHolder;
} }
@@ -38,13 +37,11 @@ namespace Orchard.Roles.Recipes.Builders {
var root = new XElement("Aliases"); var root = new XElement("Aliases");
context.RecipeDocument.Element("Orchard").Add(root); context.RecipeDocument.Element("Orchard").Add(root);
foreach (var alias in aliases.OrderBy(x => x.Path)) foreach (var alias in aliases.OrderBy(x => x.Path)) {
{
var aliasElement = new XElement("Alias", new XAttribute("Path", alias.Path)); var aliasElement = new XElement("Alias", new XAttribute("Path", alias.Path));
var routeValuesElement = new XElement("RouteValues"); var routeValuesElement = new XElement("RouteValues");
foreach (var routeValue in alias.RouteValues) foreach (var routeValue in alias.RouteValues) {
{
routeValuesElement.Add(new XElement("Add", new XAttribute("Key", routeValue.Key), new XAttribute("Value", routeValue.Value))); routeValuesElement.Add(new XElement("Add", new XAttribute("Key", routeValue.Key), new XAttribute("Value", routeValue.Value)));
} }

View File

@@ -12,8 +12,7 @@ namespace Orchard.Alias.Recipes.Executors {
public class AliasStep : RecipeExecutionStep { public class AliasStep : RecipeExecutionStep {
private readonly IAliasService _aliasService; private readonly IAliasService _aliasService;
public AliasStep(IAliasService aliasService) public AliasStep(IAliasService aliasService) {
{
_aliasService = aliasService; _aliasService = aliasService;
} }
@@ -42,10 +41,8 @@ namespace Orchard.Alias.Recipes.Executors {
var routeValuesElement = aliasElement.Descendants("RouteValues").FirstOrDefault(); var routeValuesElement = aliasElement.Descendants("RouteValues").FirstOrDefault();
if (routeValuesElement != null) if (routeValuesElement != null) {
{ foreach (var routeValue in routeValuesElement.Descendants("Add")) {
foreach (var routeValue in routeValuesElement.Descendants("Add"))
{
rvd.Add(routeValue.Attribute("Key").Value, routeValue.Attribute("Value").Value); rvd.Add(routeValue.Attribute("Key").Value, routeValue.Attribute("Value").Value);
} }
} }

View File

@@ -13,6 +13,7 @@ namespace Orchard.Alias.ViewModels {
public AliasInfo Alias { get; set; } public AliasInfo Alias { get; set; }
public bool IsChecked { get; set; } public bool IsChecked { get; set; }
} }
public class AdminIndexOptions { public class AdminIndexOptions {
public string Search { get; set; } public string Search { get; set; }
public AliasOrder Order { get; set; } public AliasOrder Order { get; set; }

View File

@@ -146,7 +146,8 @@ namespace Orchard.Autoroute.Services {
if (String.Equals(culture, _cultureManager.GetSiteCulture(), StringComparison.OrdinalIgnoreCase) && !String.IsNullOrWhiteSpace(patternIndex)) { if (String.Equals(culture, _cultureManager.GetSiteCulture(), StringComparison.OrdinalIgnoreCase) && !String.IsNullOrWhiteSpace(patternIndex)) {
settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = patternIndex, Culture = culture }); settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = patternIndex, Culture = culture });
return settings.Patterns.Where(x => x.Culture == null).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == culture).FirstOrDefault().PatternIndex)); return settings.Patterns.Where(x => x.Culture == null).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == culture).FirstOrDefault().PatternIndex));
} else { }
else {
settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = "0", Culture = culture }); settings.DefaultPatterns.Add(new DefaultPattern { PatternIndex = "0", Culture = culture });
return new RoutePattern { Name = "Title", Description = "my-title", Pattern = "{Content.Slug}", Culture = culture }; return new RoutePattern { Name = "Title", Description = "my-title", Pattern = "{Content.Slug}", Culture = culture };
} }

View File

@@ -39,8 +39,7 @@ namespace Orchard.Blogs.Routing {
//IDictionary<string, string> routeValues; //IDictionary<string, string> routeValues;
AliasInfo aliasInfo; AliasInfo aliasInfo;
if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out aliasInfo)) if (!_aliasHolder.GetMap("Orchard.Blogs").TryGetAlias(path, out aliasInfo)) {
{
return false; return false;
} }