protected virtual void WriteDefaultAttributes(ElementWriter itemElement, ContentItem item) { if (itemElement == null) { throw new ArgumentNullException("itemElement"); } if (item == null) { throw new ArgumentNullException("item"); } itemElement.WriteAttribute("id", item.ID); itemElement.WriteAttribute("name", item.ID.ToString() == item.Name ? "" : item.Name); if (item.Parent != null) { if (item.Parent.ID != 0) { itemElement.WriteAttribute("parent", item.Parent.ID.ToString()); } else { itemElement.WriteAttribute("parent", item.Parent.VersionOf.ID.ToString()); if (item.Parent.GetVersionKey() != null) { itemElement.WriteAttribute("parentVersionKey", item.Parent.GetVersionKey()); } } } itemElement.WriteAttribute("title", item.Title); itemElement.WriteAttribute("zoneName", item.ZoneName); itemElement.WriteAttribute("templateKey", item.TemplateKey); if (item.TranslationKey.HasValue) { itemElement.WriteAttribute("translationKey", item.TranslationKey.Value); } itemElement.WriteAttribute("state", (int)item.State); itemElement.WriteAttribute("created", item.Created); itemElement.WriteAttribute("updated", item.Updated); itemElement.WriteAttribute("published", item.Published); itemElement.WriteAttribute("expires", item.Expires); itemElement.WriteAttribute("sortOrder", item.SortOrder); itemElement.WriteAttribute("url", parser == null ? item.Url : (string)parser.BuildUrl(item)); itemElement.WriteAttribute("visible", item.Visible); itemElement.WriteAttribute("savedBy", item.SavedBy); itemElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(item.GetContentType())); itemElement.WriteAttribute("discriminator", definitions.GetDefinition(item).Discriminator); itemElement.WriteAttribute("versionIndex", item.VersionIndex); itemElement.WriteAttribute("ancestralTrail", item.AncestralTrail); itemElement.WriteAttribute("alteredPermissions", (int)item.AlteredPermissions); itemElement.WriteAttribute("childState", (int)item.ChildState); if (item.VersionOf.HasValue) { Debug.Assert(item.VersionOf.ID != null, "item.VersionOf.ID != null"); itemElement.WriteAttribute("versionOf", item.VersionOf.ID.Value); } }
public virtual void WriteDetail(ContentItem item, ContentDetail detail, XmlTextWriter writer) { using (ElementWriter detailElement = new ElementWriter("detail", writer)) { detailElement.WriteAttribute("name", detail.Name); detailElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(detail.ValueType)); WriteInnerContents(item, detail, detail.ValueTypeKey, detailElement); } }
private void Write(ElementWriter propertyElement, Type type, string contents, bool cdata) { propertyElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(type)); if (cdata) { propertyElement.WriteCData(contents); } else { propertyElement.Write(contents); } }
public virtual void WriteDetail(ContentItem item, ContentDetail detail, XmlTextWriter writer) { using (ElementWriter detailElement = new ElementWriter("detail", writer)) { detailElement.WriteAttribute("name", detail.Name); detailElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(detail.ValueType)); if (detail.ValueType == typeof(object)) { string base64representation = SerializationUtility.ToBase64String(detail.Value); detailElement.Write(base64representation); } else if (detail.ValueType == typeof(ContentItem)) { detailElement.Write(detail.LinkValue.HasValue ? detail.LinkValue.Value.ToString() : "0"); } else if (detail.ValueType == typeof(string)) { string value = detail.StringValue; if (!string.IsNullOrEmpty(value)) { if (value.StartsWith(applicationPath, StringComparison.InvariantCultureIgnoreCase)) { var pi = item.GetContentType().GetProperty(detail.Name); if (pi != null) { var transformers = pi.GetCustomAttributes(typeof(IRelativityTransformer), false); foreach (IRelativityTransformer transformer in transformers) { if (transformer.RelativeWhen == RelativityMode.Always || transformer.RelativeWhen == RelativityMode.ImportingOrExporting) { value = transformer.Rebase(value, applicationPath, "~/"); } } } } detailElement.WriteCData(value); } } else if (detail.ValueType == typeof(DateTime)) { detailElement.Write(ElementWriter.ToUniversalString(detail.DateTimeValue)); } else { detailElement.Write(detail.Value.ToString()); } } }
protected virtual void WriteDefaultAttributes(ElementWriter itemElement, ContentItem item) { itemElement.WriteAttribute("id", item.ID); itemElement.WriteAttribute("name", item.ID.ToString() == item.Name ? "" : item.Name); itemElement.WriteAttribute("parent", item.Parent != null ? item.Parent.ID.ToString() : string.Empty); itemElement.WriteAttribute("title", item.Title); itemElement.WriteAttribute("zoneName", item.ZoneName); itemElement.WriteAttribute("created", item.Created); itemElement.WriteAttribute("updated", item.Updated); itemElement.WriteAttribute("published", item.Published); itemElement.WriteAttribute("expires", item.Expires); itemElement.WriteAttribute("sortOrder", item.SortOrder); itemElement.WriteAttribute("url", parser.BuildUrl(item)); itemElement.WriteAttribute("visible", item.Visible); itemElement.WriteAttribute("savedBy", item.SavedBy); itemElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(item.GetContentType())); itemElement.WriteAttribute("discriminator", definitions.GetDefinition(item.GetContentType()).Discriminator); }
protected virtual void WriteDefaultAttributes(ElementWriter itemElement, ContentItem item) { if (itemElement == null) { throw new ArgumentNullException("itemElement"); } if (item == null) { throw new ArgumentNullException("item"); } itemElement.WriteAttribute("id", item.ID); itemElement.WriteAttribute("name", item.ID.ToString() == item.Name ? "" : item.Name, true); if (item.Parent != null) { if (item.Parent.ID != 0) { itemElement.WriteAttribute("parent", item.Parent.ID.ToString()); } else { itemElement.WriteAttribute("parent", item.Parent.VersionOf.ID.ToString()); if (item.Parent.GetVersionKey() != null) { itemElement.WriteAttribute("parentVersionKey", item.Parent.GetVersionKey()); } } } itemElement.WriteAttribute("title", item.Title, true); itemElement.WriteAttribute("zoneName", item.ZoneName, true); itemElement.WriteAttribute("templateKey", item.TemplateKey, true); if (item.TranslationKey.HasValue) { itemElement.WriteAttribute("translationKey", item.TranslationKey.Value); } itemElement.WriteAttribute("state", Enum.GetName(typeof(ContentState), item.State)); // use textual state to avoid future import trouble itemElement.WriteAttribute("created", item.Created); itemElement.WriteAttribute("updated", item.Updated); itemElement.WriteAttribute("published", item.Published); itemElement.WriteAttribute("expires", item.Expires); // TODO expired items could be excluded itemElement.WriteAttribute("sortOrder", item.SortOrder); if (item.IsPage && item.IsPublished()) { itemElement.WriteAttribute("url", (parser != null) ? (string)parser.BuildUrl(item) : item.Url); // generated } itemElement.WriteAttribute("visible", item.Visible); itemElement.WriteAttribute("savedBy", item.SavedBy); itemElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(item.GetContentType())); itemElement.WriteAttribute("discriminator", definitions.GetDefinition(item).Discriminator); itemElement.WriteAttribute("ancestralTrail", item.AncestralTrail); // generated if (item.AlteredPermissions != 0) { itemElement.WriteAttribute("alteredPermissions", (int)item.AlteredPermissions); } itemElement.WriteAttribute("childState", (int)item.ChildState); if (item.VersionOf.HasValue && item.VersionOf.ID != null) { itemElement.WriteAttribute("versionIndex", item.VersionIndex); // write only if versioned itemElement.WriteAttribute("versionOf", item.VersionOf.ID.Value); } }
private void WriteItem(ElementWriter propertyElement, ContentItem item) { propertyElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(typeof(ContentItem))); propertyElement.WriteAttribute("versionKey", item.GetVersionKey()); propertyElement.Write(item.ID.ToString()); }