public override string GetContent()
{
if (RequireSquare150x150Content && Square150x150Content == null)
{
throw new NotificationContentValidationException(
"Square150x150 tile content should be included with each wide tile. " +
"If this behavior is undesired, use the RequireSquare150x150Content property.");
}
StringBuilder visualNode = new StringBuilder(String.Empty);
visualNode.AppendFormat("<visual version='{0}'", TileUtil.NOTIFICATION_CONTENT_VERSION);
if (!String.IsNullOrWhiteSpace(Lang))
{
visualNode.AppendFormat(" lang='{0}'", Util.HttpEncode(Lang));
}
if (Branding != TileBranding.Logo)
{
visualNode.AppendFormat(" branding='{0}'", Branding.ToString().ToLowerInvariant());
}
if (!String.IsNullOrWhiteSpace(BaseUri))
{
visualNode.AppendFormat(" baseUri='{0}'", Util.HttpEncode(BaseUri));
}
if (AddImageQuery)
{
visualNode.AppendFormat(" addImageQuery='true'");
}
visualNode.Append(">");
StringBuilder builder = new StringBuilder(String.Empty);
builder.AppendFormat("<tile>{0}", visualNode);
if (Square150x150Content != null)
{
ISquare150x150TileInternal squareBase = Square150x150Content as ISquare150x150TileInternal;
if (squareBase == null)
{
throw new NotificationContentValidationException("The provided square tile content class is unsupported.");
}
builder.Append(squareBase.SerializeBinding(Lang, BaseUri, Branding, AddImageQuery));
}
builder.AppendFormat("<binding template='{0}'", TemplateName);
if (!String.IsNullOrWhiteSpace(FallbackName))
{
builder.AppendFormat(" fallback='{0}'", FallbackName);
}
builder.AppendFormat(">{0}</binding></visual></tile>", SerializeProperties(Lang, BaseUri, AddImageQuery));
return builder.ToString();
}