protected virtual void WriteRole(XmlTextWriter writer, AuthorizedRole ar) { using (ElementWriter role = new ElementWriter("role", writer)) { role.Write(ar.Role); } }
private void WriteInnerContents(ContentItem item, ContentDetail detail, string valueTypeKey, ElementWriter element) { switch (valueTypeKey) { case ContentDetail.TypeKeys.BoolType: element.Write(detail.BoolValue.HasValue ? detail.BoolValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.DateTimeType: element.Write(SerializationUtility.ToUniversalString(detail.DateTimeValue)); return; case ContentDetail.TypeKeys.DoubleType: element.Write(detail.DoubleValue.HasValue ? detail.DoubleValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.IntType: element.Write(detail.IntValue.HasValue ? detail.IntValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.LinkType: element.Write(detail.LinkValue.HasValue ? detail.LinkValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.MultiType: WriteMultiValue(item, detail, ContentDetail.TypeKeys.BoolType, detail.BoolValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DateTimeType, detail.DateTimeValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DoubleType, detail.DoubleValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.IntType, detail.IntValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.LinkType, detail.LinkedItem, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.ObjectType, detail.ObjectValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.StringType, SerializationUtility.RemoveInvalidCharacters(detail.StringValue), element.Writer); return; case ContentDetail.TypeKeys.ObjectType: string base64representation = SerializationUtility.ToBase64String(detail.ObjectValue); element.Write(base64representation); return; case ContentDetail.TypeKeys.EnumType: /* TODO: Do we need to write out the 'meta' value here? */ case ContentDetail.TypeKeys.StringType: string value = detail.StringValue; if (!string.IsNullOrEmpty(value)) { value = ExecuteRelativityTransformers(item, detail.Name, value); element.WriteAttribute("encoded", true); value = HttpUtility.HtmlEncode(SerializationUtility.RemoveInvalidCharacters(value)); element.WriteCData(value); } return; default: throw new InvalidOperationException("Invalid detail type: " + valueTypeKey); } }
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()); } } }
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()); } } }
private void Write(ElementWriter detailElement, Type type, string contents, bool cdata) { detailElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(type)); if(cdata) detailElement.WriteCData(contents); else detailElement.Write(contents); }
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); } }
private void WriteItems(ElementWriter propertyElement, IEnumerable enumerable) { propertyElement.WriteAttribute("typeName", "System.Collections.Generic.IEnumerable`1[[N2.ContentItem, N2]]"); foreach (ContentItem item in enumerable) { using (ElementWriter itemElement = new ElementWriter("item", propertyElement.Writer)) { itemElement.WriteAttribute("versionKey", item.GetVersionKey()); itemElement.Write(item.ID.ToString()); } } }
public void Write(IFileSystem fs, ContentItem item, XmlTextWriter writer) { string url = item[Name] as string; if(!string.IsNullOrEmpty(url)) { string path = url; if(fs.FileExists(path)) { using(ElementWriter ew = new ElementWriter("file", writer)) { ew.WriteAttribute("url", url); byte[] fileContents = ReadFully(fs.OpenFile(path)); string base64representation = Convert.ToBase64String(fileContents); ew.Write(base64representation); } } } }
public void Write(ContentItem item, XmlTextWriter writer) { string url = item[Name] as string; if(!string.IsNullOrEmpty(url)) { string path = MapPath(url); if(File.Exists(path)) { using(ElementWriter ew = new ElementWriter("file", writer)) { ew.WriteAttribute("url", url); byte[] fileContents = File.ReadAllBytes(path); string base64representation = Convert.ToBase64String(fileContents); ew.Write(base64representation); } } } }
public void Write(ContentItem item, XmlTextWriter writer) { string url = item[Name] as string; if (!string.IsNullOrEmpty(url)) { string path = MapPath(url); if (File.Exists(path)) { using (ElementWriter ew = new ElementWriter("file", writer)) { ew.WriteAttribute("url", url); byte[] fileContents = File.ReadAllBytes(path); string base64representation = Convert.ToBase64String(fileContents); ew.Write(base64representation); } } } }
public void Write(IFileSystem fs, ContentItem item, XmlTextWriter writer) { string url = item[Name] as string; if (!string.IsNullOrEmpty(url)) { string path = url; if (fs.FileExists(path)) { using (ElementWriter ew = new ElementWriter("file", writer)) { ew.WriteAttribute("url", url); using (var s = fs.OpenFile(path)) { byte[] fileContents = ReadFully(s); string base64representation = Convert.ToBase64String(fileContents); ew.Write(base64representation); } } } } }
private void WriteInnerContents(ContentItem item, ContentDetail detail, string valueTypeKey, ElementWriter element) { switch (valueTypeKey) { case ContentDetail.TypeKeys.BoolType: element.Write(detail.BoolValue.HasValue ? detail.BoolValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.DateTimeType: element.Write(SerializationUtility.ToUniversalString(detail.DateTimeValue)); return; case ContentDetail.TypeKeys.DoubleType: element.Write(detail.DoubleValue.HasValue ? detail.DoubleValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.IntType: element.Write(detail.IntValue.HasValue ? detail.IntValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.LinkType: element.Write(detail.LinkValue.HasValue ? detail.LinkValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.MultiType: WriteMultiValue(item, detail, ContentDetail.TypeKeys.BoolType, detail.BoolValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DateTimeType, detail.DateTimeValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DoubleType, detail.DoubleValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.IntType, detail.IntValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.LinkType, detail.LinkedItem, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.ObjectType, detail.ObjectValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.StringType, detail.StringValue, element.Writer); return; case ContentDetail.TypeKeys.ObjectType: string base64representation = SerializationUtility.ToBase64String(detail.ObjectValue); element.Write(base64representation); return; case ContentDetail.TypeKeys.StringType: string value = detail.StringValue; if (!string.IsNullOrEmpty(value)) { 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, "~/"); } } } element.WriteCData(value); } return; default: throw new InvalidOperationException("Invalid detail type: " + valueTypeKey); } }
private void WriteItem(ElementWriter propertyElement, ContentItem item) { propertyElement.WriteAttribute("typeName", SerializationUtility.GetTypeAndAssemblyName(typeof(ContentItem))); propertyElement.WriteAttribute("versionKey", item.GetVersionKey()); propertyElement.Write(item.ID.ToString()); }
private void WriteInnerContents(ContentItem item, ContentDetail detail, string valueTypeKey, ElementWriter element) { switch (valueTypeKey) { case ContentDetail.TypeKeys.BoolType: element.Write(detail.BoolValue.HasValue ? detail.BoolValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.DateTimeType: element.Write(SerializationUtility.ToUniversalString(detail.DateTimeValue)); return; case ContentDetail.TypeKeys.DoubleType: element.Write(detail.DoubleValue.HasValue ? detail.DoubleValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.IntType: element.Write(detail.IntValue.HasValue ? detail.IntValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.LinkType: element.Write(detail.LinkValue.HasValue ? detail.LinkValue.Value.ToString() : "0"); return; case ContentDetail.TypeKeys.MultiType: WriteMultiValue(item, detail, ContentDetail.TypeKeys.BoolType, detail.BoolValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DateTimeType, detail.DateTimeValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.DoubleType, detail.DoubleValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.IntType, detail.IntValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.LinkType, detail.LinkedItem, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.ObjectType, detail.ObjectValue, element.Writer); WriteMultiValue(item, detail, ContentDetail.TypeKeys.StringType, detail.StringValue, element.Writer); return; case ContentDetail.TypeKeys.ObjectType: string base64representation = SerializationUtility.ToBase64String(detail.ObjectValue); element.Write(base64representation); return; case ContentDetail.TypeKeys.StringType: string value = detail.StringValue; if (!string.IsNullOrEmpty(value)) { 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, "~/"); } } element.WriteCData(value); } return; default: throw new InvalidOperationException("Invalid detail type: " + valueTypeKey); } }