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