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()); }