diff --git a/LinqToUmbraco/src/umbraco.Linq/Core/DocTypeBase.cs b/LinqToUmbraco/src/umbraco.Linq/Core/DocTypeBase.cs
index 9355347efb..46966db7b3 100644
--- a/LinqToUmbraco/src/umbraco.Linq/Core/DocTypeBase.cs
+++ b/LinqToUmbraco/src/umbraco.Linq/Core/DocTypeBase.cs
@@ -64,9 +64,13 @@ namespace umbraco.Linq.Core
{
var attr = ReflectionAssistance.GetumbracoInfoAttribute(p);
- var data = xml.Elements("data").Single(x => (string)x.Attribute("alias") == attr.Alias);
+ var data = xml.Elements("data").Single(x => (string)x.Attribute("alias") == attr.Alias).Value;
+ if (p.PropertyType == typeof(int) && string.IsNullOrEmpty(data))
+ {
+ data = "-1";
+ }
// TODO: Address how Convert.ChangeType works in globalisation
- p.SetValue(this, Convert.ChangeType(data.Value, p.PropertyType), null);
+ p.SetValue(this, Convert.ChangeType(data, p.PropertyType), null);
}
}
diff --git a/LinqToUmbraco/src/umbraco.Linq/Core/Node/NodeDataProvider.cs b/LinqToUmbraco/src/umbraco.Linq/Core/Node/NodeDataProvider.cs
index de51c1d158..c711cac9d1 100644
--- a/LinqToUmbraco/src/umbraco.Linq/Core/Node/NodeDataProvider.cs
+++ b/LinqToUmbraco/src/umbraco.Linq/Core/Node/NodeDataProvider.cs
@@ -85,7 +85,7 @@ namespace umbraco.Linq.Core.Node
/// Initializes a new instance of the class using umbraco settings as XML path
///
public NodeDataProvider()
- : this(System.Web.HttpContext.Current.Server.MapPath(umbraco.GlobalSettings.Path))
+ : this(umbraco.presentation.UmbracoContext.Current.Server.MapPath(umbraco.presentation.UmbracoContext.Current.Server.ContentXmlPath))
{
}
diff --git a/LinqToUmbraco/src/umbraco.Linq/Core/umbraco.Linq.Core.csproj b/LinqToUmbraco/src/umbraco.Linq/Core/umbraco.Linq.Core.csproj
index 396f346046..964d11c249 100644
--- a/LinqToUmbraco/src/umbraco.Linq/Core/umbraco.Linq.Core.csproj
+++ b/LinqToUmbraco/src/umbraco.Linq/Core/umbraco.Linq.Core.csproj
@@ -16,12 +16,13 @@
SAK
SAK
SAK
+ ..\..\..\..\..\umbraco\presentation\bin
true
full
false
- bin\Debug\
+ ..\..\..\..\umbraco\presentation\bin\
DEBUG;TRACE
prompt
4
@@ -55,6 +56,11 @@
3.0
+
+ False
+ ..\..\..\..\foreign dlls\System.Web.Abstractions.dll
+ 3.5
+
3.5
@@ -91,13 +97,16 @@
{E469A9CE-1BEC-423F-AC44-713CD72457EA}
umbraco.businesslogic
+
+ {651E1350-91B6-44B7-BD60-7207006D7003}
+ umbraco.presentation
+
- -->
\ No newline at end of file
diff --git a/umbraco/presentation/UmbracoContext.cs b/umbraco/presentation/UmbracoContext.cs
index aacd1991da..9e1e669888 100644
--- a/umbraco/presentation/UmbracoContext.cs
+++ b/umbraco/presentation/UmbracoContext.cs
@@ -3,14 +3,51 @@ using System.Web;
using umbraco.presentation.LiveEditing;
using umbraco.BasePages;
using umbraco.cms.businesslogic.web;
+using System.Xml.Linq;
namespace umbraco.presentation
{
+ public class UmbracoServerUtility : HttpServerUtilityWrapper
+ {
+ private HttpServerUtility m_Server;
+
+ public UmbracoServerUtility(HttpServerUtility server) : base(server)
+ {
+ m_Server = server;
+ }
+
+ public string UmbracoPath
+ {
+ get
+ {
+ return GlobalSettings.Path;
+ }
+ }
+
+ public string ContentXmlPath
+ {
+ get
+ {
+ return GlobalSettings.ContentXML;
+ }
+ }
+
+ public XDocument ContentXml
+ {
+ get
+ {
+ return XDocument.Load(this.ContentXmlPath);
+ }
+ }
+ }
///
/// Class that encapsulates Umbraco information of a specific HTTP request.
///
public class UmbracoContext
{
+ private UmbracoServerUtility m_Server;
+ private UmbracoRequest m_Request;
+ private UmbracoResponse m_Response;
private HttpContext m_HttpContext;
///
@@ -104,7 +141,11 @@ namespace umbraco.presentation
{
get
{
- return new UmbracoResponse(this.m_HttpContext.Response);
+ if (m_Response == null)
+ {
+ m_Response = new UmbracoResponse(this.m_HttpContext.Response);
+ }
+ return m_Response;
}
}
@@ -116,7 +157,11 @@ namespace umbraco.presentation
{
get
{
- return new UmbracoRequest(this.m_HttpContext.Request);
+ if (m_Request == null)
+ {
+ m_Request = new UmbracoRequest(this.m_HttpContext.Request);
+ }
+ return m_Request;
}
}
@@ -128,5 +173,17 @@ namespace umbraco.presentation
{
return this.Request.Url.GetLeftPart(UriPartial.Authority);
}
+
+ public virtual UmbracoServerUtility Server
+ {
+ get
+ {
+ if (m_Server == null)
+ {
+ m_Server = new UmbracoServerUtility(this.m_HttpContext.Server);
+ }
+ return m_Server;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/umbraco/presentation/umbraco.presentation.csproj b/umbraco/presentation/umbraco.presentation.csproj
index 7f435bda24..535017640d 100644
--- a/umbraco/presentation/umbraco.presentation.csproj
+++ b/umbraco/presentation/umbraco.presentation.csproj
@@ -1,6 +1,6 @@
- 9.0.21022
+ 9.0.30729
2.0
{651E1350-91B6-44B7-BD60-7207006D7003}
{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
@@ -354,8 +354,8 @@
editContent.aspx
- ASPXCodeBehind
preview.aspx
+ ASPXCodeBehind
preview.aspx
@@ -667,8 +667,8 @@
Boost.aspx
- ASPXCodeBehind
BrowseRepository.aspx
+ ASPXCodeBehind
BrowseRepository.aspx
@@ -689,8 +689,8 @@
editPackage.aspx
- ASPXCodeBehind
installedPackage.aspx
+ ASPXCodeBehind
installedPackage.aspx
@@ -710,8 +710,8 @@
SubmitPackage.aspx
- ASPXCodeBehind
editPython.aspx
+ ASPXCodeBehind
editPython.aspx
@@ -798,8 +798,8 @@
editMacro.aspx
- ASPXCodeBehind
emptyTrashcan.aspx
+ ASPXCodeBehind
emptyTrashcan.aspx
@@ -1199,8 +1199,8 @@
publishStatus.aspx
- ASPXCodeBehind
reindex.aspx
+ ASPXCodeBehind
reindex.aspx