public static string ToLogString(this IFileableCmisObject obj) {
if (obj == null) {
return "null";
}
var sb = new StringBuilder(obj.ToString());
sb.AppendLine(string.Format("ID: {0}", obj.Id));
sb.AppendLine(string.Format("Name: {0}", obj.Name));
sb.AppendLine(string.Format("ChangeToken: {0}", obj.ChangeToken));
if (obj.LastModificationDate != null) {
DateTime date = obj.LastModificationDate.Value;
sb.AppendLine(string.Format("LastModified: {0} Ticks", date.Ticks));
} else {
sb.AppendLine(string.Format("LastModified: {0}", obj.LastModificationDate));
}
sb.AppendLine(string.Format("ObjectType: {0}", obj.ObjectType));
sb.AppendLine(string.Format("BaseType: {0}", obj.BaseType.DisplayName));
if (obj is IFolder) {
var folder = obj as IFolder;
sb.AppendLine(string.Format("Path: {0}", folder.Path));
sb.AppendLine(string.Format("ParentId: {0}", folder.ParentId));
} else if (obj is IDocument) {
var doc = obj as IDocument;
sb.AppendLine(string.Format("StreamLength: {0}", doc.ContentStreamLength));
sb.AppendLine(string.Format("MimeType: {0}", doc.ContentStreamMimeType));
sb.AppendLine(string.Format("StreamName: {0}", doc.ContentStreamFileName));
}
foreach (var prop in obj.Properties) {
sb.AppendLine(string.Format("Property {0}: {1}", prop.DisplayName, prop.ValuesAsString));
}
return sb.ToString();
}