Commit Graph

115 Commits

Author SHA1 Message Date
agrath
3a7609cba0 Another fix for Catch FileNotFound exceptions in ExamineBackedMedia which are thrown by Examine currently (bug?) on a LoadBalanced file store after a publish occurs. When caught, ExamineBackedMedia will fall back to GetMedia as if the media item wasn't in the examine index 2011-07-28 09:44:23 -12:00
agrath
e72bd130e3 Further changes to fix bug with 'incorrect number of lambda paramters' issue with .Where when using && and || 2011-07-26 14:02:25 -12:00
agrath
ae3357de0d Fixed a bug with .Where && and || throwing invalid number of parameters for lambda when both left & right were not lambdas, e.g. Visible && NodeTypeAlias != umbNewsArticleItem 2011-07-24 13:55:36 -12:00
agrath@gmail.com
31169380f8 Changed the return type of RTE to a different HtmlString (internal) so that it can be implicitly convertible for string for If comparisons. Added an extension method for string.HasValue so that .Where can invoke it to improve readibility when comparing RTE to empty string based on feedback from @cultiv. Cleaned up an empty if in DynamicQuerable 2011-07-21 20:19:54 -12:00
agrath@gmail.com
3737a8cf28 Catch FileNotFound exceptions in ExamineBackedMedia which are thrown by Examine currently (bug?) on a LoadBalanced file store after a publish occurs. When caught, ExamineBackedMedia will fall back to GetMedia as if the media item wasn't in the examine index 2011-07-21 13:15:20 -12:00
agrath@gmail.com
ba965a95e9 Made ConvertPropertyValueByDataType return DynamicNull instead of empty string when the datatype is a Date/Time and the TryParse fails. Only applied DateTime parsing to datatype Date/Time rather than always trying it 2011-07-21 12:18:58 -12:00
agrath@gmail.com
80e6187436 Made DynamicNull implictly convertable to DateTime (.MinValue) to support next change 2011-07-21 12:17:55 -12:00
agrath@gmail.com
6dcf1fcd8e Slight optimisation in ExtensionMethodFinder. Previous commits fixed #30346 2011-07-21 11:42:34 -12:00
agrath@gmail.com
f6ab67ea78 Added support to ExtensionMethodFinder to do overload type resolution to locate the correct extension method based on types when there are multiple overloads available 2011-07-21 11:27:34 -12:00
agrath@gmail.com
e8a941fc1f Added support for invoking extension methods on native properties on DynamicNode where the native property type is string (e.g. NodeTypeAlias, Name). Half fixes ContainsAny support 2011-07-21 11:25:15 -12:00
sgay
f20931cfa4 Refactored Razor DynamicNode.XPath() to returns an empty list when no nodes are found, instead of throwing [#30361] 2011-07-14 06:47:40 -02:00
agrath@gmail.com
a66847587c Added pluck aggregates Sum/Average/Min/Max to DynamicNodeList 2011-07-11 12:20:02 -12:00
agrath@gmail.com
d9dc90090b Changed @Library.MediaById(.) to return a DynamicMedia again so that specific media functionality can be added. DynamicMedia is just an empty subclass of DynamicNode currently 2011-07-11 11:27:31 -12:00
agrath@gmail.com
892a382eca Added HasValue overloads that function like If/Where shorthands for writing out a value if a property has a value, e.g. Class Name 2011-07-11 11:24:00 -12:00
agrath@gmail.com
17f6ee1c91 Made PropertyResult IHtmlString so if you @Model.GetProperty(propName) then you get the value but it's still a PropertyResult/IProperty 2011-07-11 11:20:31 -12:00
agrath@gmail.com
48c11f6b45 Added TryInvoke and TryGetIndex methods to DynamicNull to prevent crashes on missing properties 2011-07-11 11:13:31 -12:00
agrath@gmail.com
d5e3ceecec Made IsHelper methods on DynamicNode and DynamicXml return HtmlString instead of string 2011-07-03 22:41:33 -12:00
agrath@gmail.com
d81aed3dc5 Fixed ExamineBackedMedia.NodeTypeAlias - was using the wrong Values key 2011-07-03 21:02:35 -12:00
agrath@gmail.com
cfcae904ba Added implicit conversion between DynamicNull and bool (false) which allows you to go @if(@Model.dynamicNullProperty) 2011-07-03 19:25:16 -12:00
agrath@gmail.com
8ab1c11bd1 Made @Library.NodeById and @Library.MediaById DynamicNull safe, will return DynamicNull instead of 'Cannot instantiate a DynamicNode without an id' 2011-07-03 18:31:47 -12:00
agrath@gmail.com
41d3c9f3d9 Formatting in Linq Foreach of IRazorDataTypeModel cache build code 2011-07-03 10:14:04 -12:00
agrath@gmail.com
1164ea3ab1 Fixed a bug where if the ContentType (DocumentType) tree was a different tree to the Content or Media (Node) tree then the datatype lookup could fail when retrieving a property recursively.
If GetProperty recursively walked up the content tree to the first node that defined the property and eventutally found it, and the NodeType[Alias] of the node it was found on was not a parent of the original content's node type, then the lookup would fail.
Changed DynamicBackingItem.GetProperty (and PropertyResult class) to return the Node/Context where the property is being returned from and used this context's NodeTypeAlias as the in the data type lookup.
2011-07-03 09:32:29 -12:00
agrath@gmail.com
75d15cdc31 Made GetProperty break earlier if context/parent is null (prevents NRE) and slightly changed behaviour so that empty strings will go recursively to the parent. Added prefix to property access (_) which will cause the property to be looked up recursively. This syntax is used when you want to get the value recursively, but you want to still apply the IRazorDataTypeModel (as @Model.GetPropertyValue won't do that). Syntax is: @Model._propertyName - had to be a _ as that is legal c# 2011-07-02 17:29:47 -12:00
agrath@gmail.com
49a0c8a11a Changed return type of @Library.If to IHtmlString so that you can return HTML with it 2011-07-02 17:27:27 -12:00
agrath@gmail.com
8435067e98 Added overload to @Library.If for trueValue only 2011-06-30 11:56:16 -12:00
agrath@gmail.com
eff692249d Made the int.TryParse and decimal.TryParse in DynamicNode culture aware so that , and . as numeric/decimal seperators are handled properly 2011-06-30 11:00:15 -12:00
agrath@gmail.com
0589d34abd Changed the implementation of IRazorDataTypeModel to allow for immutable types to be returned such as string, int. Thanks @zpqrtbnk 2011-06-30 10:32:50 -12:00
agrath@gmail.com
9b4a08950c Added support for attribute first child fallback in DynamicXml 2011-06-30 10:16:30 -12:00
agrath@gmail.com
5988ff5da8 Added a try/catch to GetPropertyInternal to catch a potential MissingMethodException when trying to locate a property that didn't exist 2011-06-29 17:45:08 -12:00
agrath@gmail.com
cce3cdc18b fixed some potential crashes in datatype lookups and a keyalreadyexists exception in datatype lookup 2011-06-29 17:36:37 -12:00
agrath@gmail.com
0475b48a8c Fixed an issue with new DynamicNode() and DynamicNode.XPath using the wrong overload, thanks @cultiv 2011-06-29 17:18:10 -12:00
agrath@gmail.com
56e9cdb045 Added overloads to @Library.Truncate and @Library.StripHtml for DynamicNull to prevent errors when properties may not exist 2011-06-27 16:52:04 -12:00
agrath@gmail.com
ba8d8f8787 Changed @Library methods which return Dynamic* types to return type dynamic as methods on DynamicNodeList etc wouldn't work due to the type not being dynamic. Because @Model.NodeById got moved to @Library.NodeById and @Model is dynamic, this problem didn't exist before 2011-06-27 12:45:17 -12:00
agrath@gmail.com
0b47da8d41 Added @Library.Truncate to simulate string.left but not error when string is < length and be html tag aware. Optionally adds elipsis to end of strings 2011-06-26 11:26:02 -12:00
agrath@gmail.com
dc32f500ae Added @Library.StripHtml to remove HTML tags from a string 2011-06-26 09:51:46 -12:00
agrath@gmail.com
b59b5052ba Bug fix: slightly changed behaviour of ordering code when dealing with dynamic properties (e.g. user properties not fields on DynamicNode) and missing data, thanks @Cultiv for the report 2011-06-22 01:08:15 -08:00
agrath@gmail.com
c63b58612d Renamed a variable on one of the overloads of @Library.Wrap and changed the behaviour of Visible so that it applies at render time, not tag creation time instead of returning null, this will enable chaining for invisible tags as well as being able to change your mind about whether the tag should render or not 2011-06-20 11:11:18 -02:00
agrath@gmail.com
7209d68028 Realised that IHtmlString is an interface and may have a method I can implement to avoid .Write() or .ToHtml() on HtmlTagWrapper. Implemented and tested this. Victory. 2011-06-20 07:47:29 -02:00
agrath@gmail.com
d0d48f18ff Removed upcasting for uComponents multitreenode picker in DynamicNode ConvertPropertyValueByDataType in favour of the new plugin interface [I]RazorDataTypeModel 2011-06-19 14:40:10 -02:00
agrath@gmail.com
00141ba801 Added a new feature for plugin developers to create a model class that DynamicNode will return for their data type instead of the underlying type 2011-06-19 08:19:11 -02:00
agrath@gmail.com
3480a5d957 Made DynamicNodeList.XPath only work for content as it is the only one with an XML Backing document 2011-06-18 15:46:34 -02:00
agrath@gmail.com
940239f1f2 Added HtmlTagWrapper.AddChildren and HtmlTagWrapper.AddChildrenAt methods 2011-06-16 11:02:23 -02:00
agrath@gmail.com
d4ed1efcf5 Fixed bug with HtmlTagWrapper.Write not writing if no children or attributes but class names were set 2011-06-16 10:59:36 -02:00
agrath@gmail.com
27aebac7e0 Aliased HtmlTagWrapper.Write as HtmlTagWrapper.ToHtml to match DynamicXml.ToHtml 2011-06-16 10:58:13 -02:00
agrath@gmail.com
86c9e8bde0 Added IsNotEqual IfHelper to DynamicNode and DynamicXml 2011-06-16 10:55:41 -02:00
agrath@gmail.com
9a1cfafb74 Made DynamicXml implicitly search child[0] if no match for dot notation chained child, fixes a regression/backwards compat change break due to the way elements are now consistently returned as sets 2011-06-16 09:54:53 -02:00
agrath@gmail.com
97a9d11cba Added ToHtml method to DynamicXml which allows you to get an IHtmlString back if you didn't want DynamicXml for XML syntactically correct data 2011-06-16 09:29:38 -02:00
agrath@gmail.com
ee57f4c449 Adds pageName attribute to DynamicNode
Rename NodeById to NodesById when dealing with multiple parameters
Fixes work item 30290 : Strip - in element and attribute names for DynamicXml
2011-06-13 15:21:16 -02:00
agrath@gmail.com
2c22bea92f Renamed inconsistently named multiple NodeById methods 2011-06-13 12:59:36 -02:00
agrath@gmail.com
8112f240be Fixed an issue with GetProperty not finding properties according to the same case rules as DynamicNode and not falling back to local properties when the property wasn't on the Document Type 2011-06-13 12:28:35 -02:00