Shifting parts

This commit is contained in:
Sebastien Ros
2013-10-03 14:57:37 -07:00
parent 6783355f3e
commit 150761875d
7 changed files with 85 additions and 31 deletions

View File

@@ -1,10 +1,14 @@
using Orchard.ContentManagement;
using Orchard.ContentManagement.FieldStorage.InfosetStorage;
namespace Orchard.Core.Common.Models {
public class BodyPart : ContentPart<BodyPartRecord> {
public string Text {
get { return Record.Text; }
set { Record.Text = value; }
get { return this.As<InfosetPart>().Get<BodyPart>("Text"); }
set {
this.As<InfosetPart>().Set<BodyPart>("Text", value);
Record.Text = value;
}
}
}
}

View File

@@ -1,4 +1,6 @@
using System;
using System.Xml;
using Orchard.ContentManagement.FieldStorage.InfosetStorage;
using Orchard.Core.Common.Utilities;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
@@ -24,18 +26,39 @@ namespace Orchard.Core.Common.Models {
}
public DateTime? CreatedUtc {
get { return Record.CreatedUtc; }
set { Record.CreatedUtc = value; }
get {
var dateTime = this.As<InfosetPart>().Get<CommonPart>("CreatedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<CommonPart>("CreatedUtc", dateTime);
Record.CreatedUtc = value;
}
}
public DateTime? PublishedUtc {
get { return Record.PublishedUtc; }
set { Record.PublishedUtc = value; }
get {
var dateTime = this.As<InfosetPart>().Get<CommonPart>("PublishedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<CommonPart>("PublishedUtc", dateTime);
Record.PublishedUtc = value;
}
}
public DateTime? ModifiedUtc {
get { return Record.ModifiedUtc; }
set { Record.ModifiedUtc = value; }
get {
var dateTime = this.As<InfosetPart>().Get<CommonPart>("ModifiedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<CommonPart>("ModifiedUtc", dateTime);
Record.ModifiedUtc = value;
}
}
CommonPartVersionRecord PartVersionRecord {
@@ -47,9 +70,12 @@ namespace Orchard.Core.Common.Models {
public DateTime? VersionCreatedUtc {
get {
return PartVersionRecord == null ? CreatedUtc : PartVersionRecord.CreatedUtc;
var dateTime = this.As<InfosetPart>().Get<ContentPart<CommonPartVersionRecord>>("CreatedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<ContentPart<CommonPartVersionRecord>>("CreatedUtc", dateTime);
if (PartVersionRecord != null)
PartVersionRecord.CreatedUtc = value;
}
@@ -57,9 +83,12 @@ namespace Orchard.Core.Common.Models {
public DateTime? VersionPublishedUtc {
get {
return PartVersionRecord == null ? PublishedUtc : PartVersionRecord.PublishedUtc;
var dateTime = this.As<InfosetPart>().Get<ContentPart<CommonPartVersionRecord>>("PublishedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<ContentPart<CommonPartVersionRecord>>("PublishedUtc", dateTime);
if (PartVersionRecord != null)
PartVersionRecord.PublishedUtc = value;
}
@@ -67,12 +96,16 @@ namespace Orchard.Core.Common.Models {
public DateTime? VersionModifiedUtc {
get {
return PartVersionRecord == null ? ModifiedUtc : PartVersionRecord.ModifiedUtc;
var dateTime = this.As<InfosetPart>().Get<ContentPart<CommonPartVersionRecord>>("ModifiedUtc");
return dateTime == "" ? (DateTime?)null : XmlConvert.ToDateTime(dateTime, XmlDateTimeSerializationMode.Utc);
}
set {
string dateTime = value.HasValue ? XmlConvert.ToString(value.Value, XmlDateTimeSerializationMode.Utc) : "";
this.As<InfosetPart>().Set<ContentPart<CommonPartVersionRecord>>("ModifiedUtc", dateTime);
if (PartVersionRecord != null)
PartVersionRecord.ModifiedUtc = value;
}
}
}
}

View File

@@ -1,10 +1,14 @@
using Orchard.ContentManagement;
using Orchard.ContentManagement.FieldStorage.InfosetStorage;
namespace Orchard.Core.Common.Models {
public class IdentityPart : ContentPart<IdentityPartRecord> {
public string Identifier {
get { return Record.Identifier; }
set { Record.Identifier = value; }
get { return this.As<InfosetPart>().Get<IdentityPart>("Identifier"); }
set {
this.As<InfosetPart>().Set<IdentityPart>("Identifier", value);
Record.Identifier = value;
}
}
}
}

View File

@@ -1,13 +1,17 @@
using System.ComponentModel.DataAnnotations;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.ContentManagement.FieldStorage.InfosetStorage;
namespace Orchard.Core.Title.Models {
public class TitlePart : ContentPart<TitlePartRecord>, ITitleAspect {
[Required]
public string Title {
get { return Record.Title; }
set { Record.Title = value; }
get { return this.As<InfosetPart>().Get<TitlePart>("Title"); }
set {
this.As<InfosetPart>().Set<TitlePart>("Title", value);
Record.Title = value;
}
}
}
}

View File

@@ -1,22 +1,32 @@
using Orchard.ContentManagement;
using Orchard.ContentManagement.Aspects;
using Orchard.ContentManagement.FieldStorage.InfosetStorage;
namespace Orchard.Autoroute.Models {
public class AutoroutePart : ContentPart<AutoroutePartRecord>, IAliasAspect {
public string CustomPattern {
get { return Record.CustomPattern; }
set { Record.CustomPattern = value; }
get { return this.As<InfosetPart>().Get<AutoroutePart>("CustomPattern"); }
set {
this.As<InfosetPart>().Set<AutoroutePart>("CustomPattern", value);
Record.CustomPattern = value;
}
}
public bool UseCustomPattern {
get { return Record.UseCustomPattern; }
set { Record.UseCustomPattern = value; }
get { return bool.Parse(this.As<InfosetPart>().Get<AutoroutePart>("UseCustomPattern")); }
set {
this.As<InfosetPart>().Set<AutoroutePart>("UseCustomPattern", value.ToString());
Record.UseCustomPattern = value;
}
}
public string DisplayAlias {
get { return Record.DisplayAlias; }
set { Record.DisplayAlias = value; }
get { return this.As<InfosetPart>().Get<AutoroutePart>("DisplayAlias"); }
set {
this.As<InfosetPart>().Set<AutoroutePart>("DisplayAlias", value);
Record.DisplayAlias = value;
}
}
public string Path {

View File

@@ -76,7 +76,6 @@ namespace Orchard.ContentManagement {
return true;
}
}
public class ContentPart<TRecord> : ContentPart {

View File

@@ -25,18 +25,18 @@ namespace Orchard.ContentManagement.FieldStorage.InfosetStorage {
}
public string Get(string partName, string fieldName, string valueName) {
var partElement = Infoset.Element.Element(partName);
var partElement = Infoset.Element.Element(XmlConvert.EncodeName(partName));
if (partElement == null) {
return null;
}
var fieldElement = partElement.Element(fieldName);
var fieldElement = partElement.Element(XmlConvert.EncodeName(fieldName));
if (fieldElement == null) {
return null;
}
if (string.IsNullOrEmpty(valueName)) {
return fieldElement.Value;
}
var valueAttribute = fieldElement.Attribute(XmlConvert.EncodeLocalName(valueName));
var valueAttribute = fieldElement.Attribute(XmlConvert.EncodeName(valueName));
if (valueAttribute == null) {
return null;
}
@@ -56,21 +56,21 @@ namespace Orchard.ContentManagement.FieldStorage.InfosetStorage {
}
public void Set(string partName, string fieldName, string valueName, string value) {
var partElement = Infoset.Element.Element(partName);
var partElement = Infoset.Element.Element(XmlConvert.EncodeName(partName));
if (partElement == null) {
partElement = new XElement(partName);
partElement = new XElement(XmlConvert.EncodeName(partName));
Infoset.Element.Add(partElement);
}
var fieldElement = partElement.Element(fieldName);
var fieldElement = partElement.Element(XmlConvert.EncodeName(fieldName));
if (fieldElement == null) {
fieldElement = new XElement(fieldName);
fieldElement = new XElement(XmlConvert.EncodeName(fieldName));
partElement.Add(fieldElement);
}
if (string.IsNullOrEmpty(valueName)) {
fieldElement.Value = value ?? "";
}
else {
fieldElement.SetAttributeValue(XmlConvert.EncodeLocalName(valueName), value ?? "");
fieldElement.SetAttributeValue(XmlConvert.EncodeName(valueName), value);
}
}
}