diff --git a/src/Umbraco.Core/Models/ContentStatus.cs b/src/Umbraco.Core/Models/ContentStatus.cs
index a50864fcc1..d3d65213f2 100644
--- a/src/Umbraco.Core/Models/ContentStatus.cs
+++ b/src/Umbraco.Core/Models/ContentStatus.cs
@@ -1,8 +1,13 @@
-namespace Umbraco.Core.Models
+using System;
+using System.Runtime.Serialization;
+
+namespace Umbraco.Core.Models
{
///
/// Enum for the various statuses a Content object can have
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public enum ContentStatus
{
Unpublished, Published, Expired, Trashed, AwaitingRelease
diff --git a/src/Umbraco.Core/Models/DataTypeDatabaseType.cs b/src/Umbraco.Core/Models/DataTypeDatabaseType.cs
index 28e70cca44..d0c3fb13b8 100644
--- a/src/Umbraco.Core/Models/DataTypeDatabaseType.cs
+++ b/src/Umbraco.Core/Models/DataTypeDatabaseType.cs
@@ -1,3 +1,6 @@
+using System;
+using System.Runtime.Serialization;
+
namespace Umbraco.Core.Models
{
///
@@ -7,6 +10,8 @@ namespace Umbraco.Core.Models
/// Object is added to support complex values from PropertyEditors,
/// but will be saved under the Ntext column.
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public enum DataTypeDatabaseType
{
Integer,
diff --git a/src/Umbraco.Core/Models/File.cs b/src/Umbraco.Core/Models/File.cs
index 09bc15217c..8b46a1ec14 100644
--- a/src/Umbraco.Core/Models/File.cs
+++ b/src/Umbraco.Core/Models/File.cs
@@ -1,8 +1,14 @@
using System;
using System.IO;
+using System.Runtime.Serialization;
namespace Umbraco.Core.Models
{
+ ///
+ /// Represents an abstract file which provides basic functionality for a File with an Alias and Name
+ ///
+ [Serializable]
+ [DataContract(IsReference = true)]
public abstract class File : IFile
{
private string _name;
@@ -16,6 +22,7 @@ namespace Umbraco.Core.Models
///
/// Gets or sets the Name of the File including extension
///
+ [DataMember]
public virtual string Name
{
get
@@ -32,6 +39,7 @@ namespace Umbraco.Core.Models
///
/// Gets or sets the Alias of the File, which is the name without the extension
///
+ [DataMember]
public virtual string Alias
{
get
@@ -51,11 +59,13 @@ namespace Umbraco.Core.Models
///
/// Gets or sets the Path to the File from the root of the site
///
+ [DataMember]
public virtual string Path { get; set; }
///
/// Gets or sets the Content of a File
///
+ [DataMember]
public virtual string Content { get; set; }
///
diff --git a/src/Umbraco.Core/Models/MacroPropertyTypeBaseTypes.cs b/src/Umbraco.Core/Models/MacroPropertyTypeBaseTypes.cs
index 0380f1df63..27ff5a1bfa 100644
--- a/src/Umbraco.Core/Models/MacroPropertyTypeBaseTypes.cs
+++ b/src/Umbraco.Core/Models/MacroPropertyTypeBaseTypes.cs
@@ -1,8 +1,13 @@
-namespace Umbraco.Core.Models
+using System;
+using System.Runtime.Serialization;
+
+namespace Umbraco.Core.Models
{
///
/// Enum for the three allowed BaseTypes
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public enum MacroPropertyTypeBaseTypes
{
Int32,
diff --git a/src/Umbraco.Core/Models/MacroTypes.cs b/src/Umbraco.Core/Models/MacroTypes.cs
index ef1083afe9..a8f32ebff1 100644
--- a/src/Umbraco.Core/Models/MacroTypes.cs
+++ b/src/Umbraco.Core/Models/MacroTypes.cs
@@ -1,8 +1,13 @@
-namespace Umbraco.Core.Models
+using System;
+using System.Runtime.Serialization;
+
+namespace Umbraco.Core.Models
{
///
/// Enum for the various types of Macros
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public enum MacroTypes
{
Xslt = 1,
diff --git a/src/Umbraco.Core/Models/PropertyCollection.cs b/src/Umbraco.Core/Models/PropertyCollection.cs
index 03eb5c97fe..db90d5b42b 100644
--- a/src/Umbraco.Core/Models/PropertyCollection.cs
+++ b/src/Umbraco.Core/Models/PropertyCollection.cs
@@ -8,6 +8,9 @@ using System.Threading;
namespace Umbraco.Core.Models
{
+ ///
+ /// Represents a Collection of objects
+ ///
[Serializable]
[DataContract(IsReference = true)]
public class PropertyCollection : KeyedCollection, INotifyCollectionChanged
diff --git a/src/Umbraco.Core/Models/PropertyGroupCollection.cs b/src/Umbraco.Core/Models/PropertyGroupCollection.cs
index 6895d4c45d..e9fc8e5a0d 100644
--- a/src/Umbraco.Core/Models/PropertyGroupCollection.cs
+++ b/src/Umbraco.Core/Models/PropertyGroupCollection.cs
@@ -8,6 +8,9 @@ using System.Threading;
namespace Umbraco.Core.Models
{
+ ///
+ /// Represents a collection of objects
+ ///
[Serializable]
[DataContract(IsReference = true)]
public class PropertyGroupCollection : KeyedCollection, INotifyCollectionChanged
diff --git a/src/Umbraco.Core/Models/PropertyTypeCollection.cs b/src/Umbraco.Core/Models/PropertyTypeCollection.cs
index 395e6009a1..57574fa125 100644
--- a/src/Umbraco.Core/Models/PropertyTypeCollection.cs
+++ b/src/Umbraco.Core/Models/PropertyTypeCollection.cs
@@ -8,6 +8,9 @@ using System.Threading;
namespace Umbraco.Core.Models
{
+ ///
+ /// Represents a collection of objects
+ ///
[Serializable]
[DataContract(IsReference = true)]
public class PropertyTypeCollection : KeyedCollection, INotifyCollectionChanged
diff --git a/src/Umbraco.Core/Models/Script.cs b/src/Umbraco.Core/Models/Script.cs
index 48aa53987a..242b076daa 100644
--- a/src/Umbraco.Core/Models/Script.cs
+++ b/src/Umbraco.Core/Models/Script.cs
@@ -1,4 +1,6 @@
-using System.Linq;
+using System;
+using System.Linq;
+using System.Runtime.Serialization;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
@@ -7,6 +9,8 @@ namespace Umbraco.Core.Models
///
/// Represents a Script file
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public class Script : File
{
public Script(string path) : base(path)
diff --git a/src/Umbraco.Core/Models/Stylesheet.cs b/src/Umbraco.Core/Models/Stylesheet.cs
index e4a985073c..f8d82e6ae7 100644
--- a/src/Umbraco.Core/Models/Stylesheet.cs
+++ b/src/Umbraco.Core/Models/Stylesheet.cs
@@ -1,5 +1,7 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Linq;
+using System.Runtime.Serialization;
using Umbraco.Core.IO;
using Umbraco.Core.Models.Css;
using Umbraco.Core.Models.EntityBase;
@@ -9,6 +11,8 @@ namespace Umbraco.Core.Models
///
/// Represents a Stylesheet file
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public class Stylesheet : File
{
public Stylesheet(string path) : base(path)
@@ -19,6 +23,7 @@ namespace Umbraco.Core.Models
///
/// Returns a list of
///
+ [IgnoreDataMember]
public IEnumerable Properties
{
get
@@ -26,6 +31,7 @@ namespace Umbraco.Core.Models
var properties = new List();
var parser = new CssParser(Path);//TODO change CssParser so we can use Content instead of Path
+ //TODO Need to explorer how the Stylesheet should be iterated to generate a list of css properties
foreach (CssAtRule statement in parser.StyleSheet.Statements)
{
properties.Add(new StylesheetProperty(statement.Value, ""));
diff --git a/src/Umbraco.Core/Models/Template.cs b/src/Umbraco.Core/Models/Template.cs
index 3e49137718..3aa5abe62b 100644
--- a/src/Umbraco.Core/Models/Template.cs
+++ b/src/Umbraco.Core/Models/Template.cs
@@ -1,4 +1,6 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
using Umbraco.Core.Configuration;
using Umbraco.Core.IO;
@@ -7,6 +9,8 @@ namespace Umbraco.Core.Models
///
/// Represents a Template file
///
+ [Serializable]
+ [DataContract(IsReference = true)]
public class Template : File
{
public Template(string path)