Revert whitespace changes
This commit is contained in:
@@ -9,84 +9,84 @@ using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Core.Macros
|
||||
{
|
||||
/// <summary>
|
||||
/// A resolver to return all IMacroGuiRendering objects
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Much of this classes methods are based on legacy code from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// this code should probably be reviewed and cleaned up if necessary.
|
||||
/// </remarks>
|
||||
internal sealed class MacroFieldEditorsResolver : LazyManyObjectsResolverBase<MacroFieldEditorsResolver, IMacroGuiRendering>
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="macroEditors"></param>
|
||||
internal MacroFieldEditorsResolver(IServiceProvider serviceProvider, ILogger logger, Func<IEnumerable<Type>> macroEditors)
|
||||
/// <summary>
|
||||
/// A resolver to return all IMacroGuiRendering objects
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Much of this classes methods are based on legacy code from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// this code should probably be reviewed and cleaned up if necessary.
|
||||
/// </remarks>
|
||||
internal sealed class MacroFieldEditorsResolver : LazyManyObjectsResolverBase<MacroFieldEditorsResolver, IMacroGuiRendering>
|
||||
{
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="serviceProvider"></param>
|
||||
/// <param name="logger"></param>
|
||||
/// <param name="macroEditors"></param>
|
||||
internal MacroFieldEditorsResolver(IServiceProvider serviceProvider, ILogger logger, Func<IEnumerable<Type>> macroEditors)
|
||||
: base(serviceProvider, logger, macroEditors, ObjectLifetimeScope.Transient)
|
||||
{ }
|
||||
{ }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the <see cref="IMacroGuiRendering"/> implementations.
|
||||
/// </summary>
|
||||
public IEnumerable<IMacroGuiRendering> MacroFieldEditors
|
||||
{
|
||||
get
|
||||
{
|
||||
return Values;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Gets the <see cref="IMacroGuiRendering"/> implementations.
|
||||
/// </summary>
|
||||
public IEnumerable<IMacroGuiRendering> MacroFieldEditors
|
||||
{
|
||||
get
|
||||
{
|
||||
return Values;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the value based on the type of control
|
||||
/// </summary>
|
||||
/// <param name="macroControl"></param>
|
||||
/// <returns></returns>
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal string GetValueFromMacroControl(Control macroControl)
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the value based on the type of control
|
||||
/// </summary>
|
||||
/// <param name="macroControl"></param>
|
||||
/// <returns></returns>
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal string GetValueFromMacroControl(Control macroControl)
|
||||
{
|
||||
return HttpUtility.HtmlDecode(((IMacroGuiRendering)macroControl).Value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal List<Type> MacroControlTypes
|
||||
{
|
||||
get { return InstanceTypes.ToList(); }
|
||||
}
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal List<Type> MacroControlTypes
|
||||
{
|
||||
get { return InstanceTypes.ToList(); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create an instance of a Macro control and return it.
|
||||
/// Because the macro control uses inline client script whichs is not generated after postback
|
||||
/// That's why we use the Page Picker instead of the content picker of the macro.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal Control GetMacroRenderControlByType(PersistableMacroProperty prop, string uniqueId)
|
||||
{
|
||||
var m = MacroControlTypes.FindLast(macroGuiCcontrol => macroGuiCcontrol.ToString() == string.Format("{0}.{1}", prop.AssemblyName, prop.TypeName));
|
||||
var instance = ServiceProvider.GetService(m) as IMacroGuiRendering;
|
||||
if (instance != null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(prop.Value) == false)
|
||||
{
|
||||
/// <summary>
|
||||
/// Create an instance of a Macro control and return it.
|
||||
/// Because the macro control uses inline client script whichs is not generated after postback
|
||||
/// That's why we use the Page Picker instead of the content picker of the macro.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is legacy code migrated from umbraco.editorControls.macrocontainer.MacroControlFactory
|
||||
/// </remarks>
|
||||
internal Control GetMacroRenderControlByType(PersistableMacroProperty prop, string uniqueId)
|
||||
{
|
||||
var m = MacroControlTypes.FindLast(macroGuiCcontrol => macroGuiCcontrol.ToString() == string.Format("{0}.{1}", prop.AssemblyName, prop.TypeName));
|
||||
var instance = ServiceProvider.GetService(m) as IMacroGuiRendering;
|
||||
if (instance != null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(prop.Value) == false)
|
||||
{
|
||||
instance.Value = HttpUtility.HtmlDecode(prop.Value);
|
||||
}
|
||||
var macroControl = instance as Control;
|
||||
if (macroControl != null)
|
||||
{
|
||||
macroControl.ID = uniqueId;
|
||||
return macroControl;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
var macroControl = instance as Control;
|
||||
if (macroControl != null)
|
||||
{
|
||||
macroControl.ID = uniqueId;
|
||||
return macroControl;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -109,16 +109,16 @@ namespace Umbraco.Tests.Persistence
|
||||
|
||||
//re-create it
|
||||
dbSqlServer.Execute(@"CREATE TABLE [umbracoServer](
|
||||
[id] [int] IDENTITY(1,1) NOT NULL,
|
||||
[address] [nvarchar](500) NOT NULL,
|
||||
[computerName] [nvarchar](255) NOT NULL,
|
||||
[registeredDate] [datetime] NOT NULL CONSTRAINT [DF_umbracoServer_registeredDate] DEFAULT (getdate()),
|
||||
[lastNotifiedDate] [datetime] NOT NULL,
|
||||
[isActive] [bit] NOT NULL,
|
||||
[isMaster] [bit] NOT NULL,
|
||||
[id] [int] IDENTITY(1,1) NOT NULL,
|
||||
[address] [nvarchar](500) NOT NULL,
|
||||
[computerName] [nvarchar](255) NOT NULL,
|
||||
[registeredDate] [datetime] NOT NULL CONSTRAINT [DF_umbracoServer_registeredDate] DEFAULT (getdate()),
|
||||
[lastNotifiedDate] [datetime] NOT NULL,
|
||||
[isActive] [bit] NOT NULL,
|
||||
[isMaster] [bit] NOT NULL,
|
||||
CONSTRAINT [PK_umbracoServer] PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[id] ASC
|
||||
[id] ASC
|
||||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||||
)");
|
||||
var data = new List<ServerRegistrationDto>();
|
||||
@@ -278,4 +278,4 @@ namespace Umbraco.Tests.Persistence
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using Umbraco.Core.ObjectResolution;
|
||||
|
||||
namespace Umbraco.Web.Media.ThumbnailProviders
|
||||
{
|
||||
[Weight(1000)]
|
||||
[Weight(1000)]
|
||||
public class ImageThumbnailProvider : AbstractThumbnailProvider
|
||||
{
|
||||
protected override IEnumerable<string> SupportedExtensions
|
||||
|
||||
@@ -8,6 +8,7 @@ using umbraco.interfaces;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
|
||||
namespace umbraco
|
||||
{
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
@@ -26,13 +27,13 @@ namespace umbraco
|
||||
{
|
||||
Javascript.Append(
|
||||
@"
|
||||
function openScriptEditor(id) {
|
||||
UmbClientMgr.contentFrame('settings/scripts/editScript.aspx?file=' + id);
|
||||
}
|
||||
function openScriptEditor(id) {
|
||||
UmbClientMgr.contentFrame('settings/scripts/editScript.aspx?file=' + id);
|
||||
}
|
||||
function openScriptFolder(id) {
|
||||
return false;
|
||||
}
|
||||
");
|
||||
return false;
|
||||
}
|
||||
");
|
||||
}
|
||||
|
||||
protected override string FilePath
|
||||
|
||||
@@ -7,18 +7,17 @@ using System.Linq.Dynamic;
|
||||
using System.Reflection;
|
||||
using umbraco.interfaces;
|
||||
using Umbraco.Core;
|
||||
|
||||
namespace umbraco.MacroEngines
|
||||
{
|
||||
public class DynamicNodeList : DynamicObject, IEnumerable<DynamicNode>
|
||||
{
|
||||
public List<DynamicNode> Items;
|
||||
public List<DynamicNode> Items;
|
||||
|
||||
[Obsolete("Use the Items property instead")]
|
||||
public List<DynamicNode> get_Items()
|
||||
{
|
||||
return Items;
|
||||
}
|
||||
[Obsolete("Use the Items property instead")]
|
||||
public List<DynamicNode> get_Items()
|
||||
{
|
||||
return Items;
|
||||
}
|
||||
|
||||
public DynamicNodeList()
|
||||
{
|
||||
@@ -65,97 +64,97 @@ namespace umbraco.MacroEngines
|
||||
}
|
||||
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
|
||||
{
|
||||
var firstArg = args.FirstOrDefault();
|
||||
//this is to check for 'DocumentTypeAlias' vs 'NodeTypeAlias' for compatibility
|
||||
if (firstArg != null && firstArg.ToString().InvariantStartsWith("DocumentTypeAlias"))
|
||||
{
|
||||
firstArg = "NodeTypeAlias" + firstArg.ToString().Substring("DocumentTypeAlias".Length);
|
||||
}
|
||||
var firstArg = args.FirstOrDefault();
|
||||
//this is to check for 'DocumentTypeAlias' vs 'NodeTypeAlias' for compatibility
|
||||
if (firstArg != null && firstArg.ToString().InvariantStartsWith("DocumentTypeAlias"))
|
||||
{
|
||||
firstArg = "NodeTypeAlias" + firstArg.ToString().Substring("DocumentTypeAlias".Length);
|
||||
}
|
||||
|
||||
var name = binder.Name;
|
||||
if (name == "Single")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var single = this.Single<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(single);
|
||||
return true;
|
||||
}
|
||||
if (name == "SingleOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var single = this.SingleOrDefault<DynamicNode>(predicate, values);
|
||||
if (single == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(single);
|
||||
return true;
|
||||
}
|
||||
if (name == "First")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var first = this.First<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(first);
|
||||
return true;
|
||||
}
|
||||
if (name == "FirstOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var first = this.FirstOrDefault<DynamicNode>(predicate, values);
|
||||
if (first == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(first);
|
||||
return true;
|
||||
}
|
||||
if (name == "Last")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var last = this.Last<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(last);
|
||||
return true;
|
||||
}
|
||||
if (name == "LastOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var last = this.LastOrDefault<DynamicNode>(predicate, values);
|
||||
if (last == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(last);
|
||||
return true;
|
||||
}
|
||||
if (name == "Single")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var single = this.Single<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(single);
|
||||
return true;
|
||||
}
|
||||
if (name == "SingleOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var single = this.SingleOrDefault<DynamicNode>(predicate, values);
|
||||
if (single == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(single);
|
||||
return true;
|
||||
}
|
||||
if (name == "First")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var first = this.First<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(first);
|
||||
return true;
|
||||
}
|
||||
if (name == "FirstOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var first = this.FirstOrDefault<DynamicNode>(predicate, values);
|
||||
if (first == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(first);
|
||||
return true;
|
||||
}
|
||||
if (name == "Last")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var last = this.Last<DynamicNode>(predicate, values);
|
||||
result = new DynamicNode(last);
|
||||
return true;
|
||||
}
|
||||
if (name == "LastOrDefault")
|
||||
{
|
||||
string predicate = firstArg == null ? "" : firstArg.ToString();
|
||||
var values = predicate.IsNullOrWhiteSpace() ? new object[] { } : args.Skip(1).ToArray();
|
||||
var last = this.LastOrDefault<DynamicNode>(predicate, values);
|
||||
if (last == null)
|
||||
result = new DynamicNull();
|
||||
else
|
||||
result = new DynamicNode(last);
|
||||
return true;
|
||||
}
|
||||
if (name == "Where")
|
||||
{
|
||||
string predicate = firstArg.ToString();
|
||||
string predicate = firstArg.ToString();
|
||||
var values = args.Skip(1).ToArray();
|
||||
result = new DynamicNodeList(this.Where<DynamicNode>(predicate, values).ToList());
|
||||
return true;
|
||||
}
|
||||
if (name == "OrderBy")
|
||||
{
|
||||
result = new DynamicNodeList(this.OrderBy<DynamicNode>(firstArg.ToString()).ToList());
|
||||
return true;
|
||||
}
|
||||
if (name == "Take")
|
||||
{
|
||||
result = new DynamicNodeList(this.Take((int)firstArg));
|
||||
return true;
|
||||
}
|
||||
if (name == "Skip")
|
||||
{
|
||||
result = new DynamicNodeList(this.Skip((int)firstArg));
|
||||
result = new DynamicNodeList(this.OrderBy<DynamicNode>(firstArg.ToString()).ToList());
|
||||
return true;
|
||||
}
|
||||
if (name == "Take")
|
||||
{
|
||||
result = new DynamicNodeList(this.Take((int)firstArg));
|
||||
return true;
|
||||
}
|
||||
if (name == "Skip")
|
||||
{
|
||||
result = new DynamicNodeList(this.Skip((int)firstArg));
|
||||
return true;
|
||||
}
|
||||
if (name == "InGroupsOf")
|
||||
{
|
||||
int groupSize = 0;
|
||||
if (int.TryParse(firstArg.ToString(), out groupSize))
|
||||
if (int.TryParse(firstArg.ToString(), out groupSize))
|
||||
{
|
||||
result = this.InGroupsOf<DynamicNode>(groupSize);
|
||||
return true;
|
||||
@@ -166,7 +165,7 @@ namespace umbraco.MacroEngines
|
||||
if (name == "GroupedInto")
|
||||
{
|
||||
int groupCount = 0;
|
||||
if (int.TryParse(firstArg.ToString(), out groupCount))
|
||||
if (int.TryParse(firstArg.ToString(), out groupCount))
|
||||
{
|
||||
result = this.GroupedInto<DynamicNode>(groupCount);
|
||||
return true;
|
||||
@@ -176,7 +175,7 @@ namespace umbraco.MacroEngines
|
||||
}
|
||||
if (name == "GroupBy")
|
||||
{
|
||||
result = this.GroupBy<DynamicNode>(firstArg.ToString());
|
||||
result = this.GroupBy<DynamicNode>(firstArg.ToString());
|
||||
return true;
|
||||
}
|
||||
if (name == "Average" || name == "Min" || name == "Max" || name == "Sum")
|
||||
@@ -186,40 +185,40 @@ namespace umbraco.MacroEngines
|
||||
}
|
||||
if (name == "Union")
|
||||
{
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Union(firstArg as IEnumerable<DynamicNode>));
|
||||
result = new DynamicNodeList(this.Items.Union(firstArg as IEnumerable<DynamicNode>));
|
||||
return true;
|
||||
}
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Union((firstArg as DynamicNodeList).Items));
|
||||
result = new DynamicNodeList(this.Items.Union((firstArg as DynamicNodeList).Items));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (name == "Except")
|
||||
{
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Except(firstArg as IEnumerable<DynamicNode>, new DynamicNodeIdEqualityComparer()));
|
||||
result = new DynamicNodeList(this.Items.Except(firstArg as IEnumerable<DynamicNode>, new DynamicNodeIdEqualityComparer()));
|
||||
return true;
|
||||
}
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Except((firstArg as DynamicNodeList).Items, new DynamicNodeIdEqualityComparer()));
|
||||
result = new DynamicNodeList(this.Items.Except((firstArg as DynamicNodeList).Items, new DynamicNodeIdEqualityComparer()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (name == "Intersect")
|
||||
{
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
if ((firstArg as IEnumerable<DynamicNode>) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Intersect(firstArg as IEnumerable<DynamicNode>, new DynamicNodeIdEqualityComparer()));
|
||||
result = new DynamicNodeList(this.Items.Intersect(firstArg as IEnumerable<DynamicNode>, new DynamicNodeIdEqualityComparer()));
|
||||
return true;
|
||||
}
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
if ((firstArg as DynamicNodeList) != null)
|
||||
{
|
||||
result = new DynamicNodeList(this.Items.Intersect((firstArg as DynamicNodeList).Items, new DynamicNodeIdEqualityComparer()));
|
||||
result = new DynamicNodeList(this.Items.Intersect((firstArg as DynamicNodeList).Items, new DynamicNodeIdEqualityComparer()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -449,12 +448,12 @@ namespace umbraco.MacroEngines
|
||||
var genericArgs = (new[] { this }).Concat(args);
|
||||
result = methodToExecute.Invoke(null, genericArgs.ToArray());
|
||||
}
|
||||
else if (TypeHelper.IsTypeAssignableFrom<IQueryable>(methodToExecute.GetParameters().First().ParameterType))
|
||||
{
|
||||
//if it is IQueryable, we'll need to cast Items AsQueryable
|
||||
var genericArgs = (new[] { Items.AsQueryable() }).Concat(args);
|
||||
result = methodToExecute.Invoke(null, genericArgs.ToArray());
|
||||
}
|
||||
else if (TypeHelper.IsTypeAssignableFrom<IQueryable>(methodToExecute.GetParameters().First().ParameterType))
|
||||
{
|
||||
//if it is IQueryable, we'll need to cast Items AsQueryable
|
||||
var genericArgs = (new[] { Items.AsQueryable() }).Concat(args);
|
||||
result = methodToExecute.Invoke(null, genericArgs.ToArray());
|
||||
}
|
||||
else
|
||||
{
|
||||
var genericArgs = (new[] { Items }).Concat(args);
|
||||
@@ -483,52 +482,52 @@ namespace umbraco.MacroEngines
|
||||
return result;
|
||||
}
|
||||
|
||||
public IEnumerator<DynamicNode> GetEnumerator()
|
||||
{
|
||||
return Items.GetEnumerator();
|
||||
}
|
||||
public IEnumerator<DynamicNode> GetEnumerator()
|
||||
{
|
||||
return Items.GetEnumerator();
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
public T Single<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).Single()
|
||||
: Where<T>(predicate, values).Single();
|
||||
}
|
||||
public T SingleOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).SingleOrDefault()
|
||||
: Where<T>(predicate, values).SingleOrDefault();
|
||||
}
|
||||
public T First<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).First()
|
||||
: Where<T>(predicate, values).First();
|
||||
}
|
||||
public T FirstOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).FirstOrDefault()
|
||||
: Where<T>(predicate, values).FirstOrDefault();
|
||||
}
|
||||
public T Last<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).Last()
|
||||
: Where<T>(predicate, values).Last();
|
||||
}
|
||||
public T LastOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).LastOrDefault()
|
||||
: Where<T>(predicate, values).LastOrDefault();
|
||||
}
|
||||
public T Single<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).Single()
|
||||
: Where<T>(predicate, values).Single();
|
||||
}
|
||||
public T SingleOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).SingleOrDefault()
|
||||
: Where<T>(predicate, values).SingleOrDefault();
|
||||
}
|
||||
public T First<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).First()
|
||||
: Where<T>(predicate, values).First();
|
||||
}
|
||||
public T FirstOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).FirstOrDefault()
|
||||
: Where<T>(predicate, values).FirstOrDefault();
|
||||
}
|
||||
public T Last<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).Last()
|
||||
: Where<T>(predicate, values).Last();
|
||||
}
|
||||
public T LastOrDefault<T>(string predicate, params object[] values)
|
||||
{
|
||||
return predicate.IsNullOrWhiteSpace()
|
||||
? ((IQueryable<T>)Items.AsQueryable()).LastOrDefault()
|
||||
: Where<T>(predicate, values).LastOrDefault();
|
||||
}
|
||||
public IQueryable<T> Where<T>(string predicate, params object[] values)
|
||||
{
|
||||
return ((IQueryable<T>)Items.AsQueryable()).Where(predicate, values);
|
||||
|
||||
@@ -101,17 +101,17 @@ namespace umbraco.BasePages
|
||||
}
|
||||
}
|
||||
|
||||
private UrlHelper _url;
|
||||
/// <summary>
|
||||
/// Returns a UrlHelper
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This URL helper is created without any route data and an empty request context
|
||||
/// </remarks>
|
||||
public UrlHelper Url
|
||||
{
|
||||
get { return _url ?? (_url = new UrlHelper(Context.Request.RequestContext)); }
|
||||
}
|
||||
private UrlHelper _url;
|
||||
/// <summary>
|
||||
/// Returns a UrlHelper
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This URL helper is created without any route data and an empty request context
|
||||
/// </remarks>
|
||||
public UrlHelper Url
|
||||
{
|
||||
get { return _url ?? (_url = new UrlHelper(Context.Request.RequestContext)); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a refernce of an instance of ClientTools for access to the pages client API
|
||||
@@ -308,7 +308,7 @@ namespace umbraco.BasePages
|
||||
Culture = ui.Culture(u)
|
||||
|
||||
});
|
||||
LogHelper.Info<BasePage>("User {0} (Id: {1}) logged in", () => u.Name, () => u.Id);
|
||||
LogHelper.Info<BasePage>("User {0} (Id: {1}) logged in", () => u.Name, () => u.Id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -131,8 +131,8 @@ namespace umbraco.BasePages
|
||||
if (permissions.IndexOf(Action) > -1 && (Path.Contains("-20") || ("," + Path + ",").Contains("," + getUser().StartNodeId.ToString() + ",")))
|
||||
return true;
|
||||
|
||||
var user = getUser();
|
||||
LogHelper.Info<UmbracoEnsuredPage>("User {0} has insufficient permissions in UmbracoEnsuredPage: '{1}', '{2}', '{3}'", () => user.Name, () => Path, () => permissions, () => Action);
|
||||
var user = getUser();
|
||||
LogHelper.Info<UmbracoEnsuredPage>("User {0} has insufficient permissions in UmbracoEnsuredPage: '{1}', '{2}', '{3}'", () => user.Name, () => Path, () => permissions, () => Action);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user