diff --git a/source/test/dotnet/CmisWS/Properties/AssemblyInfo.cs b/source/test/dotnet/CmisWS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..201bfc1e13 --- /dev/null +++ b/source/test/dotnet/CmisWS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("WcfCmisWSTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("WcfCmisWSTests")] +[assembly: AssemblyCopyright("Copyright © 2008")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("2afbaa7c-3738-498d-9553-5baf710e38d5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/test/dotnet/CmisWS/Properties/DataSources/System.Xml.XmlElement.datasource b/source/test/dotnet/CmisWS/Properties/DataSources/System.Xml.XmlElement.datasource new file mode 100644 index 0000000000..43fddb9501 --- /dev/null +++ b/source/test/dotnet/CmisWS/Properties/DataSources/System.Xml.XmlElement.datasource @@ -0,0 +1,10 @@ + + + + System.Xml.XmlElement, System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.dll new file mode 100644 index 0000000000..652c94ef37 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.extensions.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.extensions.dll new file mode 100644 index 0000000000..300a8f4e05 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.extensions.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.interfaces.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.interfaces.dll new file mode 100644 index 0000000000..37cf609156 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.interfaces.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.tests.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.tests.dll new file mode 100644 index 0000000000..2d532b1e70 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.core.tests.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.extensions.tests.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.extensions.tests.dll new file mode 100644 index 0000000000..77c7229633 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.extensions.tests.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.fixtures.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.fixtures.dll new file mode 100644 index 0000000000..7ec6222feb Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.fixtures.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.dll new file mode 100644 index 0000000000..5bad2e7085 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.extensions.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.extensions.dll new file mode 100644 index 0000000000..871d004db3 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.extensions.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.xml b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.xml new file mode 100644 index 0000000000..0c47fa8362 --- /dev/null +++ b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.framework.xml @@ -0,0 +1,5614 @@ + + + + nunit.framework + + + + + EmptyStringConstraint tests whether a string is empty. + + + + + EmptyConstraint tests a whether a string or collection is empty, + postponing the decision about which test is applied until the + type of the actual argument is known. + + + + + The Constraint class is the base of all built-in or + user-defined constraints in NUnit. It provides the operator + overloads used to combine constraints. + + + + + Static UnsetObject used to detect derived constraints + failing to set the actual value. + + + + + If true, all string comparisons will ignore case + + + + + If true, strings in error messages will be clipped + + + + + If true, arrays will be treated as collections, allowing + those of different dimensions to be compared + + + + + If non-zero, equality comparisons within the specified + tolerance will succeed. + + + + + IComparer object used in comparisons for some constraints. + + + + + The actual value being tested against a constraint + + + + + Flag the constraint to use a tolerance when determining equality. + Currently only used for doubles and floats. + + Tolerance to be used + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Write the failure message to the MessageWriter provided + as an argument. The default implementation simply passes + the constraint and the actual value to the writer, which + then displays the constraint description and the value. + + Constraints that need to provide additional details, + such as where the error occured can override this. + + The MessageWriter on which to display the message + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + + + + + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + + + + + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to suppress string clipping + and return self. + + + + + Flag the constraint to compare arrays as collections + and return self. + + + + + Class used to detect any derived constraints + that fail to set the actual value in their + Matches override. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + SubstringConstraint can test whether a string contains + the expected substring. + + + + + Initializes a new instance of the class. + + The expected. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + StartsWithConstraint can test whether a string starts + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + EndsWithConstraint can test whether a string ends + with an expected substring. + + + + + Initializes a new instance of the class. + + The expected string + + + + Test whether the constraint is matched by the actual value. + This is a template method, which calls the IsMatch method + of the derived class. + + + + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + RegexConstraint can test whether a string matches + the pattern provided. + + + + + Initializes a new instance of the class. + + The pattern. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + ConstraintBuilder is used to resolve the Not and All properties, + which serve as prefix operators for constraints. With the addition + of an operand stack, And and Or could be supported, but we have + left them out in favor of a simpler, more type-safe implementation. + Use the & and | operator overloads to combine constraints. + + + + + Implicitly convert ConstraintBuilder to an actual Constraint + at the point where the syntax demands it. + + + + + + + Resolves the chain of constraints using an + EqualConstraint as base. + + + + + Resolves the chain of constraints using a + SameAsConstraint as base. + + + + + Resolves the chain of constraints using a + LessThanConstraint as base. + + + + + Resolves the chain of constraints using a + GreaterThanConstraint as base. + + + + + Resolves the chain of constraints using a + LessThanOrEqualConstraint as base. + + + + + Resolves the chain of constraints using a + LessThanOrEqualConstraint as base. + + + + + Resolves the chain of constraints using a + GreaterThanOrEqualConstraint as base. + + + + + Resolves the chain of constraints using a + GreaterThanOrEqualConstraint as base. + + + + + Resolves the chain of constraints using an + ExactTypeConstraint as base. + + + + + Resolves the chain of constraints using an + InstanceOfTypeConstraint as base. + + + + + Resolves the chain of constraints using an + AssignableFromConstraint as base. + + + + + Resolves the chain of constraints using a + ContainsConstraint as base. This constraint + will, in turn, make use of the appropriate + second-level constraint, depending on the + type of the actual argument. + + + + + Resolves the chain of constraints using a + CollectionContainsConstraint as base. + + The expected object + + + + Resolves the chain of constraints using a + StartsWithConstraint as base. + + + + + Resolves the chain of constraints using a + StringEndingConstraint as base. + + + + + Resolves the chain of constraints using a + StringMatchingConstraint as base. + + + + + Resolves the chain of constraints using a + CollectionEquivalentConstraint as base. + + + + + Resolves the chain of constraints using a + CollectionContainingConstraint as base. + + + + + Resolves the chain of constraints using a + CollectionSubsetConstraint as base. + + + + + Resolves the chain of constraints using a + PropertyConstraint as base + + + + + Resolves the chain of constraints using a + PropertyCOnstraint on Length as base + + + + + + + Resolves the chain of constraints using a + PropertyCOnstraint on Length as base + + + + + + + Modifies the ConstraintBuilder by pushing a Prop operator on the + ops stack and the name of the property on the opnds stack. + + + + + + + Resolve a constraint that has been recognized by applying + any pending operators and returning the resulting Constraint. + + A constraint that incorporates all pending operators + + + + Resolves the chain of constraints using + EqualConstraint(null) as base. + + + + + Resolves the chain of constraints using + EqualConstraint(true) as base. + + + + + Resolves the chain of constraints using + EqualConstraint(false) as base. + + + + + Resolves the chain of constraints using + Is.NaN as base. + + + + + Resolves the chain of constraints using + Is.Empty as base. + + + + + Resolves the chain of constraints using + Is.Unique as base. + + + + + Modifies the ConstraintBuilder by pushing a Not operator on the stack. + + + + + Modifies the ConstraintBuilder by pushing a Not operator on the stack. + + + + + Modifies the ConstraintBuilder by pushing an All operator on the stack. + + + + + Modifies the ConstraintBuilder by pushing a Some operator on the stack. + + + + + Modifies the constraint builder by pushing All and Not operators on the stack + + + + + CollectionConstraint is the abstract base class for + constraints that operate on collections. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Protected method to be implemented by derived classes + + + + + + + CollectionTally counts (tallies) the number of + occurences of each object in one or more enuerations. + + + + + Construct a CollectionTally object from a collection + + + + + + Remove the counts for a collection from the tally, + so long as their are sufficient items to remove. + The tallies are not permitted to become negative. + + The collection to remove + True if there were enough items to remove, otherwise false + + + + Test whether all the counts are equal to a given value + + The value to be looked for + True if all counts are equal to the value, otherwise false + + + + Get the count of the number of times an object is present in the tally + + + + + EmptyCollectionConstraint tests whether a colletion is empty. + + + + + Check that the collection is empty + + + + + + + Write the constraint description to a MessageWriter + + + + + + UniqueItemsConstraint tests whether all the items in a + collection are unique. + + + + + Check that all items are unique. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + CollectionContainsConstraint is used to test whether a collection + contains an expected object as a member. + + + + + Construct a CollectionContainsConstraint + + + + + + Test whether the expected item is contained in the collection + + + + + + + Write a descripton of the constraint to a MessageWriter + + + + + + CollectionEquivalentCOnstraint is used to determine whether two + collections are equivalent. + + + + + Construct a CollectionEquivalentConstraint + + + + + + Test whether two collections are equivalent + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + CollectionSubsetConstraint is used to determine whether + one collection is a subset of another + + + + + Construct a CollectionSubsetConstraint + + The collection that the actual value is expected to be a subset of + + + + Test whether the actual collection is a subset of + the expected collection provided. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + EqualConstraint is able to compare an actual value with the + expected value provided in its constructor. + + + + + Initializes a new instance of the class. + + The expected value. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write a failure message. Overridden to provide custom + failure messages for EqualConstraint. + + The MessageWriter to write to + + + + Write description of this constraint + + The MessageWriter to write to + + + + Helper method to compare two arrays + + + + + Display the failure information for two collections that did not match. + + The MessageWriter on which to display + The expected collection. + The actual collection + The depth of this failure in a set of nested collections + + + + Displays a single line showing the types and sizes of the expected + and actual collections or arrays. If both are identical, the value is + only shown once. + + The MessageWriter on which to display + The expected collection or array + The actual collection or array + The indentation level for the message line + + + + Displays a single line showing the point in the expected and actual + arrays at which the comparison failed. If the arrays have different + structures or dimensions, both values are shown. + + The MessageWriter on which to display + The expected array + The actual array + Index of the failure point in the underlying collections + The indentation level for the message line + + + + Abstract base class used for prefixes + + + + + The base constraint + + + + + Construct given a base constraint + + + + + + Set all modifiers applied to the prefix into + the base constraint before matching + + + + + NotConstraint negates the effect of some other constraint + + + + + Initializes a new instance of the class. + + The base constraint to be negated. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for if the base constraint fails, false if it succeeds + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Write the actual value for a failing constraint test to a MessageWriter. + + The writer on which the actual value is displayed + + + + AllItemsConstraint applies another constraint to each + item in a collection, succeeding if they all succeed. + + + + + Construct an AllItemsConstraint on top of an existing constraint + + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + SomeItemsConstraint applies another constraint to each + item in a collection, succeeding if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + SomeItemsConstraint applies another constraint to each + item in a collection, succeeding if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + SameAsConstraint tests whether an object is identical to + the object passed to its constructor + + + + + Initializes a new instance of the class. + + The expected object. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + TypeConstraint is the abstract base for constraints + that take a Type as their expected value. + + + + + The expected Type used by the constraint + + + + + Construct a TypeConstraint for a given Type + + + + + + Write the actual value for a failing constraint test to a + MessageWriter. TypeCOnstraints override this method to write + the name of the type. + + The writer on which the actual value is displayed + + + + ExactTypeConstraint is used to test that an object + is of the exact type provided in the constructor + + + + + Construct an ExactTypeConstraint for a given Type + + + + + + Test that an object is of the exact type specified + + + + + + + Write the description of this constraint to a MessageWriter + + + + + + InstanceOfTypeConstraint is used to test that an object + is of the same type provided or derived from it. + + + + + Construct an InstanceOfTypeConstraint for the type provided + + + + + + Test whether an object is of the specified type or a derived type + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + AssignableFromConstraint is used to test that an object + can be assigned from a given Type. + + + + + Construct an AssignableFromConstraint for the type provided + + + + + + Test whether an object can be assigned from the specified type + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + Abstract base class for constraints that compare values to + determine if one is greater than, equal to or less than + the other. + + + + + The value against which a comparison is to be made + + + + + If true, less than returns success + + + + + if true, equal returns success + + + + + if true, greater than returns success + + + + + The predicate used as a part of the description + + + + + Initializes a new instance of the class. + + The value against which to make a comparison. + if set to true less succeeds. + if set to true equal succeeds. + if set to true greater succeeds. + String used in describing the constraint. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Tests whether a value is greater than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is greater than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is less than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is less than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + The Numerics class contains common operations on numeric values. + + + + + Checks the type of the object, returning true if + the object is a numeric type. + + The object to check + true if the object is a numeric type + + + + Checks the type of the object, returning true if + the object is a floating point numeric type. + + The object to check + true if the object is a floating point numeric type + + + + Checks the type of the object, returning true if + the object is a fixed point numeric type. + + The object to check + true if the object is a fixed point numeric type + + + + Test two numeric values for equality, performing the usual numeric + conversions and using a provided or default tolerance. If the value + referred to by tolerance is null, this method may set it to a default. + + The expected value + The actual value + A reference to the numeric tolerance in effect + True if the values are equal + + + + Compare two numeric values, performing the usual numeric conversions. + + The expected value + The actual value + + + + + ContainsConstraint tests a whether a string contains a substring + or a collection contains an object. It postpones the decision of + which test to use until the type of the actual argument is known. + This allows testing whether a string is contained in a collection + or as a substring of another string using the same syntax. + + + + + Initializes a new instance of the class. + + The expected. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Summary description for PropertyConstraint. + + + + + Initializes a new instance of the class. + + The name. + The constraint to apply to the property. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + BinaryOperation is the abstract base of all constraints + that combine two other constraints in some fashion. + + + + + The first constraint being combined + + + + + The second constraint being combined + + + + + Construct a BinaryOperation from two other constraints + + The first constraint + The second constraint + + + + AndConstraint succeeds only if both members succeed. + + + + + Create an AndConstraint from two other constraints + + The first constraint + The second constraint + + + + Apply both member constraints to an actual value, succeeding + succeeding only if both of them succeed. + + The actual value + True if the constraints both succeeded + + + + Write a description for this contraint to a MessageWriter + + The MessageWriter to receive the description + + + + OrConstraint succeeds if either member succeeds + + + + + Create an OrConstraint from two other constraints + + The first constraint + The second constraint + + + + Apply the member constraints to an actual value, succeeding + succeeding as soon as one of them succeeds. + + The actual value + True if either constraint succeeded + + + + Write a description for this contraint to a MessageWriter + + The MessageWriter to receive the description + + + + The Is class is a helper class with properties and methods + that supply a number of constraints used in Asserts. + + + + + Is.Null returns a static constraint that tests for null + + + + + Is.True returns a static constraint that tests whether a value is true + + + + + Is.False returns a static constraint that tests whether a value is false + + + + + Is.NaN returns a static constraint that tests whether a value is an NaN + + + + + Is.Empty returns a static constraint that tests whether a string or collection is empty + + + + + Is.Unique returns a static constraint that tests whether a collection contains all unque items. + + + + + Is.EqualTo returns a constraint that tests whether the + actual value equals the supplied argument + + + + + + + Is.SameAs returns a constraint that tests whether the + actual value is the same object as the supplied argument. + + + + + + + Is.GreaterThan returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + Is.GreaterThanOrEqualTo returns a constraint that tests whether the + actual value is greater than or equal to the suppled argument + + + + + Is.AtLeast is a synonym for Is.GreaterThanOrEqualTo + + + + + Is.LessThan returns a constraint that tests whether the + actual value is less than the suppled argument + + + + + Is.LessThanOrEqualTo returns a constraint that tests whether the + actual value is less than or equal to the suppled argument + + + + + Is.AtMost is a synonym for Is.LessThanOrEqualTo + + + + + Is.TypeOf returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Is.InstanceOfType returns a constraint that tests whether + the actual value is of the type supplied as an argument + or a derived type. + + + + + Is.AssignableFrom returns a constraint that tests whether + the actual value is assignable from the type supplied as + an argument. + + + + + + + Is.EquivalentTo returns a constraint that tests whether + the actual value is a collection containing the same + elements as the collection supplied as an arument + + + + + Is.SubsetOf returns a constraint that tests whether + the actual value is a subset of the collection + supplied as an arument + + + + + Is.Not returns a ConstraintBuilder that negates + the constraint that follows it. + + + + + Is.All returns a ConstraintBuilder, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. This property is + a synonym for Has.AllItems. + + + + + The Iz class is a synonym for Is intended for use in VB, + which regards Is as a keyword. + + + + + The Text class is a helper class with properties and methods + that supply a number of constraints used with strings. + + + + + Contains returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + DoesNotContain returns a constraint that fails if the actual + value contains the substring supplied as an argument. + + + + + StartsWith returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + DoesNotStartWith returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + + + + + EndsWith returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + DoesNotEndWith returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + + + + + Matches returns a constraint that succeeds if the actual + value matches the pattern supplied as an argument. + + + + + + + DoesNotMatch returns a constraint that failss if the actual + value matches the pattern supplied as an argument. + + + + + + + Text.All returns a ConstraintBuilder, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + The List class is a helper class with properties and methods + that supply a number of constraints used with lists and collections. + + + + + List.Map returns a ListMapper, which can be used to map + the original collection to another collection. + + + + + + + ListMapper is used to transform a collection used as an actual argument + producing another collection to be used in the assertion. + + + + + Construct a ListMapper based on a collection + + The collection to be transformed + + + + Produces a collection containing all the values of a property + + The collection of property values + + + + + Summary description for HasNoPrefixB. + + + + + Returns a new ConstraintBuilder, which will apply the + following constraint to a named property of the object + being tested. + + The name of the property + + + + Returns a new PropertyConstraint checking for the + existence of a particular property value. + + The name of the property to look for + The expected value of the property + + + + Returns a new PropertyConstraint for the Length property + + + + + + + Returns a new PropertyConstraint or the Count property + + + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + The expected object + + + + Has.No returns a ConstraintBuilder that negates + the constraint that follows it. + + + + + Has.AllItems returns a ConstraintBuilder, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Has.Some returns a ConstraintBuilder, which will apply + the following constraint to all members of a collection, + succeeding if any of them succeed. It is a synonym + for Has.Item. + + + + + Has.None returns a ConstraintBuilder, which will apply + the following constraint to all members of a collection, + succeeding only if none of them succeed. + + + + + Nested class that allows us to restrict the number + of key words that may appear after Has.No. + + + + + Return a ConstraintBuilder conditioned to apply + the following constraint to a property. + + The property name + A ConstraintBuilder + + + + Return a Constraint that succeeds if the expected object is + not contained in a collection. + + The expected object + A Constraint + + + + The Assert class contains a collection of static methods that + implement the most common assertions used in NUnit. + + + + + We don't actually want any instances of this object, but some people + like to inherit from it to add other static methods. Hence, the + protected constructor disallows any instances of this object. + + + + + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + + + + + + + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + + + + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display if the condition is true + Arguments to be used in formatting the message + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + The message to display if the condition is true + + + + Asserts that a condition is false. If the condition is true the method throws + an . + + The evaluated condition + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to be displayed when the object is null + Arguments to be used in formatting the message + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + The message to be displayed when the object is null + + + + Verifies that the object that is passed in is not equal to null + If the object is null then an + is thrown. + + The object that is to be tested + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to be displayed when the object is not null + Arguments to be used in formatting the message + + + + Verifies that the object that is passed in is equal to null + If the object is not null then an + is thrown. + + The object that is to be tested + The message to be displayed when the object is not null + + + + Verifies that the object that is passed in is equal to null + If the object is not null null then an + is thrown. + + The object that is to be tested + + + + Verifies that the double is passed is an NaN value. + If the object is not NaN then an + is thrown. + + The value that is to be tested + The message to be displayed when the object is not null + Arguments to be used in formatting the message + + + + Verifies that the double is passed is an NaN value. + If the object is not NaN then an + is thrown. + + The object that is to be tested + The message to be displayed when the object is not null + + + + Verifies that the double is passed is an NaN value. + If the object is not NaN then an + is thrown. + + The object that is to be tested + + + + Assert that a string is empty - that is equal to string.Empty + + The string to be tested + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that a string is empty - that is equal to string.Emtpy + + The string to be tested + The message to be displayed on failure + + + + Assert that a string is empty - that is equal to string.Emtpy + + The string to be tested + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing ICollection + + + + Assert that a string is not empty - that is not equal to string.Empty + + The string to be tested + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that a string is empty - that is equal to string.Emtpy + + The string to be tested + The message to be displayed on failure + + + + Assert that a string is empty - that is equal to string.Emtpy + + The string to be tested + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing ICollection + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The messge to display in case of failure + + + + Asserts that an object may be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The messge to display in case of failure + + + + Asserts that an object may not be assigned a value of a given Type. + + The expected Type. + The object under examination + The message to display in case of failure + Array of objects to be used in formatting the message + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + A message to display in case of failure + + + + Asserts that an object is an instance of a given type. + + The expected Type + The object being examined + A message to display in case of failure + An array of objects to be used in formatting the message + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + A message to display in case of failure + + + + Asserts that an object is not an instance of a given type. + + The expected Type + The object being examined + A message to display in case of failure + An array of objects to be used in formatting the message + + + + Verifies that two ints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two ints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + + + + Verifies that two ints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two longs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two longs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + + + + Verifies that two longs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two uints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two uints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + + + + Verifies that two uints are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two ulongs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two ulongs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + + + + Verifies that two ulongs are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two decimals are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two decimal are equal. If they are not, then an + is thrown. + + The expected value + The actual value + The message that will be displayed on failure + + + + Verifies that two decimals are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message that will be displayed on failure + + + + Verifies that two doubles are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two floats are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message displayed upon failure + Arguments to be used in formatting the message + + + + Verifies that two floats are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + The message displayed upon failure + + + + Verifies that two floats are equal considering a delta. If the + expected value is infinity then the delta value is ignored. If + they are not equals then an is + thrown. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. All + non-numeric types are compared by using the Equals method. + Arrays are compared by comparing each element using the same rules. + If they are not equal an is thrown. + + The value that is expected + The actual value + The message to display if objects are not equal + Arguments to be used in formatting the message + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. All + non-numeric types are compared by using the Equals method. + If they are not equal an is thrown. + + The value that is expected + The actual value + The message to display if objects are not equal + + + + Verifies that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. All + non-numeric types are compared by using the Equals method. + If they are not equal an is thrown. + + The value that is expected + The actual value + + + + Asserts that two objects are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two objects are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two objects are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two ints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two ints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two ints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two longss are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two longs are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two longs are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two uints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two uints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two uints are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two ulongs are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two ulongs are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two ulong are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two decimals are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two decimals are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two decimals are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two floats are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two floats are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two floats are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two doubles are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two doubles are not equal. If they are equal + an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two doubles are not equal. If they are equal + an is thrown. + + The expected object + The actual object + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are not the same object. + Arguments to be used in formatting the message + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + The message to be displayed when the object is null + + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + The expected object + The actual object + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + The message to be displayed when the two objects are the same object. + Arguments to be used in formatting the message + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + The message to be displayed when the objects are the same + + + + Asserts that two objects do not refer to the same object. If they + are the same an is thrown. + + The expected object + The actual object + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Asserts that an object is contained in a list. + + The expected object + The list to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that an object is contained in a list. + + The expected object + The list to be examined + The message to display in case of failure + + + + Asserts that an object is contained in a list. + + The expected object + The list to be examined + + + + Throws an with the message and arguments + that are passed in. This is used by the other Assert functions. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This is used by the other Assert functions. + + The message to initialize the with. + + + + Throws an . + This is used by the other Assert functions. + + + + + Throws an with the message and arguments + that are passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + Arguments to be used in formatting the message + + + + Throws an with the message that is + passed in. This causes the test to be reported as ignored. + + The message to initialize the with. + + + + Throws an . + This causes the test to be reported as ignored. + + + + + NOTE: The use of asserters for extending NUnit has + now been replaced by the use of constraints. This + method is marked obsolete. + + Test the condition asserted by an asserter and throw + an assertion exception using provided message on failure. + + An object that implements IAsserter + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeedingt if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint to be applied + The actual value to test + The message that will be displayed on failure + + + + Apply a constraint to an actual value, succeedingt if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + The message to display if the condition is false + + + + Asserts that a condition is true. If the condition is false the method throws + an . + + The evaluated condition + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater or equal to than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater or equal to than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater or equal to than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than or equal to the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + The message that will be displayed on failure + + + + Verifies that the first value is greater than the second + value. If they are not, then an + is thrown. + + The first value, expected to be greater + The second value, expected to be less + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + The message that will be displayed on failure + + + + Verifies that the first value is less than or equal to the second + value. If it is not, then an + is thrown. + + The first value, expected to be less + The second value, expected to be greater + + + + Gets the number of assertions executed so far and + resets the counter to zero. + + + + + Enumeration indicating how the expected message parameter is to be used + + + + Expect an exact match + + + Expect a message containing the parameter string + + + Match the regular expression provided as a parameter + + + + ExpectedExceptionAttribute + + + + + + Constructor for a non-specific exception + + + + + Constructor for a given type of exception + + The type of the expected exception + + + + Constructor for a given exception name + + The full name of the expected exception + + + + Constructor for a given type of exception and expected message text + + The type of the expected exception + The expected message text + + + + Constructor for a given exception name and expected message text + + The full name of the expected exception + The expected messge text + + + + Gets or sets the expected exception type + + + + + Gets or sets the full Type name of the expected exception + + + + + Gets or sets the expected message text + + + + + Gets or sets the user message displayed in case of failure + + + + + Gets or sets the type of match to be performed on the expected message + + + + + Gets the name of a method to be used as an exception handler + + + + + A set of Assert methods operationg on one or more collections + + + + + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + + + + + + + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + + + + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + ICollection of objects to be considered + System.Type that all objects in collection must be instances of + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + ICollection of objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + ICollection of objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that all items contained in collection are not equal to null. + + ICollection of objects to be considered + + + + Asserts that all items contained in collection are not equal to null. + + ICollection of objects to be considered + The message that will be displayed on failure + + + + Asserts that all items contained in collection are not equal to null. + + ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + ICollection of objects to be considered + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + ICollection of objects to be considered + The message that will be displayed on failure + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + The message that will be displayed on failure + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + + + + Asserts that expected and actual are not exactly equal. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + The message that will be displayed on failure + + + + Asserts that expected and actual are not exactly equal. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The IComparer to use in comparing objects from each ICollection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not equivalent. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + + + + Asserts that expected and actual are not equivalent. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are not equivalent. + + The first ICollection of objects to be considered + The second ICollection of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection contains actual as an item. + + ICollection of objects to be considered + Object to be found within collection + + + + Asserts that collection contains actual as an item. + + ICollection of objects to be considered + Object to be found within collection + The message that will be displayed on failure + + + + Asserts that collection contains actual as an item. + + ICollection of objects to be considered + Object to be found within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection does not contain actual as an item. + + ICollection of objects to be considered + Object that cannot exist within collection + + + + Asserts that collection does not contain actual as an item. + + ICollection of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + + + + Asserts that collection does not contain actual as an item. + + ICollection of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that superset is not a subject of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + + + + Asserts that superset is not a subject of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + The message that will be displayed on failure + + + + Asserts that superset is not a subject of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that superset is a subset of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + + + + Asserts that superset is a subset of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + The message that will be displayed on failure + + + + Asserts that superset is a subset of subset. + + The ICollection superset to be considered + The ICollection subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing ICollection + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing ICollection + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing ICollection + + + + NOTE: The use of asserters for extending NUnit has + now been replaced by the use of constraints. This + class is marked obsolete. + + AbstractAsserter is the base class for all asserters. + Asserters encapsulate a condition test and generation + of an AssertionException with a tailored message. They + are used by the Assert class as helper objects. + + User-defined asserters may be passed to the + Assert.DoAssert method in order to implement + extended asserts. + + + + + NOTE: The use of asserters for extending NUnit has + now been replaced by the use of constraints. This + interface is marked obsolete. + + The interface implemented by an asserter. Asserters + encapsulate a condition test and generation of an + AssertionException with a tailored message. They + are used by the Assert class as helper objects. + + User-defined asserters may be passed to the + Assert.DoAssert method in order to implement + extended asserts. + + + + + Test the condition for the assertion. + + True if the test succeeds + + + + Return the message giving the failure reason. + The return value is unspecified if no failure + has occured. + + + + + The user-defined message for this asserter. + + + + + Arguments to use in formatting the user-defined message. + + + + + Our failure message object, initialized as needed + + + + + Constructs an AbstractAsserter + + The message issued upon failure + Arguments to be used in formatting the message + + + + Test method to be implemented by derived types. + Default always succeeds. + + True if the test succeeds + + + + AssertionFailureMessage object used internally + + + + + Message related to a failure. If no failure has + occured, the result is unspecified. + + + + + The Assertion class is obsolete and has been + replaced by the Assert class. + + + + + Asserts that a condition is true. If it isn't it throws + an . + + The message to display is the condition + is false + The evaluated condition + + + + Asserts that a condition is true. If it isn't it throws + an . + + The evaluated condition + + + + /// Asserts that two doubles are equal concerning a delta. If the + expected value is infinity then the delta value is ignored. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + + /// Asserts that two singles are equal concerning a delta. If the + expected value is infinity then the delta value is ignored. + + The expected value + The actual value + The maximum acceptable difference between the + the expected and the actual + + + Asserts that two objects are equal. If they are not + an is thrown. + + + Asserts that two ints are equal. If they are not + an is thrown. + + + Asserts that two ints are equal. If they are not + an is thrown. + + + Asserts that two doubles are equal concerning a delta. + If the expected value is infinity then the delta value is ignored. + + + + Asserts that two floats are equal concerning a delta. + If the expected value is infinity then the delta value is ignored. + + + + + Asserts that two objects are equal. Two objects are considered + equal if both are null, or if both have the same value. Numeric + types are compared via string comparision on their contents to + avoid problems comparing values between different types. All + non-numeric types are compared by using the Equals method. + If they are not equal an is thrown. + + + + Asserts that an object isn't null. + + + Asserts that an object isn't null. + + + Asserts that an object is null. + + + Asserts that an object is null. + + + Asserts that two objects refer to the same object. If they + are not the same an is thrown. + + + + Asserts that two objects refer to the same object. + If they are not an is thrown. + + + + Fails a test with no message. + + + Fails a test with the given message. + + + + Thrown when an assertion failed. + + + + + The error message that explains + the reason for the exception + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + AssertionFailureMessage encapsulates a failure message + issued as a result of an Assert failure. + + + + + Number of characters before a highlighted position before + clipping will occur. Clipped text is replaced with an + elipsis "..." + + + + + Number of characters after a highlighted position before + clipping will occur. Clipped text is replaced with an + elipsis "..." + + + + + Prefix used to start an expected value line. + Must be same length as actualPrefix. + + + + + Prefix used to start an actual value line. + Must be same length as expectedPrefix. + + + + + Construct an AssertionFailureMessage with a message + and optional arguments. + + + + + + + Construct an empty AssertionFailureMessage + + + + + Add an expected value line to the message containing + the text provided as an argument. + + Text describing what was expected. + + + + Add an actual value line to the message containing + the text provided as an argument. + + Text describing the actual value. + + + + Add an expected value line to the message containing + a string representation of the object provided. + + An object representing the expected value + + + + Add an expected value line to the message containing a double + and the tolerance used in making the comparison. + + The expected value + The tolerance specified in the Assert + + + + Add an actual value line to the message containing + a string representation of the object provided. + + An object representing what was actually found + + + + Display two lines that communicate the expected value, and the actual value + + The expected value + The actual value found + + + + Display two lines that communicate the expected value, the actual value and + the tolerance used in comparing two doubles. + + The expected value + The actual value found + The tolerance specified in the Assert + + + + Draws a marker under the expected/actual strings that highlights + where in the string a mismatch occurred. + + The position of the mismatch + + + + Reports whether the string lengths are the same or different, and + what the string lengths are. + + The expected string + The actual string value + + + + Called to create additional message lines when two objects have been + found to be unequal. If the inputs are strings, a special message is + rendered that can help track down where the strings are different, + based on differences in length, or differences in content. + + If the inputs are not strings, the ToString method of the objects + is used to show what is different about them. + + The expected value + The actual value + True if a case-insensitive comparison is being performed + + + + Called to create additional message lines when two doubles have been + found to be unequal, within the specified tolerance. + + + + + Constructs a message that can be displayed when the content of two + strings are different, but the string lengths are the same. The + message will clip the strings to a reasonable length, centered + around the first position where they are mismatched, and draw + a line marking the position of the difference to make comparison + quicker. + + The expected string value + The actual string value + True if a case-insensitive comparison is being performed + + + + Display a standard message showing the differences found between + two arrays that were expected to be equal. + + The expected array value + The actual array value + The index at which a difference was found + + + + Display a standard message showing the differences found between + two collections that were expected to be equal. + + The expected collection value + The actual collection value + The index at which a difference was found + + + + Get an array of indices representing the point in a collection or + array corresponding to a single int index into the collection. + + The collection to which the indices apply + Index in the collection + Array of indices + + + + Displays elements from a list on a line + + Text to prefix the line with + The list of items to display + The index in the list of the first element to display + The maximum number of elements to display + + + + Formats an object for display in a message line + + The object to be displayed + + + + + Tests two objects to determine if they are strings. + + + + + + + + Renders up to M characters before, and up to N characters after + the specified index position. If leading or trailing text is + clipped, and elipses "..." is added where the missing text would + be. + + Clips strings to limit previous or post newline characters, + since these mess up the comparison + + + + + + + + Shows the position two strings start to differ. Comparison + starts at the start index. + + + + + -1 if no mismatch found, or the index where mismatch found + + + + Turns CR, LF, or TAB into visual indicator to preserve visual marker + position. This is done by replacing the '\r' into '\\' and 'r' + characters, and the '\n' into '\\' and 'n' characters, and '\t' into + '\\' and 't' characters. + + Thus the single character becomes two characters for display. + + + + + + + Attribute used to apply a category to a test + + + + + The name of the category + + + + + Construct attribute for a given category + + The name of the category + + + + Protected constructor uses the Type name as the name + of the category. + + + + + The name of the category + + + + + Abstract base for Attributes that are used to include tests + in the test run based on environmental settings. + + + + + Constructor with no included items specified, for use + with named property syntax. + + + + + Constructor taking one or more included items + + Comma-delimited list of included items + + + + Name of the item that is needed in order for + a test to run. Multiple itemss may be given, + separated by a comma. + + + + + Name of the item to be excluded. Multiple items + may be given, separated by a comma. + + + + + The reason for including or excluding the test + + + + + PlatformAttribute is used to mark a test fixture or an + individual method as applying to a particular platform only. + + + + + Constructor with no platforms specified, for use + with named property syntax. + + + + + Constructor taking one or more platforms + + Comma-deliminted list of platforms + + + + CultureAttribute is used to mark a test fixture or an + individual method as applying to a particular Culture only. + + + + + Constructor with no cultures specified, for use + with named property syntax. + + + + + Constructor taking one or more cultures + + Comma-deliminted list of cultures + + + + MessageWriter is the abstract base for classes that write + constraint descriptions and messages in some form. The + class has separate methods for writing various components + of a message, allowing implementations to tailor the + presentation as needed. + + + + + Construct a MessageWriter given a culture + + + + + Method to write single line message with optional args, usually + written to precede the general failure message. + + The message to be written + Any arguments used in formatting the message + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The constraint that failed + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the Expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in locating the point where the strings differ + If true, the strings should be clipped to fit the line + + + + Writes the text for a connector. + + The connector. + + + + Writes the text for a predicate. + + The predicate. + + + + Writes the text for an expected value. + + The expected value. + + + + Writes the text for a modifier + + The modifier. + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Abstract method to get the max line length + + + + + Static methods used in creating messages + + + + + Static string used when strings are clipped + + + + + Returns the representation of a type as used in NUnitLite. + This is the same as Type.ToString() except for arrays, + which are displayed with their declared sizes. + + + + + + + Converts any control characters in a string + to their escaped representation. + + The string to be converted + The converted string + + + + Return the a string representation for a set of indices into an array + + Array of indices for which a string is needed + + + + Get an array of indices representing the point in a collection or + array corresponding to a single int index into the collection. + + The collection to which the indices apply + Index in the collection + Array of indices + + + + Clip a string to a given length, starting at a particular offset, returning the clipped + string with ellipses representing the removed parts + + The string to be clipped + The maximum permitted length of the result string + The point at which to start clipping + The clipped string + + + + Clip the expected and actual strings in a coordinated fashion, + so that they may be displayed together. + + + + + + + + + Shows the position two strings start to differ. Comparison + starts at the start index. + + The expected string + The actual string + The index in the strings at which comparison should start + Boolean indicating whether case should be ignored + -1 if no mismatch found, or the index where mismatch found + + + + Summary description for SetCultureAttribute. + + + + + PropertyAttribute is used to attach information to a test as a name/value pair.. + + + + + The property name + + + + + The property value + + + + + Construct a PropertyAttribute with a name and value + + The name of the property + The property value + + + + Constructor for use by inherited classes that use the + name of the type as the property name. + + + + + Gets the property name + + + + + Gets the property value + + + + + Construct given the name of a culture + + + + + + TextMessageWriter writes constraint descriptions and messages + in displayable form as a text stream. It tailors the display + of individual message components to form the standard message + format of NUnit assertion failure messages. + + + + + Prefix used for the expected value line of a message + + + + + Prefix used for the actual value line of a message + + + + + Length of a message prefix + + + + + Construct a TextMessageWriter + + + + + Construct a TextMessageWriter, specifying a user message + and optional formatting arguments. + + + + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The constraint that failed + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in string comparisons + If true, clip the strings to fit the max line length + + + + Writes the text for a connector. + + The connector. + + + + Writes the text for a predicate. + + The predicate. + + + + Write the text for a modifier. + + The modifier. + + + + Writes the text for an expected value. + + The expected value. + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Write the generic 'Expected' line for a constraint + + The constraint that failed + + + + Write the generic 'Expected' line for a given value + + The expected value + + + + Write the generic 'Expected' line for a given value + and tolerance. + + The expected value + The tolerance within which the test was made + + + + Write the generic 'Actual' line for a constraint + + The constraint for which the actual value is to be written + + + + Write the generic 'Actual' line for a given value + + The actual value causing a failure + + + + Gets or sets the maximum line length for this writer + + + + + Basic Asserts on strings. + + + + + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + + + + + + + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + + + + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + The message to display in case of failure + + + + Asserts that a string is found within another string. + + The expected string + The string to be examined + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + The message to display in case of failure + + + + Asserts that a string starts with another string. + + The expected string + The string to be examined + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + The message to display in case of failure + + + + Asserts that a string ends with another string. + + The expected string + The string to be examined + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + The message to display in case of failure + + + + Asserts that two strings are equal, without regard to case. + + The expected string + The actual string + + + + Asserts that a string matches an expected regular expression pattern. + + The expected expression + The actual string + The message to display in case of failure + Arguments used in formatting the message + + + + Asserts that a string matches an expected regular expression pattern. + + The expected expression + The actual string + The message to display in case of failure + + + + Asserts that a string matches an expected regular expression pattern. + + The expected expression + The actual string + + + + AssertionHelper is an optional base class for user tests, + allowing the use of shorter names for constraints and + asserts and avoiding conflict with the definition of + , from which it inherits much of its + behavior, in certain mock object frameworks. + + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to + + A Constraint to be applied + The actual value to test + The message that will be displayed on failure + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to + + A Constraint to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to + . + + The evaluated condition + The message to display if the condition is false + Arguments to be used in formatting the message + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to + . + + The evaluated condition + The message to display if the condition is false + + + + Asserts that a condition is true. If the condition is false the method throws + an . Works Identically to . + + The evaluated condition + + + + Returns a ListMapper based on a collection. + + The original collection + + + + + Summary description for FileAssert. + + + + + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + + + + + + + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + + + + + + + We don't actually want any instances of this object, but some people + like to inherit from it to add other static methods. Hence, the + protected constructor disallows any instances of this object. + + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + The message to display if objects are not equal + + + + Verifies that two Streams are equal. Two Streams are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The expected Stream + The actual Stream + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if objects are not equal + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if objects are not equal + + + + Verifies that two files are equal. Two files are considered + equal if both are null, or if both have the same value byte for byte. + If they are not equal an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + The message to be displayed when the two Stream are the same. + Arguments to be used in formatting the message + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + The message to be displayed when the Streams are the same. + + + + Asserts that two Streams are not equal. If they are equal + an is thrown. + + The expected Stream + The actual Stream + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + The message to display if objects are not equal + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + A file containing the value that is expected + A file containing the actual value + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if Streams are not equal + Arguments to be used in formatting the message + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + The message to display if objects are not equal + + + + Asserts that two files are not equal. If they are equal + an is thrown. + + The path to a file containing the value that is expected + The path to a file containing the actual value + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + GlobalSettings is a place for setting default values used + by the framework in performing asserts. + + + + + Default tolerance for floating point equality + + + + + Obsolete class, formerly used to identify tests through + inheritance. Avoid using this class for new tests. + + + + + Method called immediately before running the test. + + + + + Method Called immediately after running the test. It is + guaranteed to be called, even if an exception is thrown. + + + + + Attribute used to mark a class that contains one-time SetUp + and/or TearDown methods that apply to all the tests in a + namespace or an assembly. + + + + + SetUpFixtureAttribute is used to identify a SetUpFixture + + + + + Attribute used to mark a static (shared in VB) property + that returns a list of tests. + + + + + Attribute used to identify a method that is called + immediately after each test is run. The method is + guaranteed to be called, even if an exception is thrown. + + + + + Adding this attribute to a method within a + class makes the method callable from the NUnit test runner. There is a property + called Description which is optional which you can provide a more detailed test + description. This class cannot be inherited. + + + + [TestFixture] + public class Fixture + { + [Test] + public void MethodToTest() + {} + + [Test(Description = "more detailed description")] + publc void TestDescriptionMethod() + {} + } + + + + + + Descriptive text for this test + + + + + [TestFixture] + public class ExampleClass + {} + + + + + Descriptive text for this fixture + + + + + Attribute used to identify a method that is + called before any tests in a fixture are run. + + + + + Attribute used to identify a method that is called after + all the tests in a fixture have run. The method is + guaranteed to be called, even if an exception is thrown. + + + + + Attribute used to mark a test that is to be ignored. + Ignored tests result in a warning message when the + tests are run. + + + + + Constructs the attribute without giving a reason + for ignoring the test. + + + + + Constructs the attribute giving a reason for ignoring the test + + The reason for ignoring the test + + + + The reason for ignoring a test + + + + + ExplicitAttribute marks a test or test fixture so that it will + only be run if explicitly executed from the gui or command line + or if it is included by use of a filter. The test will not be + run simply because an enclosing suite is run. + + + + + Default constructor + + + + + Constructor with a reason + + The reason test is marked explicit + + + + The reason test is marked explicit + + + + + Attribute used to provide descriptive text about a + test case or fixture. + + + + + Construct the attribute + + Text describing the test + + + + Gets the test description + + + + + Interface implemented by a user fixture in order to + validate any expected exceptions. It is only called + for test methods marked with the ExpectedException + attribute. + + + + + Method to handle an expected exception + + The exception to be handled + + + diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.mocks.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.mocks.dll new file mode 100644 index 0000000000..1d624c9eff Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.mocks.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.dll new file mode 100644 index 0000000000..265e45c095 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.tests.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.tests.dll new file mode 100644 index 0000000000..adc71bbf82 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.uikit.tests.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/NUnit/nunit.util.dll b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.util.dll new file mode 100644 index 0000000000..4bbb18c60f Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/NUnit/nunit.util.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/log4net/log4net.dll b/source/test/dotnet/CmisWS/Properties/log4net/log4net.dll new file mode 100644 index 0000000000..ffc57e1125 Binary files /dev/null and b/source/test/dotnet/CmisWS/Properties/log4net/log4net.dll differ diff --git a/source/test/dotnet/CmisWS/Properties/log4net/log4net.xml b/source/test/dotnet/CmisWS/Properties/log4net/log4net.xml new file mode 100644 index 0000000000..fab7af26df --- /dev/null +++ b/source/test/dotnet/CmisWS/Properties/log4net/log4net.xml @@ -0,0 +1,28655 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns true. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Connects to the database. + + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Prepares the database command and initialize the parameters. + + + + + Flag to indicate if we are using a command object + + + + Set to true when the appender is to use a prepared + statement or stored procedure to insert into the database. + + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + The database command. + + + + + Database connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + true if access to the ICollection is synchronized (thread-safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The EventID of the event log entry can be + set using the EventLogEventID property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative model, , only holds a + write lock while the appender is writing a logging event. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checked if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are two built in locking models, and . + The former locks the file from the start of logging to the end and the + later lock only for the minimal amount of time when logging each message. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + the current list of events that have been appended. + + + Use the method to clear the + current list of events. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + FileName provided in configuration. Used for rolling properly + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is passed as the value for the category name to the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Watch a specified config file used to configure a repository + + The repository to configure. + The configuration file to watch. + + + Watch a specified config file used to configure a repository + + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Initializes a new instance of the class. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + true if access to the ICollection is synchronized (thread-safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + The time the event was logged + + + + The TimeStamp is stored in the local time zone for this computer. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored in the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in the local time zone for this computer. + + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration to + pass to the + method. + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + Writer adapter that ignores Close + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + true if access to the ICollection is synchronized (thread-safe); otherwise, false. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is printed on the standard error output stream. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Prints the message and the stack trace of the exception on the standard + error output stream. + + + + + + Log an Error + + The error message. + The exception. + + + Prints the message and the stack trace of the exception on the standard + error output stream. + + + + + + Log an error + + The error message. + + + Print a the error message passed as parameter on the standard + error output stream. + + + + + + Flag to indicate if it is the first error + + + + + String to prefix each message with + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + Wrapper class used to map converter names to converter types + + + + Wrapper class used to map converter names to converter types + + + + + + default constructor + + + + + Gets or sets the name of the conversion pattern + + + The name of the conversion pattern + + + + Gets or sets the name of the conversion pattern + + + + + + Gets or sets the type of the converter + + + The type of the converter + + + + Gets or sets the type of the converter + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + The thread local data slot to use to store a PropertiesDictionary. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryService.wsdl b/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryService.wsdl new file mode 100644 index 0000000000..2a7f975102 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryService.wsdl @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryServicePort.wsdl new file mode 100644 index 0000000000..4aaafcb02a --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/DiscoveryServicePort.wsdl @@ -0,0 +1,1434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.cs b/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.cs new file mode 100644 index 0000000000..733bcce36f --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.cs @@ -0,0 +1,2020 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.DiscoveryService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.contentAlreadyExistsExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.DiscoveryService.invalidArgumentExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.DiscoveryService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="DiscoveryService.DiscoveryServicePort")] + public interface DiscoveryServicePort { + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.DiscoveryService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.DiscoveryService.queryResponse query(WcfTestClient.DiscoveryService.query request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisPropertiesType propertiesField; + + private cmisAllowableActionsType allowableActionsField; + + private cmisObjectType[] relationshipField; + + private cmisObjectType[] childField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public cmisPropertiesType properties { + get { + return this.propertiesField; + } + set { + this.propertiesField = value; + this.RaisePropertyChanged("properties"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public cmisAllowableActionsType allowableActions { + get { + return this.allowableActionsField; + } + set { + this.allowableActionsField = value; + this.RaisePropertyChanged("allowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("relationship", IsNullable=true, Order=2)] + public cmisObjectType[] relationship { + get { + return this.relationshipField; + } + set { + this.relationshipField = value; + this.RaisePropertyChanged("relationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("child", IsNullable=true, Order=3)] + public cmisObjectType[] child { + get { + return this.childField; + } + set { + this.childField = value; + this.RaisePropertyChanged("child"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=4)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisProperty[] itemsField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBoolean", typeof(cmisPropertyBoolean), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTime", typeof(cmisPropertyDateTime), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimal", typeof(cmisPropertyDecimal), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtml", typeof(cmisPropertyHtml), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyId", typeof(cmisPropertyId), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyInteger", typeof(cmisPropertyInteger), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyString", typeof(cmisPropertyString), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyUri", typeof(cmisPropertyUri), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyXml", typeof(cmisPropertyXml), IsNullable=true, Order=0)] + public cmisProperty[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBoolean : cmisProperty { + + private bool valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumPropertyType { + + /// + boolean, + + /// + id, + + /// + integer, + + /// + datetime, + + /// + @decimal, + + /// + html, + + /// + @string, + + /// + uri, + + /// + xml, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBoolean))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyInteger))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTime))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyString))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimal))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUri))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisProperty : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string indexField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAllowableActionsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string parentIdField; + + private string parentUrlField; + + private bool canDeleteField; + + private bool canDeleteFieldSpecified; + + private bool canUpdatePropertiesField; + + private bool canUpdatePropertiesFieldSpecified; + + private bool canGetPropertiesField; + + private bool canGetPropertiesFieldSpecified; + + private bool canGetRelationshipsField; + + private bool canGetRelationshipsFieldSpecified; + + private bool canGetParentsField; + + private bool canGetParentsFieldSpecified; + + private bool canGetFolderParentField; + + private bool canGetFolderParentFieldSpecified; + + private bool canGetDescendantsField; + + private bool canGetDescendantsFieldSpecified; + + private bool canMoveField; + + private bool canMoveFieldSpecified; + + private bool canDeleteVersionField; + + private bool canDeleteVersionFieldSpecified; + + private bool canDeleteContentField; + + private bool canDeleteContentFieldSpecified; + + private bool canCheckoutField; + + private bool canCheckoutFieldSpecified; + + private bool canCancelCheckoutField; + + private bool canCancelCheckoutFieldSpecified; + + private bool canCheckinField; + + private bool canCheckinFieldSpecified; + + private bool canSetContentField; + + private bool canSetContentFieldSpecified; + + private bool canGetAllVersionsField; + + private bool canGetAllVersionsFieldSpecified; + + private bool canAddToFolderField; + + private bool canAddToFolderFieldSpecified; + + private bool canRemoveFromFolderField; + + private bool canRemoveFromFolderFieldSpecified; + + private bool canViewContentField; + + private bool canViewContentFieldSpecified; + + private bool canAddPolicyField; + + private bool canAddPolicyFieldSpecified; + + private bool canGetAppliedPoliciesField; + + private bool canGetAppliedPoliciesFieldSpecified; + + private bool canRemovePolicyField; + + private bool canRemovePolicyFieldSpecified; + + private bool canGetChildrenField; + + private bool canGetChildrenFieldSpecified; + + private bool canCreateDocumentField; + + private bool canCreateDocumentFieldSpecified; + + private bool canCreateFolderField; + + private bool canCreateFolderFieldSpecified; + + private bool canCreateRelationshipField; + + private bool canCreateRelationshipFieldSpecified; + + private bool canCreatePolicyField; + + private bool canCreatePolicyFieldSpecified; + + private bool canDeleteTreeField; + + private bool canDeleteTreeFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string parentUrl { + get { + return this.parentUrlField; + } + set { + this.parentUrlField = value; + this.RaisePropertyChanged("parentUrl"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool canDelete { + get { + return this.canDeleteField; + } + set { + this.canDeleteField = value; + this.RaisePropertyChanged("canDelete"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteSpecified { + get { + return this.canDeleteFieldSpecified; + } + set { + this.canDeleteFieldSpecified = value; + this.RaisePropertyChanged("canDeleteSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool canUpdateProperties { + get { + return this.canUpdatePropertiesField; + } + set { + this.canUpdatePropertiesField = value; + this.RaisePropertyChanged("canUpdateProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canUpdatePropertiesSpecified { + get { + return this.canUpdatePropertiesFieldSpecified; + } + set { + this.canUpdatePropertiesFieldSpecified = value; + this.RaisePropertyChanged("canUpdatePropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool canGetProperties { + get { + return this.canGetPropertiesField; + } + set { + this.canGetPropertiesField = value; + this.RaisePropertyChanged("canGetProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetPropertiesSpecified { + get { + return this.canGetPropertiesFieldSpecified; + } + set { + this.canGetPropertiesFieldSpecified = value; + this.RaisePropertyChanged("canGetPropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool canGetRelationships { + get { + return this.canGetRelationshipsField; + } + set { + this.canGetRelationshipsField = value; + this.RaisePropertyChanged("canGetRelationships"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetRelationshipsSpecified { + get { + return this.canGetRelationshipsFieldSpecified; + } + set { + this.canGetRelationshipsFieldSpecified = value; + this.RaisePropertyChanged("canGetRelationshipsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool canGetParents { + get { + return this.canGetParentsField; + } + set { + this.canGetParentsField = value; + this.RaisePropertyChanged("canGetParents"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetParentsSpecified { + get { + return this.canGetParentsFieldSpecified; + } + set { + this.canGetParentsFieldSpecified = value; + this.RaisePropertyChanged("canGetParentsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool canGetFolderParent { + get { + return this.canGetFolderParentField; + } + set { + this.canGetFolderParentField = value; + this.RaisePropertyChanged("canGetFolderParent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetFolderParentSpecified { + get { + return this.canGetFolderParentFieldSpecified; + } + set { + this.canGetFolderParentFieldSpecified = value; + this.RaisePropertyChanged("canGetFolderParentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool canGetDescendants { + get { + return this.canGetDescendantsField; + } + set { + this.canGetDescendantsField = value; + this.RaisePropertyChanged("canGetDescendants"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetDescendantsSpecified { + get { + return this.canGetDescendantsFieldSpecified; + } + set { + this.canGetDescendantsFieldSpecified = value; + this.RaisePropertyChanged("canGetDescendantsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool canMove { + get { + return this.canMoveField; + } + set { + this.canMoveField = value; + this.RaisePropertyChanged("canMove"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canMoveSpecified { + get { + return this.canMoveFieldSpecified; + } + set { + this.canMoveFieldSpecified = value; + this.RaisePropertyChanged("canMoveSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool canDeleteVersion { + get { + return this.canDeleteVersionField; + } + set { + this.canDeleteVersionField = value; + this.RaisePropertyChanged("canDeleteVersion"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteVersionSpecified { + get { + return this.canDeleteVersionFieldSpecified; + } + set { + this.canDeleteVersionFieldSpecified = value; + this.RaisePropertyChanged("canDeleteVersionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool canDeleteContent { + get { + return this.canDeleteContentField; + } + set { + this.canDeleteContentField = value; + this.RaisePropertyChanged("canDeleteContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteContentSpecified { + get { + return this.canDeleteContentFieldSpecified; + } + set { + this.canDeleteContentFieldSpecified = value; + this.RaisePropertyChanged("canDeleteContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool canCheckout { + get { + return this.canCheckoutField; + } + set { + this.canCheckoutField = value; + this.RaisePropertyChanged("canCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckoutSpecified { + get { + return this.canCheckoutFieldSpecified; + } + set { + this.canCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool canCancelCheckout { + get { + return this.canCancelCheckoutField; + } + set { + this.canCancelCheckoutField = value; + this.RaisePropertyChanged("canCancelCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCancelCheckoutSpecified { + get { + return this.canCancelCheckoutFieldSpecified; + } + set { + this.canCancelCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCancelCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool canCheckin { + get { + return this.canCheckinField; + } + set { + this.canCheckinField = value; + this.RaisePropertyChanged("canCheckin"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckinSpecified { + get { + return this.canCheckinFieldSpecified; + } + set { + this.canCheckinFieldSpecified = value; + this.RaisePropertyChanged("canCheckinSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool canSetContent { + get { + return this.canSetContentField; + } + set { + this.canSetContentField = value; + this.RaisePropertyChanged("canSetContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canSetContentSpecified { + get { + return this.canSetContentFieldSpecified; + } + set { + this.canSetContentFieldSpecified = value; + this.RaisePropertyChanged("canSetContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public bool canGetAllVersions { + get { + return this.canGetAllVersionsField; + } + set { + this.canGetAllVersionsField = value; + this.RaisePropertyChanged("canGetAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAllVersionsSpecified { + get { + return this.canGetAllVersionsFieldSpecified; + } + set { + this.canGetAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("canGetAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool canAddToFolder { + get { + return this.canAddToFolderField; + } + set { + this.canAddToFolderField = value; + this.RaisePropertyChanged("canAddToFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddToFolderSpecified { + get { + return this.canAddToFolderFieldSpecified; + } + set { + this.canAddToFolderFieldSpecified = value; + this.RaisePropertyChanged("canAddToFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool canRemoveFromFolder { + get { + return this.canRemoveFromFolderField; + } + set { + this.canRemoveFromFolderField = value; + this.RaisePropertyChanged("canRemoveFromFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemoveFromFolderSpecified { + get { + return this.canRemoveFromFolderFieldSpecified; + } + set { + this.canRemoveFromFolderFieldSpecified = value; + this.RaisePropertyChanged("canRemoveFromFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool canViewContent { + get { + return this.canViewContentField; + } + set { + this.canViewContentField = value; + this.RaisePropertyChanged("canViewContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canViewContentSpecified { + get { + return this.canViewContentFieldSpecified; + } + set { + this.canViewContentFieldSpecified = value; + this.RaisePropertyChanged("canViewContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool canAddPolicy { + get { + return this.canAddPolicyField; + } + set { + this.canAddPolicyField = value; + this.RaisePropertyChanged("canAddPolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddPolicySpecified { + get { + return this.canAddPolicyFieldSpecified; + } + set { + this.canAddPolicyFieldSpecified = value; + this.RaisePropertyChanged("canAddPolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool canGetAppliedPolicies { + get { + return this.canGetAppliedPoliciesField; + } + set { + this.canGetAppliedPoliciesField = value; + this.RaisePropertyChanged("canGetAppliedPolicies"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAppliedPoliciesSpecified { + get { + return this.canGetAppliedPoliciesFieldSpecified; + } + set { + this.canGetAppliedPoliciesFieldSpecified = value; + this.RaisePropertyChanged("canGetAppliedPoliciesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool canRemovePolicy { + get { + return this.canRemovePolicyField; + } + set { + this.canRemovePolicyField = value; + this.RaisePropertyChanged("canRemovePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemovePolicySpecified { + get { + return this.canRemovePolicyFieldSpecified; + } + set { + this.canRemovePolicyFieldSpecified = value; + this.RaisePropertyChanged("canRemovePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public bool canGetChildren { + get { + return this.canGetChildrenField; + } + set { + this.canGetChildrenField = value; + this.RaisePropertyChanged("canGetChildren"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetChildrenSpecified { + get { + return this.canGetChildrenFieldSpecified; + } + set { + this.canGetChildrenFieldSpecified = value; + this.RaisePropertyChanged("canGetChildrenSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=24)] + public bool canCreateDocument { + get { + return this.canCreateDocumentField; + } + set { + this.canCreateDocumentField = value; + this.RaisePropertyChanged("canCreateDocument"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateDocumentSpecified { + get { + return this.canCreateDocumentFieldSpecified; + } + set { + this.canCreateDocumentFieldSpecified = value; + this.RaisePropertyChanged("canCreateDocumentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=25)] + public bool canCreateFolder { + get { + return this.canCreateFolderField; + } + set { + this.canCreateFolderField = value; + this.RaisePropertyChanged("canCreateFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateFolderSpecified { + get { + return this.canCreateFolderFieldSpecified; + } + set { + this.canCreateFolderFieldSpecified = value; + this.RaisePropertyChanged("canCreateFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=26)] + public bool canCreateRelationship { + get { + return this.canCreateRelationshipField; + } + set { + this.canCreateRelationshipField = value; + this.RaisePropertyChanged("canCreateRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateRelationshipSpecified { + get { + return this.canCreateRelationshipFieldSpecified; + } + set { + this.canCreateRelationshipFieldSpecified = value; + this.RaisePropertyChanged("canCreateRelationshipSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=27)] + public bool canCreatePolicy { + get { + return this.canCreatePolicyField; + } + set { + this.canCreatePolicyField = value; + this.RaisePropertyChanged("canCreatePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreatePolicySpecified { + get { + return this.canCreatePolicyFieldSpecified; + } + set { + this.canCreatePolicyFieldSpecified = value; + this.RaisePropertyChanged("canCreatePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=28)] + public bool canDeleteTree { + get { + return this.canDeleteTreeField; + } + set { + this.canDeleteTreeField = value; + this.RaisePropertyChanged("canDeleteTree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteTreeSpecified { + get { + return this.canDeleteTreeFieldSpecified; + } + set { + this.canDeleteTreeFieldSpecified = value; + this.RaisePropertyChanged("canDeleteTreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=29)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyInteger : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTime : cmisProperty { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyString : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimal : cmisProperty { + + private decimal valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyId : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private string hrefField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")] + public string href { + get { + return this.hrefField; + } + set { + this.hrefField = value; + this.RaisePropertyChanged("href"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUri : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="query", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class query { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string statement; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public bool searchAllVersions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string pageSize; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string skipCount; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool returnAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=5)] + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Xml.XmlElement[] Any; + + public query() { + } + + public query(string statement, bool searchAllVersions, string pageSize, string skipCount, bool returnAllowableActions, System.Xml.XmlElement[] Any) { + this.statement = statement; + this.searchAllVersions = searchAllVersions; + this.pageSize = pageSize; + this.skipCount = skipCount; + this.returnAllowableActions = returnAllowableActions; + this.Any = Any; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="queryResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class queryResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public bool hasMoreItems; + + public queryResponse() { + } + + public queryResponse(cmisObjectType[] @object, bool hasMoreItems) { + this.@object = @object; + this.hasMoreItems = hasMoreItems; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface DiscoveryServicePortChannel : WcfTestClient.DiscoveryService.DiscoveryServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class DiscoveryServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.DiscoveryService.DiscoveryServicePort { + + public DiscoveryServicePortClient() { + } + + public DiscoveryServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public DiscoveryServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DiscoveryServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public DiscoveryServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.DiscoveryService.queryResponse WcfTestClient.DiscoveryService.DiscoveryServicePort.query(WcfTestClient.DiscoveryService.query request) { + return base.Channel.query(request); + } + + public cmisObjectType[] query(string statement, bool searchAllVersions, string pageSize, string skipCount, bool returnAllowableActions, System.Xml.XmlElement[] Any, out bool hasMoreItems) { + WcfTestClient.DiscoveryService.query inValue = new WcfTestClient.DiscoveryService.query(); + inValue.statement = statement; + inValue.searchAllVersions = searchAllVersions; + inValue.pageSize = pageSize; + inValue.skipCount = skipCount; + inValue.returnAllowableActions = returnAllowableActions; + inValue.Any = Any; + WcfTestClient.DiscoveryService.queryResponse retVal = ((WcfTestClient.DiscoveryService.DiscoveryServicePort)(this)).query(inValue); + hasMoreItems = retVal.hasMoreItems; + return retVal.@object; + } + + public cmisObjectType[] queryWrapper(WcfTestClient.DiscoveryService.query query, out bool hasMoreItems) { + WcfTestClient.DiscoveryService.queryResponse retVal = ((WcfTestClient.DiscoveryService.DiscoveryServicePort)(this)).query(query); + hasMoreItems = retVal.hasMoreItems; + return retVal.@object; + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.svcmap new file mode 100644 index 0000000000..e28c698644 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfCmisWSTests.DiscoveryService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfCmisWSTests.DiscoveryService.cmisObjectType.datasource new file mode 100644 index 0000000000..3bf7c46ed8 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfCmisWSTests.DiscoveryService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.DiscoveryService.cmisObjectType, Service References.DiscoveryService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfTestClient.DiscoveryService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfTestClient.DiscoveryService.cmisObjectType.datasource new file mode 100644 index 0000000000..0a091bf921 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/WcfTestClient.DiscoveryService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.DiscoveryService.cmisObjectType, Service References.DiscoveryService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration.svcinfo new file mode 100644 index 0000000000..35ef224dc1 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration91.svcinfo new file mode 100644 index 0000000000..03356f83ff --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/DiscoveryService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + DiscoveryServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + DiscoveryServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/DiscoveryService + + + + + + basicHttpBinding + + + DiscoveryServiceSoapBinding + + + DiscoveryService.DiscoveryServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + DiscoveryServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingService.wsdl b/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingService.wsdl new file mode 100644 index 0000000000..8c5354eb57 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingService.wsdl @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingServicePort.wsdl new file mode 100644 index 0000000000..269b45dcb4 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/MultiFilingServicePort.wsdl @@ -0,0 +1,1464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.cs b/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.cs new file mode 100644 index 0000000000..cb0ae549c7 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.cs @@ -0,0 +1,418 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.MultiFilingService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.contentAlreadyExistsExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.MultiFilingService.invalidArgumentExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.MultiFilingService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="MultiFilingService.MultiFilingServicePort")] + public interface MultiFilingServicePort { + + // CODEGEN: Generating message contract since element name repositoryId from namespace http://www.cmis.org/2008/05 is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.notInFolderExceptionType), Action="", Name="notInFolderException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + WcfTestClient.MultiFilingService.removeObjectFromFolderResponse removeObjectFromFolder(WcfTestClient.MultiFilingService.removeObjectFromFolder request); + + // CODEGEN: Generating message contract since element name repositoryId from namespace http://www.cmis.org/2008/05 is not marked nillable + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.MultiFilingService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + WcfTestClient.MultiFilingService.addObjectToFolderResponse addObjectToFolder(WcfTestClient.MultiFilingService.addObjectToFolder request); + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class removeObjectFromFolder { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="removeObjectFromFolder", Namespace="http://www.cmis.org/2008/05", Order=0)] + public WcfTestClient.MultiFilingService.removeObjectFromFolderBody Body; + + public removeObjectFromFolder() { + } + + public removeObjectFromFolder(WcfTestClient.MultiFilingService.removeObjectFromFolderBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class removeObjectFromFolderBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string repositoryId; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)] + public string objectId; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=2)] + public string folderId; + + public removeObjectFromFolderBody() { + } + + public removeObjectFromFolderBody(string repositoryId, string objectId, string folderId) { + this.repositoryId = repositoryId; + this.objectId = objectId; + this.folderId = folderId; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class removeObjectFromFolderResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="removeObjectFromFolderResponse", Namespace="http://www.cmis.org/2008/05", Order=0)] + public WcfTestClient.MultiFilingService.removeObjectFromFolderResponseBody Body; + + public removeObjectFromFolderResponse() { + } + + public removeObjectFromFolderResponse(WcfTestClient.MultiFilingService.removeObjectFromFolderResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute()] + public partial class removeObjectFromFolderResponseBody { + + public removeObjectFromFolderResponseBody() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class addObjectToFolder { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="addObjectToFolder", Namespace="http://www.cmis.org/2008/05", Order=0)] + public WcfTestClient.MultiFilingService.addObjectToFolderBody Body; + + public addObjectToFolder() { + } + + public addObjectToFolder(WcfTestClient.MultiFilingService.addObjectToFolderBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class addObjectToFolderBody { + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=0)] + public string repositoryId; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=1)] + public string objectId; + + [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=2)] + public string folderId; + + public addObjectToFolderBody() { + } + + public addObjectToFolderBody(string repositoryId, string objectId, string folderId) { + this.repositoryId = repositoryId; + this.objectId = objectId; + this.folderId = folderId; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(IsWrapped=false)] + public partial class addObjectToFolderResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Name="addObjectToFolderResponse", Namespace="http://www.cmis.org/2008/05", Order=0)] + public WcfTestClient.MultiFilingService.addObjectToFolderResponseBody Body; + + public addObjectToFolderResponse() { + } + + public addObjectToFolderResponse(WcfTestClient.MultiFilingService.addObjectToFolderResponseBody Body) { + this.Body = Body; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute()] + public partial class addObjectToFolderResponseBody { + + public addObjectToFolderResponseBody() { + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface MultiFilingServicePortChannel : WcfTestClient.MultiFilingService.MultiFilingServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class MultiFilingServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.MultiFilingService.MultiFilingServicePort { + + public MultiFilingServicePortClient() { + } + + public MultiFilingServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public MultiFilingServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public MultiFilingServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public MultiFilingServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.MultiFilingService.removeObjectFromFolderResponse WcfTestClient.MultiFilingService.MultiFilingServicePort.removeObjectFromFolder(WcfTestClient.MultiFilingService.removeObjectFromFolder request) { + return base.Channel.removeObjectFromFolder(request); + } + + public void removeObjectFromFolder(string repositoryId, string objectId, string folderId) { + WcfTestClient.MultiFilingService.removeObjectFromFolder inValue = new WcfTestClient.MultiFilingService.removeObjectFromFolder(); + inValue.Body = new WcfTestClient.MultiFilingService.removeObjectFromFolderBody(); + inValue.Body.repositoryId = repositoryId; + inValue.Body.objectId = objectId; + inValue.Body.folderId = folderId; + WcfTestClient.MultiFilingService.removeObjectFromFolderResponse retVal = ((WcfTestClient.MultiFilingService.MultiFilingServicePort)(this)).removeObjectFromFolder(inValue); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.MultiFilingService.addObjectToFolderResponse WcfTestClient.MultiFilingService.MultiFilingServicePort.addObjectToFolder(WcfTestClient.MultiFilingService.addObjectToFolder request) { + return base.Channel.addObjectToFolder(request); + } + + public void addObjectToFolder(string repositoryId, string objectId, string folderId) { + WcfTestClient.MultiFilingService.addObjectToFolder inValue = new WcfTestClient.MultiFilingService.addObjectToFolder(); + inValue.Body = new WcfTestClient.MultiFilingService.addObjectToFolderBody(); + inValue.Body.repositoryId = repositoryId; + inValue.Body.objectId = objectId; + inValue.Body.folderId = folderId; + WcfTestClient.MultiFilingService.addObjectToFolderResponse retVal = ((WcfTestClient.MultiFilingService.MultiFilingServicePort)(this)).addObjectToFolder(inValue); + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.svcmap new file mode 100644 index 0000000000..a8b691386c --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration.svcinfo new file mode 100644 index 0000000000..8385096042 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration91.svcinfo new file mode 100644 index 0000000000..1bae7885bf --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/MultiFilingService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + MultiFilingServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + MultiFilingServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/MultiFilingService + + + + + + basicHttpBinding + + + MultiFilingServiceSoapBinding + + + MultiFilingService.MultiFilingServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + MultiFilingServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationService.wsdl b/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationService.wsdl new file mode 100644 index 0000000000..c05292729b --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationService.wsdl @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationServicePort.wsdl new file mode 100644 index 0000000000..a50192a320 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/NavigationServicePort.wsdl @@ -0,0 +1,1522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.cs b/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.cs new file mode 100644 index 0000000000..e692ed2114 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.cs @@ -0,0 +1,2402 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.NavigationService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.contentAlreadyExistsExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.NavigationService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="NavigationService.NavigationServicePort")] + public interface NavigationServicePort { + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.NavigationService.getCheckedoutDocsResponse getCheckedoutDocs(WcfTestClient.NavigationService.getCheckedoutDocs request); + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.NavigationService.getChildrenResponse getChildren(WcfTestClient.NavigationService.getChildren request); + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.NavigationService.getObjectParentsResponse getObjectParents(WcfTestClient.NavigationService.getObjectParents request); + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.NavigationService.getFolderParentResponse getFolderParent(WcfTestClient.NavigationService.getFolderParent request); + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.NavigationService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.NavigationService.getDescendantsResponse getDescendants(WcfTestClient.NavigationService.getDescendants request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisPropertiesType propertiesField; + + private cmisAllowableActionsType allowableActionsField; + + private cmisObjectType[] relationshipField; + + private cmisObjectType[] childField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public cmisPropertiesType properties { + get { + return this.propertiesField; + } + set { + this.propertiesField = value; + this.RaisePropertyChanged("properties"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public cmisAllowableActionsType allowableActions { + get { + return this.allowableActionsField; + } + set { + this.allowableActionsField = value; + this.RaisePropertyChanged("allowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("relationship", IsNullable=true, Order=2)] + public cmisObjectType[] relationship { + get { + return this.relationshipField; + } + set { + this.relationshipField = value; + this.RaisePropertyChanged("relationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("child", IsNullable=true, Order=3)] + public cmisObjectType[] child { + get { + return this.childField; + } + set { + this.childField = value; + this.RaisePropertyChanged("child"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=4)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisProperty[] itemsField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBoolean", typeof(cmisPropertyBoolean), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTime", typeof(cmisPropertyDateTime), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimal", typeof(cmisPropertyDecimal), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtml", typeof(cmisPropertyHtml), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyId", typeof(cmisPropertyId), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyInteger", typeof(cmisPropertyInteger), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyString", typeof(cmisPropertyString), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyUri", typeof(cmisPropertyUri), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyXml", typeof(cmisPropertyXml), IsNullable=true, Order=0)] + public cmisProperty[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBoolean : cmisProperty { + + private bool valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumPropertyType { + + /// + boolean, + + /// + id, + + /// + integer, + + /// + datetime, + + /// + @decimal, + + /// + html, + + /// + @string, + + /// + uri, + + /// + xml, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBoolean))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyInteger))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTime))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyString))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimal))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUri))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisProperty : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string indexField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAllowableActionsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string parentIdField; + + private string parentUrlField; + + private bool canDeleteField; + + private bool canDeleteFieldSpecified; + + private bool canUpdatePropertiesField; + + private bool canUpdatePropertiesFieldSpecified; + + private bool canGetPropertiesField; + + private bool canGetPropertiesFieldSpecified; + + private bool canGetRelationshipsField; + + private bool canGetRelationshipsFieldSpecified; + + private bool canGetParentsField; + + private bool canGetParentsFieldSpecified; + + private bool canGetFolderParentField; + + private bool canGetFolderParentFieldSpecified; + + private bool canGetDescendantsField; + + private bool canGetDescendantsFieldSpecified; + + private bool canMoveField; + + private bool canMoveFieldSpecified; + + private bool canDeleteVersionField; + + private bool canDeleteVersionFieldSpecified; + + private bool canDeleteContentField; + + private bool canDeleteContentFieldSpecified; + + private bool canCheckoutField; + + private bool canCheckoutFieldSpecified; + + private bool canCancelCheckoutField; + + private bool canCancelCheckoutFieldSpecified; + + private bool canCheckinField; + + private bool canCheckinFieldSpecified; + + private bool canSetContentField; + + private bool canSetContentFieldSpecified; + + private bool canGetAllVersionsField; + + private bool canGetAllVersionsFieldSpecified; + + private bool canAddToFolderField; + + private bool canAddToFolderFieldSpecified; + + private bool canRemoveFromFolderField; + + private bool canRemoveFromFolderFieldSpecified; + + private bool canViewContentField; + + private bool canViewContentFieldSpecified; + + private bool canAddPolicyField; + + private bool canAddPolicyFieldSpecified; + + private bool canGetAppliedPoliciesField; + + private bool canGetAppliedPoliciesFieldSpecified; + + private bool canRemovePolicyField; + + private bool canRemovePolicyFieldSpecified; + + private bool canGetChildrenField; + + private bool canGetChildrenFieldSpecified; + + private bool canCreateDocumentField; + + private bool canCreateDocumentFieldSpecified; + + private bool canCreateFolderField; + + private bool canCreateFolderFieldSpecified; + + private bool canCreateRelationshipField; + + private bool canCreateRelationshipFieldSpecified; + + private bool canCreatePolicyField; + + private bool canCreatePolicyFieldSpecified; + + private bool canDeleteTreeField; + + private bool canDeleteTreeFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string parentUrl { + get { + return this.parentUrlField; + } + set { + this.parentUrlField = value; + this.RaisePropertyChanged("parentUrl"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool canDelete { + get { + return this.canDeleteField; + } + set { + this.canDeleteField = value; + this.RaisePropertyChanged("canDelete"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteSpecified { + get { + return this.canDeleteFieldSpecified; + } + set { + this.canDeleteFieldSpecified = value; + this.RaisePropertyChanged("canDeleteSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool canUpdateProperties { + get { + return this.canUpdatePropertiesField; + } + set { + this.canUpdatePropertiesField = value; + this.RaisePropertyChanged("canUpdateProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canUpdatePropertiesSpecified { + get { + return this.canUpdatePropertiesFieldSpecified; + } + set { + this.canUpdatePropertiesFieldSpecified = value; + this.RaisePropertyChanged("canUpdatePropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool canGetProperties { + get { + return this.canGetPropertiesField; + } + set { + this.canGetPropertiesField = value; + this.RaisePropertyChanged("canGetProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetPropertiesSpecified { + get { + return this.canGetPropertiesFieldSpecified; + } + set { + this.canGetPropertiesFieldSpecified = value; + this.RaisePropertyChanged("canGetPropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool canGetRelationships { + get { + return this.canGetRelationshipsField; + } + set { + this.canGetRelationshipsField = value; + this.RaisePropertyChanged("canGetRelationships"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetRelationshipsSpecified { + get { + return this.canGetRelationshipsFieldSpecified; + } + set { + this.canGetRelationshipsFieldSpecified = value; + this.RaisePropertyChanged("canGetRelationshipsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool canGetParents { + get { + return this.canGetParentsField; + } + set { + this.canGetParentsField = value; + this.RaisePropertyChanged("canGetParents"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetParentsSpecified { + get { + return this.canGetParentsFieldSpecified; + } + set { + this.canGetParentsFieldSpecified = value; + this.RaisePropertyChanged("canGetParentsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool canGetFolderParent { + get { + return this.canGetFolderParentField; + } + set { + this.canGetFolderParentField = value; + this.RaisePropertyChanged("canGetFolderParent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetFolderParentSpecified { + get { + return this.canGetFolderParentFieldSpecified; + } + set { + this.canGetFolderParentFieldSpecified = value; + this.RaisePropertyChanged("canGetFolderParentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool canGetDescendants { + get { + return this.canGetDescendantsField; + } + set { + this.canGetDescendantsField = value; + this.RaisePropertyChanged("canGetDescendants"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetDescendantsSpecified { + get { + return this.canGetDescendantsFieldSpecified; + } + set { + this.canGetDescendantsFieldSpecified = value; + this.RaisePropertyChanged("canGetDescendantsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool canMove { + get { + return this.canMoveField; + } + set { + this.canMoveField = value; + this.RaisePropertyChanged("canMove"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canMoveSpecified { + get { + return this.canMoveFieldSpecified; + } + set { + this.canMoveFieldSpecified = value; + this.RaisePropertyChanged("canMoveSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool canDeleteVersion { + get { + return this.canDeleteVersionField; + } + set { + this.canDeleteVersionField = value; + this.RaisePropertyChanged("canDeleteVersion"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteVersionSpecified { + get { + return this.canDeleteVersionFieldSpecified; + } + set { + this.canDeleteVersionFieldSpecified = value; + this.RaisePropertyChanged("canDeleteVersionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool canDeleteContent { + get { + return this.canDeleteContentField; + } + set { + this.canDeleteContentField = value; + this.RaisePropertyChanged("canDeleteContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteContentSpecified { + get { + return this.canDeleteContentFieldSpecified; + } + set { + this.canDeleteContentFieldSpecified = value; + this.RaisePropertyChanged("canDeleteContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool canCheckout { + get { + return this.canCheckoutField; + } + set { + this.canCheckoutField = value; + this.RaisePropertyChanged("canCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckoutSpecified { + get { + return this.canCheckoutFieldSpecified; + } + set { + this.canCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool canCancelCheckout { + get { + return this.canCancelCheckoutField; + } + set { + this.canCancelCheckoutField = value; + this.RaisePropertyChanged("canCancelCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCancelCheckoutSpecified { + get { + return this.canCancelCheckoutFieldSpecified; + } + set { + this.canCancelCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCancelCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool canCheckin { + get { + return this.canCheckinField; + } + set { + this.canCheckinField = value; + this.RaisePropertyChanged("canCheckin"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckinSpecified { + get { + return this.canCheckinFieldSpecified; + } + set { + this.canCheckinFieldSpecified = value; + this.RaisePropertyChanged("canCheckinSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool canSetContent { + get { + return this.canSetContentField; + } + set { + this.canSetContentField = value; + this.RaisePropertyChanged("canSetContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canSetContentSpecified { + get { + return this.canSetContentFieldSpecified; + } + set { + this.canSetContentFieldSpecified = value; + this.RaisePropertyChanged("canSetContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public bool canGetAllVersions { + get { + return this.canGetAllVersionsField; + } + set { + this.canGetAllVersionsField = value; + this.RaisePropertyChanged("canGetAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAllVersionsSpecified { + get { + return this.canGetAllVersionsFieldSpecified; + } + set { + this.canGetAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("canGetAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool canAddToFolder { + get { + return this.canAddToFolderField; + } + set { + this.canAddToFolderField = value; + this.RaisePropertyChanged("canAddToFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddToFolderSpecified { + get { + return this.canAddToFolderFieldSpecified; + } + set { + this.canAddToFolderFieldSpecified = value; + this.RaisePropertyChanged("canAddToFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool canRemoveFromFolder { + get { + return this.canRemoveFromFolderField; + } + set { + this.canRemoveFromFolderField = value; + this.RaisePropertyChanged("canRemoveFromFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemoveFromFolderSpecified { + get { + return this.canRemoveFromFolderFieldSpecified; + } + set { + this.canRemoveFromFolderFieldSpecified = value; + this.RaisePropertyChanged("canRemoveFromFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool canViewContent { + get { + return this.canViewContentField; + } + set { + this.canViewContentField = value; + this.RaisePropertyChanged("canViewContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canViewContentSpecified { + get { + return this.canViewContentFieldSpecified; + } + set { + this.canViewContentFieldSpecified = value; + this.RaisePropertyChanged("canViewContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool canAddPolicy { + get { + return this.canAddPolicyField; + } + set { + this.canAddPolicyField = value; + this.RaisePropertyChanged("canAddPolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddPolicySpecified { + get { + return this.canAddPolicyFieldSpecified; + } + set { + this.canAddPolicyFieldSpecified = value; + this.RaisePropertyChanged("canAddPolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool canGetAppliedPolicies { + get { + return this.canGetAppliedPoliciesField; + } + set { + this.canGetAppliedPoliciesField = value; + this.RaisePropertyChanged("canGetAppliedPolicies"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAppliedPoliciesSpecified { + get { + return this.canGetAppliedPoliciesFieldSpecified; + } + set { + this.canGetAppliedPoliciesFieldSpecified = value; + this.RaisePropertyChanged("canGetAppliedPoliciesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool canRemovePolicy { + get { + return this.canRemovePolicyField; + } + set { + this.canRemovePolicyField = value; + this.RaisePropertyChanged("canRemovePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemovePolicySpecified { + get { + return this.canRemovePolicyFieldSpecified; + } + set { + this.canRemovePolicyFieldSpecified = value; + this.RaisePropertyChanged("canRemovePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public bool canGetChildren { + get { + return this.canGetChildrenField; + } + set { + this.canGetChildrenField = value; + this.RaisePropertyChanged("canGetChildren"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetChildrenSpecified { + get { + return this.canGetChildrenFieldSpecified; + } + set { + this.canGetChildrenFieldSpecified = value; + this.RaisePropertyChanged("canGetChildrenSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=24)] + public bool canCreateDocument { + get { + return this.canCreateDocumentField; + } + set { + this.canCreateDocumentField = value; + this.RaisePropertyChanged("canCreateDocument"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateDocumentSpecified { + get { + return this.canCreateDocumentFieldSpecified; + } + set { + this.canCreateDocumentFieldSpecified = value; + this.RaisePropertyChanged("canCreateDocumentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=25)] + public bool canCreateFolder { + get { + return this.canCreateFolderField; + } + set { + this.canCreateFolderField = value; + this.RaisePropertyChanged("canCreateFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateFolderSpecified { + get { + return this.canCreateFolderFieldSpecified; + } + set { + this.canCreateFolderFieldSpecified = value; + this.RaisePropertyChanged("canCreateFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=26)] + public bool canCreateRelationship { + get { + return this.canCreateRelationshipField; + } + set { + this.canCreateRelationshipField = value; + this.RaisePropertyChanged("canCreateRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateRelationshipSpecified { + get { + return this.canCreateRelationshipFieldSpecified; + } + set { + this.canCreateRelationshipFieldSpecified = value; + this.RaisePropertyChanged("canCreateRelationshipSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=27)] + public bool canCreatePolicy { + get { + return this.canCreatePolicyField; + } + set { + this.canCreatePolicyField = value; + this.RaisePropertyChanged("canCreatePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreatePolicySpecified { + get { + return this.canCreatePolicyFieldSpecified; + } + set { + this.canCreatePolicyFieldSpecified = value; + this.RaisePropertyChanged("canCreatePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=28)] + public bool canDeleteTree { + get { + return this.canDeleteTreeField; + } + set { + this.canDeleteTreeField = value; + this.RaisePropertyChanged("canDeleteTree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteTreeSpecified { + get { + return this.canDeleteTreeFieldSpecified; + } + set { + this.canDeleteTreeFieldSpecified = value; + this.RaisePropertyChanged("canDeleteTreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=29)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyInteger : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTime : cmisProperty { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyString : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimal : cmisProperty { + + private decimal valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyId : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private string hrefField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")] + public string href { + get { + return this.hrefField; + } + set { + this.hrefField = value; + this.RaisePropertyChanged("href"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUri : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getCheckedoutDocs", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getCheckedoutDocs { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string folderID; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool includeRelationships; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=5)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string maxItems; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=6)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string skipCount; + + public getCheckedoutDocs() { + } + + public getCheckedoutDocs(string repositoryId, string folderID, string filter, bool includeAllowableActions, bool includeRelationships, string maxItems, string skipCount) { + this.repositoryId = repositoryId; + this.folderID = folderID; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + this.maxItems = maxItems; + this.skipCount = skipCount; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getCheckedoutDocsResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getCheckedoutDocsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public bool hasMoreItems; + + public getCheckedoutDocsResponse() { + } + + public getCheckedoutDocsResponse(cmisObjectType[] @object, bool hasMoreItems) { + this.@object = @object; + this.hasMoreItems = hasMoreItems; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumTypesOfFileableObjects { + + /// + documents, + + /// + folders, + + /// + policies, + + /// + any, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getChildren", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getChildren { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string folderId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public WcfTestClient.NavigationService.enumTypesOfFileableObjects type; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=5)] + public bool includeRelationships; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=6)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string maxItems; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=7)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string skipCount; + + public getChildren() { + } + + public getChildren(string repositoryId, string folderId, WcfTestClient.NavigationService.enumTypesOfFileableObjects type, string filter, bool includeAllowableActions, bool includeRelationships, string maxItems, string skipCount) { + this.repositoryId = repositoryId; + this.folderId = folderId; + this.type = type; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + this.maxItems = maxItems; + this.skipCount = skipCount; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getChildrenResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getChildrenResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public bool hasMoreItems; + + public getChildrenResponse() { + } + + public getChildrenResponse(cmisObjectType[] @object, bool hasMoreItems) { + this.@object = @object; + this.hasMoreItems = hasMoreItems; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getObjectParents", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getObjectParents { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string objectId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool includeRelationships; + + public getObjectParents() { + } + + public getObjectParents(string repositoryId, string objectId, string filter, bool includeAllowableActions, bool includeRelationships) { + this.repositoryId = repositoryId; + this.objectId = objectId; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getObjectParentsResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getObjectParentsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + public getObjectParentsResponse() { + } + + public getObjectParentsResponse(cmisObjectType[] @object) { + this.@object = @object; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getFolderParent", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getFolderParent { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string folderId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool includeRelationships; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=5)] + public bool returnToRoot; + + public getFolderParent() { + } + + public getFolderParent(string repositoryId, string folderId, string filter, bool includeAllowableActions, bool includeRelationships, bool returnToRoot) { + this.repositoryId = repositoryId; + this.folderId = folderId; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + this.returnToRoot = returnToRoot; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getFolderParentResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getFolderParentResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + public getFolderParentResponse() { + } + + public getFolderParentResponse(cmisObjectType[] @object) { + this.@object = @object; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getDescendants", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getDescendants { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string folderId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public WcfTestClient.NavigationService.enumTypesOfFileableObjects type; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string depth; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=5)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=6)] + public bool includeRelationships; + + public getDescendants() { + } + + public getDescendants(string repositoryId, string folderId, WcfTestClient.NavigationService.enumTypesOfFileableObjects type, string depth, string filter, bool includeAllowableActions, bool includeRelationships) { + this.repositoryId = repositoryId; + this.folderId = folderId; + this.type = type; + this.depth = depth; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getDescendantsResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getDescendantsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + public getDescendantsResponse() { + } + + public getDescendantsResponse(cmisObjectType[] @object) { + this.@object = @object; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface NavigationServicePortChannel : WcfTestClient.NavigationService.NavigationServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class NavigationServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.NavigationService.NavigationServicePort { + + public NavigationServicePortClient() { + } + + public NavigationServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public NavigationServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public NavigationServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public NavigationServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.NavigationService.getCheckedoutDocsResponse WcfTestClient.NavigationService.NavigationServicePort.getCheckedoutDocs(WcfTestClient.NavigationService.getCheckedoutDocs request) { + return base.Channel.getCheckedoutDocs(request); + } + + public cmisObjectType[] getCheckedoutDocs(string repositoryId, string folderID, string filter, bool includeAllowableActions, bool includeRelationships, string maxItems, string skipCount, out bool hasMoreItems) { + WcfTestClient.NavigationService.getCheckedoutDocs inValue = new WcfTestClient.NavigationService.getCheckedoutDocs(); + inValue.repositoryId = repositoryId; + inValue.folderID = folderID; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + inValue.maxItems = maxItems; + inValue.skipCount = skipCount; + WcfTestClient.NavigationService.getCheckedoutDocsResponse retVal = ((WcfTestClient.NavigationService.NavigationServicePort)(this)).getCheckedoutDocs(inValue); + hasMoreItems = retVal.hasMoreItems; + return retVal.@object; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.NavigationService.getChildrenResponse WcfTestClient.NavigationService.NavigationServicePort.getChildren(WcfTestClient.NavigationService.getChildren request) { + return base.Channel.getChildren(request); + } + + public cmisObjectType[] getChildren(string repositoryId, string folderId, WcfTestClient.NavigationService.enumTypesOfFileableObjects type, string filter, bool includeAllowableActions, bool includeRelationships, string maxItems, string skipCount, out bool hasMoreItems) { + WcfTestClient.NavigationService.getChildren inValue = new WcfTestClient.NavigationService.getChildren(); + inValue.repositoryId = repositoryId; + inValue.folderId = folderId; + inValue.type = type; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + inValue.maxItems = maxItems; + inValue.skipCount = skipCount; + WcfTestClient.NavigationService.getChildrenResponse retVal = ((WcfTestClient.NavigationService.NavigationServicePort)(this)).getChildren(inValue); + hasMoreItems = retVal.hasMoreItems; + return retVal.@object; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.NavigationService.getObjectParentsResponse WcfTestClient.NavigationService.NavigationServicePort.getObjectParents(WcfTestClient.NavigationService.getObjectParents request) { + return base.Channel.getObjectParents(request); + } + + public cmisObjectType[] getObjectParents(string repositoryId, string objectId, string filter, bool includeAllowableActions, bool includeRelationships) { + WcfTestClient.NavigationService.getObjectParents inValue = new WcfTestClient.NavigationService.getObjectParents(); + inValue.repositoryId = repositoryId; + inValue.objectId = objectId; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + WcfTestClient.NavigationService.getObjectParentsResponse retVal = ((WcfTestClient.NavigationService.NavigationServicePort)(this)).getObjectParents(inValue); + return retVal.@object; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.NavigationService.getFolderParentResponse WcfTestClient.NavigationService.NavigationServicePort.getFolderParent(WcfTestClient.NavigationService.getFolderParent request) { + return base.Channel.getFolderParent(request); + } + + public cmisObjectType[] getFolderParent(string repositoryId, string folderId, string filter, bool includeAllowableActions, bool includeRelationships, bool returnToRoot) { + WcfTestClient.NavigationService.getFolderParent inValue = new WcfTestClient.NavigationService.getFolderParent(); + inValue.repositoryId = repositoryId; + inValue.folderId = folderId; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + inValue.returnToRoot = returnToRoot; + WcfTestClient.NavigationService.getFolderParentResponse retVal = ((WcfTestClient.NavigationService.NavigationServicePort)(this)).getFolderParent(inValue); + return retVal.@object; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.NavigationService.getDescendantsResponse WcfTestClient.NavigationService.NavigationServicePort.getDescendants(WcfTestClient.NavigationService.getDescendants request) { + return base.Channel.getDescendants(request); + } + + public cmisObjectType[] getDescendants(string repositoryId, string folderId, WcfTestClient.NavigationService.enumTypesOfFileableObjects type, string depth, string filter, bool includeAllowableActions, bool includeRelationships) { + WcfTestClient.NavigationService.getDescendants inValue = new WcfTestClient.NavigationService.getDescendants(); + inValue.repositoryId = repositoryId; + inValue.folderId = folderId; + inValue.type = type; + inValue.depth = depth; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + WcfTestClient.NavigationService.getDescendantsResponse retVal = ((WcfTestClient.NavigationService.NavigationServicePort)(this)).getDescendants(inValue); + return retVal.@object; + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.svcmap new file mode 100644 index 0000000000..73fc8a46fb --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/WcfCmisWSTests.NavigationService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/NavigationService/WcfCmisWSTests.NavigationService.cmisObjectType.datasource new file mode 100644 index 0000000000..eae9038d96 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/WcfCmisWSTests.NavigationService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.NavigationService.cmisObjectType, Service References.NavigationService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/WcfTestClient.NavigationService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/NavigationService/WcfTestClient.NavigationService.cmisObjectType.datasource new file mode 100644 index 0000000000..5c4b450e23 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/WcfTestClient.NavigationService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.NavigationService.cmisObjectType, Service References.NavigationService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/NavigationService/configuration.svcinfo new file mode 100644 index 0000000000..e7c9e8b789 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/NavigationService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/NavigationService/configuration91.svcinfo new file mode 100644 index 0000000000..a7c2002c27 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/NavigationService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + NavigationServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + NavigationServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/NavigationService + + + + + + basicHttpBinding + + + NavigationServiceSoapBinding + + + NavigationService.NavigationServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + NavigationServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectService.wsdl b/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectService.wsdl new file mode 100644 index 0000000000..76f5aafe0a --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectService.wsdl @@ -0,0 +1,526 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectServicePort.wsdl new file mode 100644 index 0000000000..f46cbb832c --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/ObjectServicePort.wsdl @@ -0,0 +1,1684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.cs b/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.cs new file mode 100644 index 0000000000..feba11abb4 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.cs @@ -0,0 +1,2361 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.ObjectService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.ObjectService.contentAlreadyExistsExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.ObjectService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="ObjectService.ObjectServicePort")] + public interface ObjectServicePort { + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.contentAlreadyExistsExceptionType), Action="", Name="contentAlreadyExistsException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.storageExceptionType), Action="", Name="storageException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.streamNotSupportedExceptionType), Action="", Name="streamNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void setContentStream(string repositoryId, ref string documentId, bool overwriteFlag, WcfTestClient.ObjectService.cmisContentStreamType contentStream); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.typeNotFoundExceptionType), Action="", Name="typeNotFoundException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="objectId")] + string createRelationship(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string sourceObjectId, string targetObjectId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.storageExceptionType), Action="", Name="storageException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.streamNotSupportedExceptionType), Action="", Name="streamNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.typeNotFoundExceptionType), Action="", Name="typeNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="objectId")] + string createDocument(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId, WcfTestClient.ObjectService.cmisContentStreamType contentStream, WcfTestClient.ObjectService.enumVersioningState versioningState); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.storageExceptionType), Action="", Name="storageException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.streamNotSupportedExceptionType), Action="", Name="streamNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.offsetExceptionType), Action="", Name="offsetException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="contentStream")] + WcfTestClient.ObjectService.cmisContentStreamType getContentStream(string repositoryId, string documentId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void updateProperties(string repositoryId, ref string objectId, string changeToken, WcfTestClient.ObjectService.cmisPropertiesType properties); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.typeNotFoundExceptionType), Action="", Name="typeNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="objectId")] + string createFolder(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.notInFolderExceptionType), Action="", Name="notInFolderException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void moveObject(string repositoryId, string objectId, string targetFolderId, string sourceFolderId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.storageExceptionType), Action="", Name="storageException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.streamNotSupportedExceptionType), Action="", Name="streamNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.versioningExceptionType), Action="", Name="versioningException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void deleteContentStream(string repositoryId, string documentId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void deleteObject(string repositoryId, string objectId); + + // CODEGEN: Parameter 'failedToDelete' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlArrayItemAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="failedToDelete")] + WcfTestClient.ObjectService.deleteTreeResponse deleteTree(WcfTestClient.ObjectService.deleteTree request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.ObjectService.cmisObjectType getProperties(string repositoryId, string objectId, WcfTestClient.ObjectService.enumReturnVersion returnVersion, string filter, bool includeAllowableActions, bool includeRelationships); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.typeNotFoundExceptionType), Action="", Name="typeNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.folderNotValidExceptionType), Action="", Name="folderNotValidException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="objectId")] + string createPolicy(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.ObjectService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="allowableActions")] + WcfTestClient.ObjectService.cmisAllowableActionsType getAllowableActions(string repositoryId, string objectId); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisContentStreamType : object, System.ComponentModel.INotifyPropertyChanged { + + private string lengthField; + + private string mimeTypeField; + + private string filenameField; + + private string uriField; + + private byte[] streamField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string length { + get { + return this.lengthField; + } + set { + this.lengthField = value; + this.RaisePropertyChanged("length"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string mimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("mimeType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string filename { + get { + return this.filenameField; + } + set { + this.filenameField = value; + this.RaisePropertyChanged("filename"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=3)] + public string uri { + get { + return this.uriField; + } + set { + this.uriField = value; + this.RaisePropertyChanged("uri"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] stream { + get { + return this.streamField; + } + set { + this.streamField = value; + this.RaisePropertyChanged("stream"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=5)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAllowableActionsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string parentIdField; + + private string parentUrlField; + + private bool canDeleteField; + + private bool canDeleteFieldSpecified; + + private bool canUpdatePropertiesField; + + private bool canUpdatePropertiesFieldSpecified; + + private bool canGetPropertiesField; + + private bool canGetPropertiesFieldSpecified; + + private bool canGetRelationshipsField; + + private bool canGetRelationshipsFieldSpecified; + + private bool canGetParentsField; + + private bool canGetParentsFieldSpecified; + + private bool canGetFolderParentField; + + private bool canGetFolderParentFieldSpecified; + + private bool canGetDescendantsField; + + private bool canGetDescendantsFieldSpecified; + + private bool canMoveField; + + private bool canMoveFieldSpecified; + + private bool canDeleteVersionField; + + private bool canDeleteVersionFieldSpecified; + + private bool canDeleteContentField; + + private bool canDeleteContentFieldSpecified; + + private bool canCheckoutField; + + private bool canCheckoutFieldSpecified; + + private bool canCancelCheckoutField; + + private bool canCancelCheckoutFieldSpecified; + + private bool canCheckinField; + + private bool canCheckinFieldSpecified; + + private bool canSetContentField; + + private bool canSetContentFieldSpecified; + + private bool canGetAllVersionsField; + + private bool canGetAllVersionsFieldSpecified; + + private bool canAddToFolderField; + + private bool canAddToFolderFieldSpecified; + + private bool canRemoveFromFolderField; + + private bool canRemoveFromFolderFieldSpecified; + + private bool canViewContentField; + + private bool canViewContentFieldSpecified; + + private bool canAddPolicyField; + + private bool canAddPolicyFieldSpecified; + + private bool canGetAppliedPoliciesField; + + private bool canGetAppliedPoliciesFieldSpecified; + + private bool canRemovePolicyField; + + private bool canRemovePolicyFieldSpecified; + + private bool canGetChildrenField; + + private bool canGetChildrenFieldSpecified; + + private bool canCreateDocumentField; + + private bool canCreateDocumentFieldSpecified; + + private bool canCreateFolderField; + + private bool canCreateFolderFieldSpecified; + + private bool canCreateRelationshipField; + + private bool canCreateRelationshipFieldSpecified; + + private bool canCreatePolicyField; + + private bool canCreatePolicyFieldSpecified; + + private bool canDeleteTreeField; + + private bool canDeleteTreeFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string parentUrl { + get { + return this.parentUrlField; + } + set { + this.parentUrlField = value; + this.RaisePropertyChanged("parentUrl"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool canDelete { + get { + return this.canDeleteField; + } + set { + this.canDeleteField = value; + this.RaisePropertyChanged("canDelete"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteSpecified { + get { + return this.canDeleteFieldSpecified; + } + set { + this.canDeleteFieldSpecified = value; + this.RaisePropertyChanged("canDeleteSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool canUpdateProperties { + get { + return this.canUpdatePropertiesField; + } + set { + this.canUpdatePropertiesField = value; + this.RaisePropertyChanged("canUpdateProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canUpdatePropertiesSpecified { + get { + return this.canUpdatePropertiesFieldSpecified; + } + set { + this.canUpdatePropertiesFieldSpecified = value; + this.RaisePropertyChanged("canUpdatePropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool canGetProperties { + get { + return this.canGetPropertiesField; + } + set { + this.canGetPropertiesField = value; + this.RaisePropertyChanged("canGetProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetPropertiesSpecified { + get { + return this.canGetPropertiesFieldSpecified; + } + set { + this.canGetPropertiesFieldSpecified = value; + this.RaisePropertyChanged("canGetPropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool canGetRelationships { + get { + return this.canGetRelationshipsField; + } + set { + this.canGetRelationshipsField = value; + this.RaisePropertyChanged("canGetRelationships"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetRelationshipsSpecified { + get { + return this.canGetRelationshipsFieldSpecified; + } + set { + this.canGetRelationshipsFieldSpecified = value; + this.RaisePropertyChanged("canGetRelationshipsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool canGetParents { + get { + return this.canGetParentsField; + } + set { + this.canGetParentsField = value; + this.RaisePropertyChanged("canGetParents"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetParentsSpecified { + get { + return this.canGetParentsFieldSpecified; + } + set { + this.canGetParentsFieldSpecified = value; + this.RaisePropertyChanged("canGetParentsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool canGetFolderParent { + get { + return this.canGetFolderParentField; + } + set { + this.canGetFolderParentField = value; + this.RaisePropertyChanged("canGetFolderParent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetFolderParentSpecified { + get { + return this.canGetFolderParentFieldSpecified; + } + set { + this.canGetFolderParentFieldSpecified = value; + this.RaisePropertyChanged("canGetFolderParentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool canGetDescendants { + get { + return this.canGetDescendantsField; + } + set { + this.canGetDescendantsField = value; + this.RaisePropertyChanged("canGetDescendants"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetDescendantsSpecified { + get { + return this.canGetDescendantsFieldSpecified; + } + set { + this.canGetDescendantsFieldSpecified = value; + this.RaisePropertyChanged("canGetDescendantsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool canMove { + get { + return this.canMoveField; + } + set { + this.canMoveField = value; + this.RaisePropertyChanged("canMove"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canMoveSpecified { + get { + return this.canMoveFieldSpecified; + } + set { + this.canMoveFieldSpecified = value; + this.RaisePropertyChanged("canMoveSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool canDeleteVersion { + get { + return this.canDeleteVersionField; + } + set { + this.canDeleteVersionField = value; + this.RaisePropertyChanged("canDeleteVersion"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteVersionSpecified { + get { + return this.canDeleteVersionFieldSpecified; + } + set { + this.canDeleteVersionFieldSpecified = value; + this.RaisePropertyChanged("canDeleteVersionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool canDeleteContent { + get { + return this.canDeleteContentField; + } + set { + this.canDeleteContentField = value; + this.RaisePropertyChanged("canDeleteContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteContentSpecified { + get { + return this.canDeleteContentFieldSpecified; + } + set { + this.canDeleteContentFieldSpecified = value; + this.RaisePropertyChanged("canDeleteContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool canCheckout { + get { + return this.canCheckoutField; + } + set { + this.canCheckoutField = value; + this.RaisePropertyChanged("canCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckoutSpecified { + get { + return this.canCheckoutFieldSpecified; + } + set { + this.canCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool canCancelCheckout { + get { + return this.canCancelCheckoutField; + } + set { + this.canCancelCheckoutField = value; + this.RaisePropertyChanged("canCancelCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCancelCheckoutSpecified { + get { + return this.canCancelCheckoutFieldSpecified; + } + set { + this.canCancelCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCancelCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool canCheckin { + get { + return this.canCheckinField; + } + set { + this.canCheckinField = value; + this.RaisePropertyChanged("canCheckin"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckinSpecified { + get { + return this.canCheckinFieldSpecified; + } + set { + this.canCheckinFieldSpecified = value; + this.RaisePropertyChanged("canCheckinSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool canSetContent { + get { + return this.canSetContentField; + } + set { + this.canSetContentField = value; + this.RaisePropertyChanged("canSetContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canSetContentSpecified { + get { + return this.canSetContentFieldSpecified; + } + set { + this.canSetContentFieldSpecified = value; + this.RaisePropertyChanged("canSetContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public bool canGetAllVersions { + get { + return this.canGetAllVersionsField; + } + set { + this.canGetAllVersionsField = value; + this.RaisePropertyChanged("canGetAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAllVersionsSpecified { + get { + return this.canGetAllVersionsFieldSpecified; + } + set { + this.canGetAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("canGetAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool canAddToFolder { + get { + return this.canAddToFolderField; + } + set { + this.canAddToFolderField = value; + this.RaisePropertyChanged("canAddToFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddToFolderSpecified { + get { + return this.canAddToFolderFieldSpecified; + } + set { + this.canAddToFolderFieldSpecified = value; + this.RaisePropertyChanged("canAddToFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool canRemoveFromFolder { + get { + return this.canRemoveFromFolderField; + } + set { + this.canRemoveFromFolderField = value; + this.RaisePropertyChanged("canRemoveFromFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemoveFromFolderSpecified { + get { + return this.canRemoveFromFolderFieldSpecified; + } + set { + this.canRemoveFromFolderFieldSpecified = value; + this.RaisePropertyChanged("canRemoveFromFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool canViewContent { + get { + return this.canViewContentField; + } + set { + this.canViewContentField = value; + this.RaisePropertyChanged("canViewContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canViewContentSpecified { + get { + return this.canViewContentFieldSpecified; + } + set { + this.canViewContentFieldSpecified = value; + this.RaisePropertyChanged("canViewContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool canAddPolicy { + get { + return this.canAddPolicyField; + } + set { + this.canAddPolicyField = value; + this.RaisePropertyChanged("canAddPolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddPolicySpecified { + get { + return this.canAddPolicyFieldSpecified; + } + set { + this.canAddPolicyFieldSpecified = value; + this.RaisePropertyChanged("canAddPolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool canGetAppliedPolicies { + get { + return this.canGetAppliedPoliciesField; + } + set { + this.canGetAppliedPoliciesField = value; + this.RaisePropertyChanged("canGetAppliedPolicies"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAppliedPoliciesSpecified { + get { + return this.canGetAppliedPoliciesFieldSpecified; + } + set { + this.canGetAppliedPoliciesFieldSpecified = value; + this.RaisePropertyChanged("canGetAppliedPoliciesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool canRemovePolicy { + get { + return this.canRemovePolicyField; + } + set { + this.canRemovePolicyField = value; + this.RaisePropertyChanged("canRemovePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemovePolicySpecified { + get { + return this.canRemovePolicyFieldSpecified; + } + set { + this.canRemovePolicyFieldSpecified = value; + this.RaisePropertyChanged("canRemovePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public bool canGetChildren { + get { + return this.canGetChildrenField; + } + set { + this.canGetChildrenField = value; + this.RaisePropertyChanged("canGetChildren"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetChildrenSpecified { + get { + return this.canGetChildrenFieldSpecified; + } + set { + this.canGetChildrenFieldSpecified = value; + this.RaisePropertyChanged("canGetChildrenSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=24)] + public bool canCreateDocument { + get { + return this.canCreateDocumentField; + } + set { + this.canCreateDocumentField = value; + this.RaisePropertyChanged("canCreateDocument"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateDocumentSpecified { + get { + return this.canCreateDocumentFieldSpecified; + } + set { + this.canCreateDocumentFieldSpecified = value; + this.RaisePropertyChanged("canCreateDocumentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=25)] + public bool canCreateFolder { + get { + return this.canCreateFolderField; + } + set { + this.canCreateFolderField = value; + this.RaisePropertyChanged("canCreateFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateFolderSpecified { + get { + return this.canCreateFolderFieldSpecified; + } + set { + this.canCreateFolderFieldSpecified = value; + this.RaisePropertyChanged("canCreateFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=26)] + public bool canCreateRelationship { + get { + return this.canCreateRelationshipField; + } + set { + this.canCreateRelationshipField = value; + this.RaisePropertyChanged("canCreateRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateRelationshipSpecified { + get { + return this.canCreateRelationshipFieldSpecified; + } + set { + this.canCreateRelationshipFieldSpecified = value; + this.RaisePropertyChanged("canCreateRelationshipSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=27)] + public bool canCreatePolicy { + get { + return this.canCreatePolicyField; + } + set { + this.canCreatePolicyField = value; + this.RaisePropertyChanged("canCreatePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreatePolicySpecified { + get { + return this.canCreatePolicyFieldSpecified; + } + set { + this.canCreatePolicyFieldSpecified = value; + this.RaisePropertyChanged("canCreatePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=28)] + public bool canDeleteTree { + get { + return this.canDeleteTreeField; + } + set { + this.canDeleteTreeField = value; + this.RaisePropertyChanged("canDeleteTree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteTreeSpecified { + get { + return this.canDeleteTreeFieldSpecified; + } + set { + this.canDeleteTreeFieldSpecified = value; + this.RaisePropertyChanged("canDeleteTreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=29)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisPropertiesType propertiesField; + + private cmisAllowableActionsType allowableActionsField; + + private cmisObjectType[] relationshipField; + + private cmisObjectType[] childField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public cmisPropertiesType properties { + get { + return this.propertiesField; + } + set { + this.propertiesField = value; + this.RaisePropertyChanged("properties"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public cmisAllowableActionsType allowableActions { + get { + return this.allowableActionsField; + } + set { + this.allowableActionsField = value; + this.RaisePropertyChanged("allowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("relationship", IsNullable=true, Order=2)] + public cmisObjectType[] relationship { + get { + return this.relationshipField; + } + set { + this.relationshipField = value; + this.RaisePropertyChanged("relationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("child", IsNullable=true, Order=3)] + public cmisObjectType[] child { + get { + return this.childField; + } + set { + this.childField = value; + this.RaisePropertyChanged("child"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=4)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisProperty[] itemsField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBoolean", typeof(cmisPropertyBoolean), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTime", typeof(cmisPropertyDateTime), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimal", typeof(cmisPropertyDecimal), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtml", typeof(cmisPropertyHtml), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyId", typeof(cmisPropertyId), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyInteger", typeof(cmisPropertyInteger), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyString", typeof(cmisPropertyString), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyUri", typeof(cmisPropertyUri), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyXml", typeof(cmisPropertyXml), IsNullable=true, Order=0)] + public cmisProperty[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBoolean : cmisProperty { + + private bool valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumPropertyType { + + /// + boolean, + + /// + id, + + /// + integer, + + /// + datetime, + + /// + @decimal, + + /// + html, + + /// + @string, + + /// + uri, + + /// + xml, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBoolean))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyInteger))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTime))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyString))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimal))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUri))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisProperty : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string indexField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyInteger : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTime : cmisProperty { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyString : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimal : cmisProperty { + + private decimal valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyId : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private string hrefField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")] + public string href { + get { + return this.hrefField; + } + set { + this.hrefField = value; + this.RaisePropertyChanged("href"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUri : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumVersioningState { + + /// + checkedout, + + /// + minor, + + /// + major, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumUnfileNonfolderObjects { + + /// + unfile, + + /// + deletesinglefiled, + + /// + delete, + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="deleteTree", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class deleteTree { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string folderId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public WcfTestClient.ObjectService.enumUnfileNonfolderObjects unfileNonfolderObjects; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public bool continueOnFailure; + + public deleteTree() { + } + + public deleteTree(string repositoryId, string folderId, WcfTestClient.ObjectService.enumUnfileNonfolderObjects unfileNonfolderObjects, bool continueOnFailure) { + this.repositoryId = repositoryId; + this.folderId = folderId; + this.unfileNonfolderObjects = unfileNonfolderObjects; + this.continueOnFailure = continueOnFailure; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="deleteTreeResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class deleteTreeResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlArrayItemAttribute("objectId")] + public string[] failedToDelete; + + public deleteTreeResponse() { + } + + public deleteTreeResponse(string[] failedToDelete) { + this.failedToDelete = failedToDelete; + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumReturnVersion { + + /// + @this, + + /// + latest, + + /// + latestmajor, + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface ObjectServicePortChannel : WcfTestClient.ObjectService.ObjectServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class ObjectServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.ObjectService.ObjectServicePort { + + public ObjectServicePortClient() { + } + + public ObjectServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public ObjectServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ObjectServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public ObjectServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + public void setContentStream(string repositoryId, ref string documentId, bool overwriteFlag, WcfTestClient.ObjectService.cmisContentStreamType contentStream) { + base.Channel.setContentStream(repositoryId, ref documentId, overwriteFlag, contentStream); + } + + public string createRelationship(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string sourceObjectId, string targetObjectId) { + return base.Channel.createRelationship(repositoryId, typeId, properties, sourceObjectId, targetObjectId); + } + + public string createDocument(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId, WcfTestClient.ObjectService.cmisContentStreamType contentStream, WcfTestClient.ObjectService.enumVersioningState versioningState) { + return base.Channel.createDocument(repositoryId, typeId, properties, folderId, contentStream, versioningState); + } + + public WcfTestClient.ObjectService.cmisContentStreamType getContentStream(string repositoryId, string documentId) { + return base.Channel.getContentStream(repositoryId, documentId); + } + + public void updateProperties(string repositoryId, ref string objectId, string changeToken, WcfTestClient.ObjectService.cmisPropertiesType properties) { + base.Channel.updateProperties(repositoryId, ref objectId, changeToken, properties); + } + + public string createFolder(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId) { + return base.Channel.createFolder(repositoryId, typeId, properties, folderId); + } + + public void moveObject(string repositoryId, string objectId, string targetFolderId, string sourceFolderId) { + base.Channel.moveObject(repositoryId, objectId, targetFolderId, sourceFolderId); + } + + public void deleteContentStream(string repositoryId, string documentId) { + base.Channel.deleteContentStream(repositoryId, documentId); + } + + public void deleteObject(string repositoryId, string objectId) { + base.Channel.deleteObject(repositoryId, objectId); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.ObjectService.deleteTreeResponse WcfTestClient.ObjectService.ObjectServicePort.deleteTree(WcfTestClient.ObjectService.deleteTree request) { + return base.Channel.deleteTree(request); + } + + public string[] deleteTree(string repositoryId, string folderId, WcfTestClient.ObjectService.enumUnfileNonfolderObjects unfileNonfolderObjects, bool continueOnFailure) { + WcfTestClient.ObjectService.deleteTree inValue = new WcfTestClient.ObjectService.deleteTree(); + inValue.repositoryId = repositoryId; + inValue.folderId = folderId; + inValue.unfileNonfolderObjects = unfileNonfolderObjects; + inValue.continueOnFailure = continueOnFailure; + WcfTestClient.ObjectService.deleteTreeResponse retVal = ((WcfTestClient.ObjectService.ObjectServicePort)(this)).deleteTree(inValue); + return retVal.failedToDelete; + } + + public WcfTestClient.ObjectService.cmisObjectType getProperties(string repositoryId, string objectId, WcfTestClient.ObjectService.enumReturnVersion returnVersion, string filter, bool includeAllowableActions, bool includeRelationships) { + return base.Channel.getProperties(repositoryId, objectId, returnVersion, filter, includeAllowableActions, includeRelationships); + } + + public string createPolicy(string repositoryId, string typeId, WcfTestClient.ObjectService.cmisPropertiesType properties, string folderId) { + return base.Channel.createPolicy(repositoryId, typeId, properties, folderId); + } + + public WcfTestClient.ObjectService.cmisAllowableActionsType getAllowableActions(string repositoryId, string objectId) { + return base.Channel.getAllowableActions(repositoryId, objectId); + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.svcmap new file mode 100644 index 0000000000..47c59c823b --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisAllowableActionsType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisAllowableActionsType.datasource new file mode 100644 index 0000000000..fc2a97ca4f --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisAllowableActionsType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.ObjectService.cmisAllowableActionsType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisContentStreamType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisContentStreamType.datasource new file mode 100644 index 0000000000..2f0b5b9770 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisContentStreamType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.ObjectService.cmisContentStreamType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisObjectType.datasource new file mode 100644 index 0000000000..5b2a638846 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfCmisWSTests.ObjectService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.ObjectService.cmisObjectType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisAllowableActionsType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisAllowableActionsType.datasource new file mode 100644 index 0000000000..a04daf993a --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisAllowableActionsType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.ObjectService.cmisAllowableActionsType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisContentStreamType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisContentStreamType.datasource new file mode 100644 index 0000000000..68da2dddb9 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisContentStreamType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.ObjectService.cmisContentStreamType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisObjectType.datasource new file mode 100644 index 0000000000..614466b2b4 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/WcfTestClient.ObjectService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.ObjectService.cmisObjectType, Service References.ObjectService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/ObjectService/configuration.svcinfo new file mode 100644 index 0000000000..6b7ccc72b5 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/ObjectService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/ObjectService/configuration91.svcinfo new file mode 100644 index 0000000000..bc3c1e8c19 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/ObjectService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + ObjectServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + ObjectServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/ObjectService + + + + + + basicHttpBinding + + + ObjectServiceSoapBinding + + + ObjectService.ObjectServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + ObjectServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.cs b/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.cs new file mode 100644 index 0000000000..0f6949f325 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.cs @@ -0,0 +1,4685 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.RepositoryService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.contentAlreadyExistsExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.RepositoryService.invalidArgumentExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.RepositoryService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="RepositoryService.RepositoryServicePort")] + public interface RepositoryServicePort { + + // CODEGEN: Parameter 'Item' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.typeNotFoundExceptionType), Action="", Name="typeNotFoundException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisContentStreamType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisFaultType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisRepositoryInfoType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisQueryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisPropertyDefinitionType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="Item")] + WcfTestClient.RepositoryService.getTypeDefinitionResponse getTypeDefinition(WcfTestClient.RepositoryService.getTypeDefinition request); + + // CODEGEN: Generating message contract since message part namespace () does not match the default value (http://www.cmis.org/2008/05) + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisContentStreamType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisFaultType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisRepositoryInfoType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisQueryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisPropertyDefinitionType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + WcfTestClient.RepositoryService.getRepositoryInfoResponse getRepositoryInfo(WcfTestClient.RepositoryService.getRepositoryInfo request); + + // CODEGEN: Parameter 'repository' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisContentStreamType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisFaultType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisRepositoryInfoType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisQueryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisPropertyDefinitionType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="repository")] + WcfTestClient.RepositoryService.getRepositoriesResponse getRepositories(WcfTestClient.RepositoryService.getRepositories request); + + // CODEGEN: Parameter 'Items' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.RepositoryService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisContentStreamType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisFaultType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisRepositoryInfoType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisQueryType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisPropertyDefinitionType))] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="Items")] + WcfTestClient.RepositoryService.getTypesResponse getTypes(WcfTestClient.RepositoryService.getTypes request); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisTypeDocumentDefinitionType : cmisTypeDefinitionType { + + private bool versionableField; + + private enumContentStreamAllowed contentStreamAllowedField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool versionable { + get { + return this.versionableField; + } + set { + this.versionableField = value; + this.RaisePropertyChanged("versionable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public enumContentStreamAllowed contentStreamAllowed { + get { + return this.contentStreamAllowedField; + } + set { + this.contentStreamAllowedField = value; + this.RaisePropertyChanged("contentStreamAllowed"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumContentStreamAllowed { + + /// + notallowed, + + /// + allowed, + + /// + required, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypePolicyDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeRelationshipDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeFolderDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisTypeDocumentDefinitionType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisTypeDefinitionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string typeIdField; + + private string queryNameField; + + private string displayNameField; + + private enumObjectType baseTypeField; + + private string baseTypeQueryNameField; + + private object parentIdField; + + private string descriptionField; + + private bool creatableField; + + private bool fileableField; + + private bool queryableField; + + private bool controllableField; + + private bool includedInSupertypeQueryField; + + private cmisPropertyDefinitionType[] itemsField; + + private System.Xml.XmlElement[] anyField; + + public cmisTypeDefinitionType() { + this.includedInSupertypeQueryField = true; + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string typeId { + get { + return this.typeIdField; + } + set { + this.typeIdField = value; + this.RaisePropertyChanged("typeId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string queryName { + get { + return this.queryNameField; + } + set { + this.queryNameField = value; + this.RaisePropertyChanged("queryName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string displayName { + get { + return this.displayNameField; + } + set { + this.displayNameField = value; + this.RaisePropertyChanged("displayName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public enumObjectType baseType { + get { + return this.baseTypeField; + } + set { + this.baseTypeField = value; + this.RaisePropertyChanged("baseType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string baseTypeQueryName { + get { + return this.baseTypeQueryNameField; + } + set { + this.baseTypeQueryNameField = value; + this.RaisePropertyChanged("baseTypeQueryName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public object parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool creatable { + get { + return this.creatableField; + } + set { + this.creatableField = value; + this.RaisePropertyChanged("creatable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool fileable { + get { + return this.fileableField; + } + set { + this.fileableField = value; + this.RaisePropertyChanged("fileable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool queryable { + get { + return this.queryableField; + } + set { + this.queryableField = value; + this.RaisePropertyChanged("queryable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool controllable { + get { + return this.controllableField; + } + set { + this.controllableField = value; + this.RaisePropertyChanged("controllable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool includedInSupertypeQuery { + get { + return this.includedInSupertypeQueryField; + } + set { + this.includedInSupertypeQueryField = value; + this.RaisePropertyChanged("includedInSupertypeQuery"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBooleanDefinition", typeof(cmisPropertyBooleanDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTimeDefinition", typeof(cmisPropertyDateTimeDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimalDefinition", typeof(cmisPropertyDecimalDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtmlDefinition", typeof(cmisPropertyHtmlDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyIdDefinition", typeof(cmisPropertyIdDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyIntegerDefinition", typeof(cmisPropertyIntegerDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyStringDefinition", typeof(cmisPropertyStringDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyUriDefinition", typeof(cmisPropertyUriDefinitionType), Order=12)] + [System.Xml.Serialization.XmlElementAttribute("propertyXmlDefinition", typeof(cmisPropertyXmlDefinitionType), Order=12)] + public cmisPropertyDefinitionType[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=13)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumObjectType { + + /// + document, + + /// + folder, + + /// + relationship, + + /// + policy, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisContentStreamType : object, System.ComponentModel.INotifyPropertyChanged { + + private string lengthField; + + private string mimeTypeField; + + private string filenameField; + + private string uriField; + + private byte[] streamField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string length { + get { + return this.lengthField; + } + set { + this.lengthField = value; + this.RaisePropertyChanged("length"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string mimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("mimeType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string filename { + get { + return this.filenameField; + } + set { + this.filenameField = value; + this.RaisePropertyChanged("filename"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=3)] + public string uri { + get { + return this.uriField; + } + set { + this.uriField = value; + this.RaisePropertyChanged("uri"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] stream { + get { + return this.streamField; + } + set { + this.streamField = value; + this.RaisePropertyChanged("stream"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=5)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class contentAlreadyExistsExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class runtimeExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class streamNotSupportedExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class objectNotFoundExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class folderNotValidExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class updateConflictExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class typeNotFoundExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class filterNotValidExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class invalidArgumentExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class versioningExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class constraintViolationExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class offsetExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class storageExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class permissionDeniedExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class operationNotSupportedExceptionType : cmisFaultType { + } + + /// + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class notInFolderExceptionType : cmisFaultType { + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAnyXml : object, System.ComponentModel.INotifyPropertyChanged { + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisRepositoryCapabilitiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private bool capabilityMultifilingField; + + private bool capabilityUnfilingField; + + private bool capabilityVersionSpecificFilingField; + + private bool capabilityPWCUpdateableField; + + private bool capabilityPWCSearchableField; + + private bool capabilityAllVersionsSearchableField; + + private enumCapabilityQuery capabilityQueryField; + + private enumCapabilityJoin capabilityJoinField; + + private enumCapabilityFullText capabilityFullTextField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool capabilityMultifiling { + get { + return this.capabilityMultifilingField; + } + set { + this.capabilityMultifilingField = value; + this.RaisePropertyChanged("capabilityMultifiling"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool capabilityUnfiling { + get { + return this.capabilityUnfilingField; + } + set { + this.capabilityUnfilingField = value; + this.RaisePropertyChanged("capabilityUnfiling"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool capabilityVersionSpecificFiling { + get { + return this.capabilityVersionSpecificFilingField; + } + set { + this.capabilityVersionSpecificFilingField = value; + this.RaisePropertyChanged("capabilityVersionSpecificFiling"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool capabilityPWCUpdateable { + get { + return this.capabilityPWCUpdateableField; + } + set { + this.capabilityPWCUpdateableField = value; + this.RaisePropertyChanged("capabilityPWCUpdateable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool capabilityPWCSearchable { + get { + return this.capabilityPWCSearchableField; + } + set { + this.capabilityPWCSearchableField = value; + this.RaisePropertyChanged("capabilityPWCSearchable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool capabilityAllVersionsSearchable { + get { + return this.capabilityAllVersionsSearchableField; + } + set { + this.capabilityAllVersionsSearchableField = value; + this.RaisePropertyChanged("capabilityAllVersionsSearchable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public enumCapabilityQuery capabilityQuery { + get { + return this.capabilityQueryField; + } + set { + this.capabilityQueryField = value; + this.RaisePropertyChanged("capabilityQuery"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public enumCapabilityJoin capabilityJoin { + get { + return this.capabilityJoinField; + } + set { + this.capabilityJoinField = value; + this.RaisePropertyChanged("capabilityJoin"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public enumCapabilityFullText capabilityFullText { + get { + return this.capabilityFullTextField; + } + set { + this.capabilityFullTextField = value; + this.RaisePropertyChanged("capabilityFullText"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=9)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumCapabilityQuery { + + /// + none, + + /// + metadataonly, + + /// + fulltextonly, + + /// + both, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumCapabilityJoin { + + /// + nojoin, + + /// + inneronly, + + /// + innerandouter, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumCapabilityFullText { + + /// + none, + + /// + fulltextonly, + + /// + fulltextandstructured, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisRepositoryInfoType : object, System.ComponentModel.INotifyPropertyChanged { + + private string repositoryIdField; + + private string repositoryNameField; + + private string repositoryRelationshipField; + + private string repositoryDescriptionField; + + private string vendorNameField; + + private string productNameField; + + private string productVersionField; + + private string rootFolderIdField; + + private cmisRepositoryCapabilitiesType capabilitiesField; + + private string cmisVersionsSupportedField; + + private cmisAnyXml repositorySpecificInformationField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string repositoryId { + get { + return this.repositoryIdField; + } + set { + this.repositoryIdField = value; + this.RaisePropertyChanged("repositoryId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string repositoryName { + get { + return this.repositoryNameField; + } + set { + this.repositoryNameField = value; + this.RaisePropertyChanged("repositoryName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string repositoryRelationship { + get { + return this.repositoryRelationshipField; + } + set { + this.repositoryRelationshipField = value; + this.RaisePropertyChanged("repositoryRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string repositoryDescription { + get { + return this.repositoryDescriptionField; + } + set { + this.repositoryDescriptionField = value; + this.RaisePropertyChanged("repositoryDescription"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public string vendorName { + get { + return this.vendorNameField; + } + set { + this.vendorNameField = value; + this.RaisePropertyChanged("vendorName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public string productName { + get { + return this.productNameField; + } + set { + this.productNameField = value; + this.RaisePropertyChanged("productName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public string productVersion { + get { + return this.productVersionField; + } + set { + this.productVersionField = value; + this.RaisePropertyChanged("productVersion"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public string rootFolderId { + get { + return this.rootFolderIdField; + } + set { + this.rootFolderIdField = value; + this.RaisePropertyChanged("rootFolderId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public cmisRepositoryCapabilitiesType capabilities { + get { + return this.capabilitiesField; + } + set { + this.capabilitiesField = value; + this.RaisePropertyChanged("capabilities"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public string cmisVersionsSupported { + get { + return this.cmisVersionsSupportedField; + } + set { + this.cmisVersionsSupportedField = value; + this.RaisePropertyChanged("cmisVersionsSupported"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public cmisAnyXml repositorySpecificInformation { + get { + return this.repositorySpecificInformationField; + } + set { + this.repositorySpecificInformationField = value; + this.RaisePropertyChanged("repositorySpecificInformation"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=11)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisRepositoryEntryType : object, System.ComponentModel.INotifyPropertyChanged { + + private string repositoryIDField; + + private string repositoryNameField; + + private string repositoryURIField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string repositoryID { + get { + return this.repositoryIDField; + } + set { + this.repositoryIDField = value; + this.RaisePropertyChanged("repositoryID"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string repositoryName { + get { + return this.repositoryNameField; + } + set { + this.repositoryNameField = value; + this.RaisePropertyChanged("repositoryName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=2)] + public string repositoryURI { + get { + return this.repositoryURIField; + } + set { + this.repositoryURIField = value; + this.RaisePropertyChanged("repositoryURI"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=3)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisQueryType : object, System.ComponentModel.INotifyPropertyChanged { + + private string statementField; + + private bool searchAllVersionsField; + + private bool searchAllVersionsFieldSpecified; + + private string pageSizeField; + + private string skipCountField; + + private bool returnAllowableActionsField; + + private bool returnAllowableActionsFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string statement { + get { + return this.statementField; + } + set { + this.statementField = value; + this.RaisePropertyChanged("statement"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public bool searchAllVersions { + get { + return this.searchAllVersionsField; + } + set { + this.searchAllVersionsField = value; + this.RaisePropertyChanged("searchAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool searchAllVersionsSpecified { + get { + return this.searchAllVersionsFieldSpecified; + } + set { + this.searchAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("searchAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=2)] + public string pageSize { + get { + return this.pageSizeField; + } + set { + this.pageSizeField = value; + this.RaisePropertyChanged("pageSize"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=3)] + public string skipCount { + get { + return this.skipCountField; + } + set { + this.skipCountField = value; + this.RaisePropertyChanged("skipCount"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool returnAllowableActions { + get { + return this.returnAllowableActionsField; + } + set { + this.returnAllowableActionsField = value; + this.RaisePropertyChanged("returnAllowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool returnAllowableActionsSpecified { + get { + return this.returnAllowableActionsFieldSpecified; + } + set { + this.returnAllowableActionsFieldSpecified = value; + this.RaisePropertyChanged("returnAllowableActionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=5)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceXmlType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceUriType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceHtmlType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceStringType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceIntegerType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceIdType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceDecimalType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceDateTimeType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisChoiceBooleanType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public abstract partial class cmisChoiceType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisChoiceType[] itemsField; + + private string indexField; + + private string keyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("choice", typeof(cmisChoiceType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceBoolean", typeof(cmisChoiceBooleanType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceDateTime", typeof(cmisChoiceDateTimeType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceDecimal", typeof(cmisChoiceDecimalType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceHtml", typeof(cmisChoiceHtmlType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceId", typeof(cmisChoiceIdType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceInteger", typeof(cmisChoiceIntegerType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceString", typeof(cmisChoiceStringType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceUri", typeof(cmisChoiceUriType), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("choiceXml", typeof(cmisChoiceXmlType), IsNullable=true, Order=0)] + public cmisChoiceType[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string key { + get { + return this.keyField; + } + set { + this.keyField = value; + this.RaisePropertyChanged("key"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceBooleanType : cmisChoiceType { + + private bool valueField; + + private bool valueFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceDateTimeType : cmisChoiceType { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceDecimalType : cmisChoiceType { + + private decimal valueField; + + private bool valueFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceHtmlType : cmisChoiceType { + + private System.Xml.XmlElement[] anyField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceIdType : cmisChoiceType { + + private string valueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceIntegerType : cmisChoiceType { + + private string valueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceStringType : cmisChoiceType { + + private string valueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceUriType : cmisChoiceType { + + private string valueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisChoiceXmlType : cmisChoiceType { + + private System.Xml.XmlElement[] anyField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXmlDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUriDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTimeDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimalDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyStringDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyIdDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBooleanDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyIntegerDefinitionType))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtmlDefinitionType))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDefinitionType : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string idField; + + private string displayNameField; + + private string descriptionField; + + private enumPropertyType propertyTypeField; + + private enumCardinality cardinalityField; + + private enumUpdateability updateabilityField; + + private bool inheritedField; + + private bool inheritedFieldSpecified; + + private bool requiredField; + + private bool queryableField; + + private bool orderableField; + + private cmisChoiceType[] itemsField; + + private bool openChoiceField; + + private bool openChoiceFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string id { + get { + return this.idField; + } + set { + this.idField = value; + this.RaisePropertyChanged("id"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string displayName { + get { + return this.displayNameField; + } + set { + this.displayNameField = value; + this.RaisePropertyChanged("displayName"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public string description { + get { + return this.descriptionField; + } + set { + this.descriptionField = value; + this.RaisePropertyChanged("description"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public enumCardinality cardinality { + get { + return this.cardinalityField; + } + set { + this.cardinalityField = value; + this.RaisePropertyChanged("cardinality"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public enumUpdateability updateability { + get { + return this.updateabilityField; + } + set { + this.updateabilityField = value; + this.RaisePropertyChanged("updateability"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool inherited { + get { + return this.inheritedField; + } + set { + this.inheritedField = value; + this.RaisePropertyChanged("inherited"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool inheritedSpecified { + get { + return this.inheritedFieldSpecified; + } + set { + this.inheritedFieldSpecified = value; + this.RaisePropertyChanged("inheritedSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool required { + get { + return this.requiredField; + } + set { + this.requiredField = value; + this.RaisePropertyChanged("required"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool queryable { + get { + return this.queryableField; + } + set { + this.queryableField = value; + this.RaisePropertyChanged("queryable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool orderable { + get { + return this.orderableField; + } + set { + this.orderableField = value; + this.RaisePropertyChanged("orderable"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("choiceBoolean", typeof(cmisChoiceBooleanType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceDateTime", typeof(cmisChoiceDateTimeType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceDecimal", typeof(cmisChoiceDecimalType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceHtml", typeof(cmisChoiceHtmlType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceId", typeof(cmisChoiceIdType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceInteger", typeof(cmisChoiceIntegerType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceString", typeof(cmisChoiceStringType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceUri", typeof(cmisChoiceUriType), Order=11)] + [System.Xml.Serialization.XmlElementAttribute("choiceXml", typeof(cmisChoiceXmlType), Order=11)] + public cmisChoiceType[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool openChoice { + get { + return this.openChoiceField; + } + set { + this.openChoiceField = value; + this.RaisePropertyChanged("openChoice"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool openChoiceSpecified { + get { + return this.openChoiceFieldSpecified; + } + set { + this.openChoiceFieldSpecified = value; + this.RaisePropertyChanged("openChoiceSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=13)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumPropertyType { + + /// + boolean, + + /// + id, + + /// + integer, + + /// + datetime, + + /// + @decimal, + + /// + html, + + /// + @string, + + /// + uri, + + /// + xml, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumCardinality { + + /// + single, + + /// + multi, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumUpdateability { + + /// + @readonly, + + /// + readwrite, + + /// + whencheckedout, + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXmlDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceXmlType[] defaultValueField; + + private string schemaURIField; + + private string encodingField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceXmlType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=1)] + public string schemaURI { + get { + return this.schemaURIField; + } + set { + this.schemaURIField = value; + this.RaisePropertyChanged("schemaURI"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string encoding { + get { + return this.encodingField; + } + set { + this.encodingField = value; + this.RaisePropertyChanged("encoding"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUriDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceUriType[] defaultValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceUriType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTimeDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceDateTimeType[] defaultValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceDateTimeType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimalDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceDecimalType[] defaultValueField; + + private string precisionField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceDecimalType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string precision { + get { + return this.precisionField; + } + set { + this.precisionField = value; + this.RaisePropertyChanged("precision"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyStringDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceStringType[] defaultValueField; + + private string maxLengthField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceStringType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string maxLength { + get { + return this.maxLengthField; + } + set { + this.maxLengthField = value; + this.RaisePropertyChanged("maxLength"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyIdDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceIdType[] defaultValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceIdType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBooleanDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceBooleanType[] defaultValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceBooleanType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyIntegerDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceIntegerType[] defaultValueField; + + private string maxValueField; + + private string minValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceIntegerType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=1)] + public string maxValue { + get { + return this.maxValueField; + } + set { + this.maxValueField = value; + this.RaisePropertyChanged("maxValue"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=2)] + public string minValue { + get { + return this.minValueField; + } + set { + this.minValueField = value; + this.RaisePropertyChanged("minValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtmlDefinitionType : cmisPropertyDefinitionType { + + private cmisChoiceHtmlType[] defaultValueField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("defaultValue", IsNullable=true, Order=0)] + public cmisChoiceHtmlType[] defaultValue { + get { + return this.defaultValueField; + } + set { + this.defaultValueField = value; + this.RaisePropertyChanged("defaultValue"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAllowableActionsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string parentIdField; + + private string parentUrlField; + + private bool canDeleteField; + + private bool canDeleteFieldSpecified; + + private bool canUpdatePropertiesField; + + private bool canUpdatePropertiesFieldSpecified; + + private bool canGetPropertiesField; + + private bool canGetPropertiesFieldSpecified; + + private bool canGetRelationshipsField; + + private bool canGetRelationshipsFieldSpecified; + + private bool canGetParentsField; + + private bool canGetParentsFieldSpecified; + + private bool canGetFolderParentField; + + private bool canGetFolderParentFieldSpecified; + + private bool canGetDescendantsField; + + private bool canGetDescendantsFieldSpecified; + + private bool canMoveField; + + private bool canMoveFieldSpecified; + + private bool canDeleteVersionField; + + private bool canDeleteVersionFieldSpecified; + + private bool canDeleteContentField; + + private bool canDeleteContentFieldSpecified; + + private bool canCheckoutField; + + private bool canCheckoutFieldSpecified; + + private bool canCancelCheckoutField; + + private bool canCancelCheckoutFieldSpecified; + + private bool canCheckinField; + + private bool canCheckinFieldSpecified; + + private bool canSetContentField; + + private bool canSetContentFieldSpecified; + + private bool canGetAllVersionsField; + + private bool canGetAllVersionsFieldSpecified; + + private bool canAddToFolderField; + + private bool canAddToFolderFieldSpecified; + + private bool canRemoveFromFolderField; + + private bool canRemoveFromFolderFieldSpecified; + + private bool canViewContentField; + + private bool canViewContentFieldSpecified; + + private bool canAddPolicyField; + + private bool canAddPolicyFieldSpecified; + + private bool canGetAppliedPoliciesField; + + private bool canGetAppliedPoliciesFieldSpecified; + + private bool canRemovePolicyField; + + private bool canRemovePolicyFieldSpecified; + + private bool canGetChildrenField; + + private bool canGetChildrenFieldSpecified; + + private bool canCreateDocumentField; + + private bool canCreateDocumentFieldSpecified; + + private bool canCreateFolderField; + + private bool canCreateFolderFieldSpecified; + + private bool canCreateRelationshipField; + + private bool canCreateRelationshipFieldSpecified; + + private bool canCreatePolicyField; + + private bool canCreatePolicyFieldSpecified; + + private bool canDeleteTreeField; + + private bool canDeleteTreeFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string parentUrl { + get { + return this.parentUrlField; + } + set { + this.parentUrlField = value; + this.RaisePropertyChanged("parentUrl"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool canDelete { + get { + return this.canDeleteField; + } + set { + this.canDeleteField = value; + this.RaisePropertyChanged("canDelete"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteSpecified { + get { + return this.canDeleteFieldSpecified; + } + set { + this.canDeleteFieldSpecified = value; + this.RaisePropertyChanged("canDeleteSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool canUpdateProperties { + get { + return this.canUpdatePropertiesField; + } + set { + this.canUpdatePropertiesField = value; + this.RaisePropertyChanged("canUpdateProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canUpdatePropertiesSpecified { + get { + return this.canUpdatePropertiesFieldSpecified; + } + set { + this.canUpdatePropertiesFieldSpecified = value; + this.RaisePropertyChanged("canUpdatePropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool canGetProperties { + get { + return this.canGetPropertiesField; + } + set { + this.canGetPropertiesField = value; + this.RaisePropertyChanged("canGetProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetPropertiesSpecified { + get { + return this.canGetPropertiesFieldSpecified; + } + set { + this.canGetPropertiesFieldSpecified = value; + this.RaisePropertyChanged("canGetPropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool canGetRelationships { + get { + return this.canGetRelationshipsField; + } + set { + this.canGetRelationshipsField = value; + this.RaisePropertyChanged("canGetRelationships"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetRelationshipsSpecified { + get { + return this.canGetRelationshipsFieldSpecified; + } + set { + this.canGetRelationshipsFieldSpecified = value; + this.RaisePropertyChanged("canGetRelationshipsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool canGetParents { + get { + return this.canGetParentsField; + } + set { + this.canGetParentsField = value; + this.RaisePropertyChanged("canGetParents"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetParentsSpecified { + get { + return this.canGetParentsFieldSpecified; + } + set { + this.canGetParentsFieldSpecified = value; + this.RaisePropertyChanged("canGetParentsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool canGetFolderParent { + get { + return this.canGetFolderParentField; + } + set { + this.canGetFolderParentField = value; + this.RaisePropertyChanged("canGetFolderParent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetFolderParentSpecified { + get { + return this.canGetFolderParentFieldSpecified; + } + set { + this.canGetFolderParentFieldSpecified = value; + this.RaisePropertyChanged("canGetFolderParentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool canGetDescendants { + get { + return this.canGetDescendantsField; + } + set { + this.canGetDescendantsField = value; + this.RaisePropertyChanged("canGetDescendants"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetDescendantsSpecified { + get { + return this.canGetDescendantsFieldSpecified; + } + set { + this.canGetDescendantsFieldSpecified = value; + this.RaisePropertyChanged("canGetDescendantsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool canMove { + get { + return this.canMoveField; + } + set { + this.canMoveField = value; + this.RaisePropertyChanged("canMove"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canMoveSpecified { + get { + return this.canMoveFieldSpecified; + } + set { + this.canMoveFieldSpecified = value; + this.RaisePropertyChanged("canMoveSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool canDeleteVersion { + get { + return this.canDeleteVersionField; + } + set { + this.canDeleteVersionField = value; + this.RaisePropertyChanged("canDeleteVersion"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteVersionSpecified { + get { + return this.canDeleteVersionFieldSpecified; + } + set { + this.canDeleteVersionFieldSpecified = value; + this.RaisePropertyChanged("canDeleteVersionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool canDeleteContent { + get { + return this.canDeleteContentField; + } + set { + this.canDeleteContentField = value; + this.RaisePropertyChanged("canDeleteContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteContentSpecified { + get { + return this.canDeleteContentFieldSpecified; + } + set { + this.canDeleteContentFieldSpecified = value; + this.RaisePropertyChanged("canDeleteContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool canCheckout { + get { + return this.canCheckoutField; + } + set { + this.canCheckoutField = value; + this.RaisePropertyChanged("canCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckoutSpecified { + get { + return this.canCheckoutFieldSpecified; + } + set { + this.canCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool canCancelCheckout { + get { + return this.canCancelCheckoutField; + } + set { + this.canCancelCheckoutField = value; + this.RaisePropertyChanged("canCancelCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCancelCheckoutSpecified { + get { + return this.canCancelCheckoutFieldSpecified; + } + set { + this.canCancelCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCancelCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool canCheckin { + get { + return this.canCheckinField; + } + set { + this.canCheckinField = value; + this.RaisePropertyChanged("canCheckin"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckinSpecified { + get { + return this.canCheckinFieldSpecified; + } + set { + this.canCheckinFieldSpecified = value; + this.RaisePropertyChanged("canCheckinSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool canSetContent { + get { + return this.canSetContentField; + } + set { + this.canSetContentField = value; + this.RaisePropertyChanged("canSetContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canSetContentSpecified { + get { + return this.canSetContentFieldSpecified; + } + set { + this.canSetContentFieldSpecified = value; + this.RaisePropertyChanged("canSetContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public bool canGetAllVersions { + get { + return this.canGetAllVersionsField; + } + set { + this.canGetAllVersionsField = value; + this.RaisePropertyChanged("canGetAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAllVersionsSpecified { + get { + return this.canGetAllVersionsFieldSpecified; + } + set { + this.canGetAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("canGetAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool canAddToFolder { + get { + return this.canAddToFolderField; + } + set { + this.canAddToFolderField = value; + this.RaisePropertyChanged("canAddToFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddToFolderSpecified { + get { + return this.canAddToFolderFieldSpecified; + } + set { + this.canAddToFolderFieldSpecified = value; + this.RaisePropertyChanged("canAddToFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool canRemoveFromFolder { + get { + return this.canRemoveFromFolderField; + } + set { + this.canRemoveFromFolderField = value; + this.RaisePropertyChanged("canRemoveFromFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemoveFromFolderSpecified { + get { + return this.canRemoveFromFolderFieldSpecified; + } + set { + this.canRemoveFromFolderFieldSpecified = value; + this.RaisePropertyChanged("canRemoveFromFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool canViewContent { + get { + return this.canViewContentField; + } + set { + this.canViewContentField = value; + this.RaisePropertyChanged("canViewContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canViewContentSpecified { + get { + return this.canViewContentFieldSpecified; + } + set { + this.canViewContentFieldSpecified = value; + this.RaisePropertyChanged("canViewContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool canAddPolicy { + get { + return this.canAddPolicyField; + } + set { + this.canAddPolicyField = value; + this.RaisePropertyChanged("canAddPolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddPolicySpecified { + get { + return this.canAddPolicyFieldSpecified; + } + set { + this.canAddPolicyFieldSpecified = value; + this.RaisePropertyChanged("canAddPolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool canGetAppliedPolicies { + get { + return this.canGetAppliedPoliciesField; + } + set { + this.canGetAppliedPoliciesField = value; + this.RaisePropertyChanged("canGetAppliedPolicies"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAppliedPoliciesSpecified { + get { + return this.canGetAppliedPoliciesFieldSpecified; + } + set { + this.canGetAppliedPoliciesFieldSpecified = value; + this.RaisePropertyChanged("canGetAppliedPoliciesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool canRemovePolicy { + get { + return this.canRemovePolicyField; + } + set { + this.canRemovePolicyField = value; + this.RaisePropertyChanged("canRemovePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemovePolicySpecified { + get { + return this.canRemovePolicyFieldSpecified; + } + set { + this.canRemovePolicyFieldSpecified = value; + this.RaisePropertyChanged("canRemovePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public bool canGetChildren { + get { + return this.canGetChildrenField; + } + set { + this.canGetChildrenField = value; + this.RaisePropertyChanged("canGetChildren"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetChildrenSpecified { + get { + return this.canGetChildrenFieldSpecified; + } + set { + this.canGetChildrenFieldSpecified = value; + this.RaisePropertyChanged("canGetChildrenSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=24)] + public bool canCreateDocument { + get { + return this.canCreateDocumentField; + } + set { + this.canCreateDocumentField = value; + this.RaisePropertyChanged("canCreateDocument"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateDocumentSpecified { + get { + return this.canCreateDocumentFieldSpecified; + } + set { + this.canCreateDocumentFieldSpecified = value; + this.RaisePropertyChanged("canCreateDocumentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=25)] + public bool canCreateFolder { + get { + return this.canCreateFolderField; + } + set { + this.canCreateFolderField = value; + this.RaisePropertyChanged("canCreateFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateFolderSpecified { + get { + return this.canCreateFolderFieldSpecified; + } + set { + this.canCreateFolderFieldSpecified = value; + this.RaisePropertyChanged("canCreateFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=26)] + public bool canCreateRelationship { + get { + return this.canCreateRelationshipField; + } + set { + this.canCreateRelationshipField = value; + this.RaisePropertyChanged("canCreateRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateRelationshipSpecified { + get { + return this.canCreateRelationshipFieldSpecified; + } + set { + this.canCreateRelationshipFieldSpecified = value; + this.RaisePropertyChanged("canCreateRelationshipSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=27)] + public bool canCreatePolicy { + get { + return this.canCreatePolicyField; + } + set { + this.canCreatePolicyField = value; + this.RaisePropertyChanged("canCreatePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreatePolicySpecified { + get { + return this.canCreatePolicyFieldSpecified; + } + set { + this.canCreatePolicyFieldSpecified = value; + this.RaisePropertyChanged("canCreatePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=28)] + public bool canDeleteTree { + get { + return this.canDeleteTreeField; + } + set { + this.canDeleteTreeField = value; + this.RaisePropertyChanged("canDeleteTree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteTreeSpecified { + get { + return this.canDeleteTreeFieldSpecified; + } + set { + this.canDeleteTreeFieldSpecified = value; + this.RaisePropertyChanged("canDeleteTreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=29)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBoolean))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyInteger))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTime))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyString))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimal))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUri))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisProperty : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string indexField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBoolean : cmisProperty { + + private bool valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyInteger : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTime : cmisProperty { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyString : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimal : cmisProperty { + + private decimal valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyId : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private string hrefField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")] + public string href { + get { + return this.hrefField; + } + set { + this.hrefField = value; + this.RaisePropertyChanged("href"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUri : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisProperty[] itemsField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBoolean", typeof(cmisPropertyBoolean), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTime", typeof(cmisPropertyDateTime), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimal", typeof(cmisPropertyDecimal), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtml", typeof(cmisPropertyHtml), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyId", typeof(cmisPropertyId), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyInteger", typeof(cmisPropertyInteger), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyString", typeof(cmisPropertyString), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyUri", typeof(cmisPropertyUri), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyXml", typeof(cmisPropertyXml), IsNullable=true, Order=0)] + public cmisProperty[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisPropertiesType propertiesField; + + private cmisAllowableActionsType allowableActionsField; + + private cmisObjectType[] relationshipField; + + private cmisObjectType[] childField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public cmisPropertiesType properties { + get { + return this.propertiesField; + } + set { + this.propertiesField = value; + this.RaisePropertyChanged("properties"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public cmisAllowableActionsType allowableActions { + get { + return this.allowableActionsField; + } + set { + this.allowableActionsField = value; + this.RaisePropertyChanged("allowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("relationship", IsNullable=true, Order=2)] + public cmisObjectType[] relationship { + get { + return this.relationshipField; + } + set { + this.relationshipField = value; + this.RaisePropertyChanged("relationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("child", IsNullable=true, Order=3)] + public cmisObjectType[] child { + get { + return this.childField; + } + set { + this.childField = value; + this.RaisePropertyChanged("child"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=4)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisTypePolicyDefinitionType : cmisTypeDefinitionType { + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisTypeRelationshipDefinitionType : cmisTypeDefinitionType { + + private string[] allowedSourceTypesField; + + private string[] allowedTargetTypesField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute("allowedSourceTypes", IsNullable=true, Order=0)] + public string[] allowedSourceTypes { + get { + return this.allowedSourceTypesField; + } + set { + this.allowedSourceTypesField = value; + this.RaisePropertyChanged("allowedSourceTypes"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("allowedTargetTypes", IsNullable=true, Order=1)] + public string[] allowedTargetTypes { + get { + return this.allowedTargetTypesField; + } + set { + this.allowedTargetTypesField = value; + this.RaisePropertyChanged("allowedTargetTypes"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisTypeFolderDefinitionType : cmisTypeDefinitionType { + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getTypeDefinition", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getTypeDefinition { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string typeId; + + public getTypeDefinition() { + } + + public getTypeDefinition(string repositoryId, string typeId) { + this.repositoryId = repositoryId; + this.typeId = typeId; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getTypeDefinitionResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getTypeDefinitionResponse { + + //[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.ServiceModel.MessageProperty(Name="Item")] + [System.Xml.Serialization.XmlChoiceIdentifierAttribute(MemberName="Item")] + [System.Xml.Serialization.XmlElementAttribute("documentType", typeof(cmisTypeDocumentDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("folderType", typeof(cmisTypeFolderDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("policyType", typeof(cmisTypePolicyDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("relationshipType", typeof(cmisTypeRelationshipDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("type", typeof(cmisTypeDefinitionType), IsNullable=true)] + public object Item; + + public getTypeDefinitionResponse() { + } + + public getTypeDefinitionResponse(object Item) { + this.Item = Item; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getRepositoryInfo", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getRepositoryInfo { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + public getRepositoryInfo() { + } + + public getRepositoryInfo(string repositoryId) { + this.repositoryId = repositoryId; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getRepositoryInfoResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getRepositoryInfoResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string repositoryName; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public string repositoryRelationship; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public string repositoryDescription; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public string vendorName; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=5)] + public string productName; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=6)] + public string productVersion; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=7)] + public string rootFolderId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=8)] + public WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType capabilities; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=9)] + public string cmisVersionsSupported; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=10)] + public WcfTestClient.RepositoryService.cmisAnyXml repositorySpecificInformation; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=11)] + [System.Xml.Serialization.XmlAnyElementAttribute()] + public System.Xml.XmlElement[] Any; + + public getRepositoryInfoResponse() { + } + + public getRepositoryInfoResponse(string repositoryId, string repositoryName, string repositoryRelationship, string repositoryDescription, string vendorName, string productName, string productVersion, string rootFolderId, WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType capabilities, string cmisVersionsSupported, WcfTestClient.RepositoryService.cmisAnyXml repositorySpecificInformation, System.Xml.XmlElement[] Any) { + this.repositoryId = repositoryId; + this.repositoryName = repositoryName; + this.repositoryRelationship = repositoryRelationship; + this.repositoryDescription = repositoryDescription; + this.vendorName = vendorName; + this.productName = productName; + this.productVersion = productVersion; + this.rootFolderId = rootFolderId; + this.capabilities = capabilities; + this.cmisVersionsSupported = cmisVersionsSupported; + this.repositorySpecificInformation = repositorySpecificInformation; + this.Any = Any; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getRepositories", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getRepositories { + + public getRepositories() { + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getRepositoriesResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getRepositoriesResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("repository", IsNullable=true)] + public cmisRepositoryEntryType[] repository; + + public getRepositoriesResponse() { + } + + public getRepositoriesResponse(cmisRepositoryEntryType[] repository) { + this.repository = repository; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getTypes", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getTypes { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string typeId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public bool returnPropertyDefinitions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string maxItems; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + [System.Xml.Serialization.XmlElementAttribute(DataType="integer")] + public string skipCount; + + public getTypes() { + } + + public getTypes(string repositoryId, string typeId, bool returnPropertyDefinitions, string maxItems, string skipCount) { + this.repositoryId = repositoryId; + this.typeId = typeId; + this.returnPropertyDefinitions = returnPropertyDefinitions; + this.maxItems = maxItems; + this.skipCount = skipCount; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getTypesResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getTypesResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("documentType", typeof(cmisTypeDocumentDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("folderType", typeof(cmisTypeFolderDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("policyType", typeof(cmisTypePolicyDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("relationshipType", typeof(cmisTypeRelationshipDefinitionType), IsNullable=true)] + [System.Xml.Serialization.XmlElementAttribute("type", typeof(cmisTypeDefinitionType), IsNullable=true)] + public cmisTypeDefinitionType[] Items; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public bool hasMoreItems; + + public getTypesResponse() { + } + + public getTypesResponse(cmisTypeDefinitionType[] Items, bool hasMoreItems) { + this.Items = Items; + this.hasMoreItems = hasMoreItems; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface RepositoryServicePortChannel : WcfTestClient.RepositoryService.RepositoryServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class RepositoryServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.RepositoryService.RepositoryServicePort { + + public RepositoryServicePortClient() { + } + + public RepositoryServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public RepositoryServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public RepositoryServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public RepositoryServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.RepositoryService.getTypeDefinitionResponse WcfTestClient.RepositoryService.RepositoryServicePort.getTypeDefinition(WcfTestClient.RepositoryService.getTypeDefinition request) { + return base.Channel.getTypeDefinition(request); + } + + public object getTypeDefinition(string repositoryId, string typeId) { + WcfTestClient.RepositoryService.getTypeDefinition inValue = new WcfTestClient.RepositoryService.getTypeDefinition(); + inValue.repositoryId = repositoryId; + inValue.typeId = typeId; + WcfTestClient.RepositoryService.getTypeDefinitionResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getTypeDefinition(inValue); + return retVal.Item; + } + + public WcfTestClient.RepositoryService.getTypeDefinitionResponse getTypeDefinitionWrapper(string repositoryId, string typeId) + { + WcfTestClient.RepositoryService.getTypeDefinition inValue = new WcfTestClient.RepositoryService.getTypeDefinition(); + inValue.repositoryId = repositoryId; + inValue.typeId = typeId; + WcfTestClient.RepositoryService.getTypeDefinitionResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getTypeDefinition(inValue); + return retVal; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.RepositoryService.getRepositoryInfoResponse WcfTestClient.RepositoryService.RepositoryServicePort.getRepositoryInfo(WcfTestClient.RepositoryService.getRepositoryInfo request) { + return base.Channel.getRepositoryInfo(request); + } + + public string getRepositoryInfo(ref string repositoryId, out string repositoryRelationship, out string repositoryDescription, out string vendorName, out string productName, out string productVersion, out string rootFolderId, out WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType capabilities, out string cmisVersionsSupported, out WcfTestClient.RepositoryService.cmisAnyXml repositorySpecificInformation, out System.Xml.XmlElement[] Any) { + WcfTestClient.RepositoryService.getRepositoryInfo inValue = new WcfTestClient.RepositoryService.getRepositoryInfo(); + inValue.repositoryId = repositoryId; + WcfTestClient.RepositoryService.getRepositoryInfoResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getRepositoryInfo(inValue); + repositoryId = retVal.repositoryId; + repositoryRelationship = retVal.repositoryRelationship; + repositoryDescription = retVal.repositoryDescription; + vendorName = retVal.vendorName; + productName = retVal.productName; + productVersion = retVal.productVersion; + rootFolderId = retVal.rootFolderId; + capabilities = retVal.capabilities; + cmisVersionsSupported = retVal.cmisVersionsSupported; + repositorySpecificInformation = retVal.repositorySpecificInformation; + Any = retVal.Any; + return retVal.repositoryName; + } + + public WcfTestClient.RepositoryService.getRepositoryInfoResponse getRepositoryInfoWrapper(string repositoryId) + { + + WcfTestClient.RepositoryService.getRepositoryInfo inValue = new WcfTestClient.RepositoryService.getRepositoryInfo(); + inValue.repositoryId = repositoryId; + WcfTestClient.RepositoryService.getRepositoryInfoResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getRepositoryInfo(inValue); + + return retVal; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.RepositoryService.getRepositoriesResponse WcfTestClient.RepositoryService.RepositoryServicePort.getRepositories(WcfTestClient.RepositoryService.getRepositories request) { + return base.Channel.getRepositories(request); + } + + public cmisRepositoryEntryType[] getRepositories() { + WcfTestClient.RepositoryService.getRepositories inValue = new WcfTestClient.RepositoryService.getRepositories(); + WcfTestClient.RepositoryService.getRepositoriesResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getRepositories(inValue); + return retVal.repository; + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.RepositoryService.getTypesResponse WcfTestClient.RepositoryService.RepositoryServicePort.getTypes(WcfTestClient.RepositoryService.getTypes request) { + return base.Channel.getTypes(request); + } + + public cmisTypeDefinitionType[] getTypes(string repositoryId, string typeId, bool returnPropertyDefinitions, string maxItems, string skipCount, out bool hasMoreItems) { + WcfTestClient.RepositoryService.getTypes inValue = new WcfTestClient.RepositoryService.getTypes(); + inValue.repositoryId = repositoryId; + inValue.typeId = typeId; + inValue.returnPropertyDefinitions = returnPropertyDefinitions; + inValue.maxItems = maxItems; + inValue.skipCount = skipCount; + WcfTestClient.RepositoryService.getTypesResponse retVal = ((WcfTestClient.RepositoryService.RepositoryServicePort)(this)).getTypes(inValue); + hasMoreItems = retVal.hasMoreItems; + return retVal.Items; + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.svcmap new file mode 100644 index 0000000000..af56a365f7 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryService.wsdl b/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryService.wsdl new file mode 100644 index 0000000000..652c7a62ab --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryService.wsdl @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryServicePort.wsdl new file mode 100644 index 0000000000..447571d140 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/RepositoryServicePort.wsdl @@ -0,0 +1,1491 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisAnyXml.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisAnyXml.datasource new file mode 100644 index 0000000000..d1b9f503c0 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisAnyXml.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.RepositoryService.cmisAnyXml + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryCapabilitiesType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryCapabilitiesType.datasource new file mode 100644 index 0000000000..016c56f04f --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryCapabilitiesType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.RepositoryService.cmisRepositoryCapabilitiesType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryEntryType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryEntryType.datasource new file mode 100644 index 0000000000..025c98fe05 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisRepositoryEntryType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.RepositoryService.cmisRepositoryEntryType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisTypeDefinitionType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisTypeDefinitionType.datasource new file mode 100644 index 0000000000..594f5ff418 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfCmisWSTests.RepositoryService.cmisTypeDefinitionType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.RepositoryService.cmisTypeDefinitionType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisAnyXml.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisAnyXml.datasource new file mode 100644 index 0000000000..359aedbaf4 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisAnyXml.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.RepositoryService.cmisAnyXml + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType.datasource new file mode 100644 index 0000000000..764828c78a --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.RepositoryService.cmisRepositoryCapabilitiesType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryEntryType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryEntryType.datasource new file mode 100644 index 0000000000..9d46dac3b9 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisRepositoryEntryType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.RepositoryService.cmisRepositoryEntryType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisTypeDefinitionType.datasource b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisTypeDefinitionType.datasource new file mode 100644 index 0000000000..b69a3ec272 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/WcfTestClient.RepositoryService.cmisTypeDefinitionType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.RepositoryService.cmisTypeDefinitionType + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration.svcinfo new file mode 100644 index 0000000000..896e51fc12 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration91.svcinfo new file mode 100644 index 0000000000..a383dbfed8 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/RepositoryService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + RepositoryServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + RepositoryServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/RepositoryService + + + + + + basicHttpBinding + + + RepositoryServiceSoapBinding + + + RepositoryService.RepositoryServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + RepositoryServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.cs b/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.cs new file mode 100644 index 0000000000..167edb42a9 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.cs @@ -0,0 +1,2186 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WcfTestClient.VersioningService { + using System.Runtime.Serialization; + using System; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="cmisFaultType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.notInFolderExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.storageExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.offsetExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.constraintViolationExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.versioningExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.filterNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.typeNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.folderNotValidExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.streamNotSupportedExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.contentAlreadyExistsExceptionType))] + [System.Runtime.Serialization.KnownTypeAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType))] + public partial class cmisFaultType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { + + [System.NonSerializedAttribute()] + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private long errorCodeField; + + private string errorMessageField; + + [global::System.ComponentModel.BrowsableAttribute(false)] + public System.Runtime.Serialization.ExtensionDataObject ExtensionData { + get { + return this.extensionDataField; + } + set { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true)] + public long errorCode { + get { + return this.errorCodeField; + } + set { + if ((this.errorCodeField.Equals(value) != true)) { + this.errorCodeField = value; + this.RaisePropertyChanged("errorCode"); + } + } + } + + [System.Runtime.Serialization.DataMemberAttribute(IsRequired=true, EmitDefaultValue=false)] + public string errorMessage { + get { + return this.errorMessageField; + } + set { + if ((object.ReferenceEquals(this.errorMessageField, value) != true)) { + this.errorMessageField = value; + this.RaisePropertyChanged("errorMessage"); + } + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="operationNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class operationNotSupportedExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="permissionDeniedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class permissionDeniedExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="notInFolderExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class notInFolderExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="storageExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class storageExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="offsetExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class offsetExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="constraintViolationExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class constraintViolationExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="versioningExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class versioningExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="filterNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class filterNotValidExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="typeNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class typeNotFoundExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="updateConflictExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class updateConflictExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="folderNotValidExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class folderNotValidExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="objectNotFoundExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class objectNotFoundExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="streamNotSupportedExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class streamNotSupportedExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="runtimeExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class runtimeExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="contentAlreadyExistsExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class contentAlreadyExistsExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="invalidArgumentExceptionType", Namespace="http://www.cmis.org/2008/05")] + [System.SerializableAttribute()] + public partial class invalidArgumentExceptionType : WcfTestClient.VersioningService.cmisFaultType { + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(Namespace="http://www.cmis.org/2008/05", ConfigurationName="VersioningService.VersioningServicePort")] + public interface VersioningServicePort { + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + void checkOut(string repositoryId, ref string documentId, out bool contentCopied); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.storageExceptionType), Action="", Name="storageException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.streamNotSupportedExceptionType), Action="", Name="streamNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void checkIn(string repositoryId, ref string documentId, bool major, WcfTestClient.VersioningService.cmisPropertiesType properties, WcfTestClient.VersioningService.cmisContentStreamType contentStream, string checkinComment); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void cancelCheckOut(string repositoryId, string documentId); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.VersioningService.cmisObjectType getPropertiesOfLatestVersion(string repositoryId, string versionSeriesId, bool majorVersion, string filter); + + // CODEGEN: Parameter 'object' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'. + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.filterNotValidExceptionType), Action="", Name="filterNotValidException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + [return: System.ServiceModel.MessageParameterAttribute(Name="object")] + WcfTestClient.VersioningService.getAllVersionsResponse getAllVersions(WcfTestClient.VersioningService.getAllVersions request); + + [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.invalidArgumentExceptionType), Action="", Name="invalidArgumentException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.constraintViolationExceptionType), Action="", Name="constraintViolationException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.runtimeExceptionType), Action="", Name="runtimeException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.updateConflictExceptionType), Action="", Name="updateConflictException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.objectNotFoundExceptionType), Action="", Name="objectNotFoundException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.operationNotSupportedExceptionType), Action="", Name="operationNotSupportedException")] + [System.ServiceModel.FaultContractAttribute(typeof(WcfTestClient.VersioningService.permissionDeniedExceptionType), Action="", Name="permissionDeniedException")] + [System.ServiceModel.XmlSerializerFormatAttribute()] + [System.ServiceModel.ServiceKnownTypeAttribute(typeof(cmisProperty))] + void deleteAllVersions(string repositoryId, string versionSeriesId); + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertiesType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisProperty[] itemsField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute("propertyBoolean", typeof(cmisPropertyBoolean), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDateTime", typeof(cmisPropertyDateTime), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyDecimal", typeof(cmisPropertyDecimal), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyHtml", typeof(cmisPropertyHtml), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyId", typeof(cmisPropertyId), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyInteger", typeof(cmisPropertyInteger), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyString", typeof(cmisPropertyString), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyUri", typeof(cmisPropertyUri), IsNullable=true, Order=0)] + [System.Xml.Serialization.XmlElementAttribute("propertyXml", typeof(cmisPropertyXml), IsNullable=true, Order=0)] + public cmisProperty[] Items { + get { + return this.itemsField; + } + set { + this.itemsField = value; + this.RaisePropertyChanged("Items"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyBoolean : cmisProperty { + + private bool valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public bool value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public enum enumPropertyType { + + /// + boolean, + + /// + id, + + /// + integer, + + /// + datetime, + + /// + @decimal, + + /// + html, + + /// + @string, + + /// + uri, + + /// + xml, + } + + /// + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyBoolean))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyInteger))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyHtml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDateTime))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyString))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyXml))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyDecimal))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyId))] + [System.Xml.Serialization.XmlIncludeAttribute(typeof(cmisPropertyUri))] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisProperty : object, System.ComponentModel.INotifyPropertyChanged { + + private string nameField; + + private string indexField; + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public string name { + get { + return this.nameField; + } + set { + this.nameField = value; + this.RaisePropertyChanged("name"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="integer")] + public string index { + get { + return this.indexField; + } + set { + this.indexField = value; + this.RaisePropertyChanged("index"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisAllowableActionsType : object, System.ComponentModel.INotifyPropertyChanged { + + private string parentIdField; + + private string parentUrlField; + + private bool canDeleteField; + + private bool canDeleteFieldSpecified; + + private bool canUpdatePropertiesField; + + private bool canUpdatePropertiesFieldSpecified; + + private bool canGetPropertiesField; + + private bool canGetPropertiesFieldSpecified; + + private bool canGetRelationshipsField; + + private bool canGetRelationshipsFieldSpecified; + + private bool canGetParentsField; + + private bool canGetParentsFieldSpecified; + + private bool canGetFolderParentField; + + private bool canGetFolderParentFieldSpecified; + + private bool canGetDescendantsField; + + private bool canGetDescendantsFieldSpecified; + + private bool canMoveField; + + private bool canMoveFieldSpecified; + + private bool canDeleteVersionField; + + private bool canDeleteVersionFieldSpecified; + + private bool canDeleteContentField; + + private bool canDeleteContentFieldSpecified; + + private bool canCheckoutField; + + private bool canCheckoutFieldSpecified; + + private bool canCancelCheckoutField; + + private bool canCancelCheckoutFieldSpecified; + + private bool canCheckinField; + + private bool canCheckinFieldSpecified; + + private bool canSetContentField; + + private bool canSetContentFieldSpecified; + + private bool canGetAllVersionsField; + + private bool canGetAllVersionsFieldSpecified; + + private bool canAddToFolderField; + + private bool canAddToFolderFieldSpecified; + + private bool canRemoveFromFolderField; + + private bool canRemoveFromFolderFieldSpecified; + + private bool canViewContentField; + + private bool canViewContentFieldSpecified; + + private bool canAddPolicyField; + + private bool canAddPolicyFieldSpecified; + + private bool canGetAppliedPoliciesField; + + private bool canGetAppliedPoliciesFieldSpecified; + + private bool canRemovePolicyField; + + private bool canRemovePolicyFieldSpecified; + + private bool canGetChildrenField; + + private bool canGetChildrenFieldSpecified; + + private bool canCreateDocumentField; + + private bool canCreateDocumentFieldSpecified; + + private bool canCreateFolderField; + + private bool canCreateFolderFieldSpecified; + + private bool canCreateRelationshipField; + + private bool canCreateRelationshipFieldSpecified; + + private bool canCreatePolicyField; + + private bool canCreatePolicyFieldSpecified; + + private bool canDeleteTreeField; + + private bool canDeleteTreeFieldSpecified; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string parentId { + get { + return this.parentIdField; + } + set { + this.parentIdField = value; + this.RaisePropertyChanged("parentId"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string parentUrl { + get { + return this.parentUrlField; + } + set { + this.parentUrlField = value; + this.RaisePropertyChanged("parentUrl"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public bool canDelete { + get { + return this.canDeleteField; + } + set { + this.canDeleteField = value; + this.RaisePropertyChanged("canDelete"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteSpecified { + get { + return this.canDeleteFieldSpecified; + } + set { + this.canDeleteFieldSpecified = value; + this.RaisePropertyChanged("canDeleteSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=3)] + public bool canUpdateProperties { + get { + return this.canUpdatePropertiesField; + } + set { + this.canUpdatePropertiesField = value; + this.RaisePropertyChanged("canUpdateProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canUpdatePropertiesSpecified { + get { + return this.canUpdatePropertiesFieldSpecified; + } + set { + this.canUpdatePropertiesFieldSpecified = value; + this.RaisePropertyChanged("canUpdatePropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=4)] + public bool canGetProperties { + get { + return this.canGetPropertiesField; + } + set { + this.canGetPropertiesField = value; + this.RaisePropertyChanged("canGetProperties"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetPropertiesSpecified { + get { + return this.canGetPropertiesFieldSpecified; + } + set { + this.canGetPropertiesFieldSpecified = value; + this.RaisePropertyChanged("canGetPropertiesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=5)] + public bool canGetRelationships { + get { + return this.canGetRelationshipsField; + } + set { + this.canGetRelationshipsField = value; + this.RaisePropertyChanged("canGetRelationships"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetRelationshipsSpecified { + get { + return this.canGetRelationshipsFieldSpecified; + } + set { + this.canGetRelationshipsFieldSpecified = value; + this.RaisePropertyChanged("canGetRelationshipsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=6)] + public bool canGetParents { + get { + return this.canGetParentsField; + } + set { + this.canGetParentsField = value; + this.RaisePropertyChanged("canGetParents"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetParentsSpecified { + get { + return this.canGetParentsFieldSpecified; + } + set { + this.canGetParentsFieldSpecified = value; + this.RaisePropertyChanged("canGetParentsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=7)] + public bool canGetFolderParent { + get { + return this.canGetFolderParentField; + } + set { + this.canGetFolderParentField = value; + this.RaisePropertyChanged("canGetFolderParent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetFolderParentSpecified { + get { + return this.canGetFolderParentFieldSpecified; + } + set { + this.canGetFolderParentFieldSpecified = value; + this.RaisePropertyChanged("canGetFolderParentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=8)] + public bool canGetDescendants { + get { + return this.canGetDescendantsField; + } + set { + this.canGetDescendantsField = value; + this.RaisePropertyChanged("canGetDescendants"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetDescendantsSpecified { + get { + return this.canGetDescendantsFieldSpecified; + } + set { + this.canGetDescendantsFieldSpecified = value; + this.RaisePropertyChanged("canGetDescendantsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=9)] + public bool canMove { + get { + return this.canMoveField; + } + set { + this.canMoveField = value; + this.RaisePropertyChanged("canMove"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canMoveSpecified { + get { + return this.canMoveFieldSpecified; + } + set { + this.canMoveFieldSpecified = value; + this.RaisePropertyChanged("canMoveSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=10)] + public bool canDeleteVersion { + get { + return this.canDeleteVersionField; + } + set { + this.canDeleteVersionField = value; + this.RaisePropertyChanged("canDeleteVersion"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteVersionSpecified { + get { + return this.canDeleteVersionFieldSpecified; + } + set { + this.canDeleteVersionFieldSpecified = value; + this.RaisePropertyChanged("canDeleteVersionSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=11)] + public bool canDeleteContent { + get { + return this.canDeleteContentField; + } + set { + this.canDeleteContentField = value; + this.RaisePropertyChanged("canDeleteContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteContentSpecified { + get { + return this.canDeleteContentFieldSpecified; + } + set { + this.canDeleteContentFieldSpecified = value; + this.RaisePropertyChanged("canDeleteContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=12)] + public bool canCheckout { + get { + return this.canCheckoutField; + } + set { + this.canCheckoutField = value; + this.RaisePropertyChanged("canCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckoutSpecified { + get { + return this.canCheckoutFieldSpecified; + } + set { + this.canCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=13)] + public bool canCancelCheckout { + get { + return this.canCancelCheckoutField; + } + set { + this.canCancelCheckoutField = value; + this.RaisePropertyChanged("canCancelCheckout"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCancelCheckoutSpecified { + get { + return this.canCancelCheckoutFieldSpecified; + } + set { + this.canCancelCheckoutFieldSpecified = value; + this.RaisePropertyChanged("canCancelCheckoutSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=14)] + public bool canCheckin { + get { + return this.canCheckinField; + } + set { + this.canCheckinField = value; + this.RaisePropertyChanged("canCheckin"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCheckinSpecified { + get { + return this.canCheckinFieldSpecified; + } + set { + this.canCheckinFieldSpecified = value; + this.RaisePropertyChanged("canCheckinSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=15)] + public bool canSetContent { + get { + return this.canSetContentField; + } + set { + this.canSetContentField = value; + this.RaisePropertyChanged("canSetContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canSetContentSpecified { + get { + return this.canSetContentFieldSpecified; + } + set { + this.canSetContentFieldSpecified = value; + this.RaisePropertyChanged("canSetContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=16)] + public bool canGetAllVersions { + get { + return this.canGetAllVersionsField; + } + set { + this.canGetAllVersionsField = value; + this.RaisePropertyChanged("canGetAllVersions"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAllVersionsSpecified { + get { + return this.canGetAllVersionsFieldSpecified; + } + set { + this.canGetAllVersionsFieldSpecified = value; + this.RaisePropertyChanged("canGetAllVersionsSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=17)] + public bool canAddToFolder { + get { + return this.canAddToFolderField; + } + set { + this.canAddToFolderField = value; + this.RaisePropertyChanged("canAddToFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddToFolderSpecified { + get { + return this.canAddToFolderFieldSpecified; + } + set { + this.canAddToFolderFieldSpecified = value; + this.RaisePropertyChanged("canAddToFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=18)] + public bool canRemoveFromFolder { + get { + return this.canRemoveFromFolderField; + } + set { + this.canRemoveFromFolderField = value; + this.RaisePropertyChanged("canRemoveFromFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemoveFromFolderSpecified { + get { + return this.canRemoveFromFolderFieldSpecified; + } + set { + this.canRemoveFromFolderFieldSpecified = value; + this.RaisePropertyChanged("canRemoveFromFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=19)] + public bool canViewContent { + get { + return this.canViewContentField; + } + set { + this.canViewContentField = value; + this.RaisePropertyChanged("canViewContent"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canViewContentSpecified { + get { + return this.canViewContentFieldSpecified; + } + set { + this.canViewContentFieldSpecified = value; + this.RaisePropertyChanged("canViewContentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=20)] + public bool canAddPolicy { + get { + return this.canAddPolicyField; + } + set { + this.canAddPolicyField = value; + this.RaisePropertyChanged("canAddPolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canAddPolicySpecified { + get { + return this.canAddPolicyFieldSpecified; + } + set { + this.canAddPolicyFieldSpecified = value; + this.RaisePropertyChanged("canAddPolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=21)] + public bool canGetAppliedPolicies { + get { + return this.canGetAppliedPoliciesField; + } + set { + this.canGetAppliedPoliciesField = value; + this.RaisePropertyChanged("canGetAppliedPolicies"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetAppliedPoliciesSpecified { + get { + return this.canGetAppliedPoliciesFieldSpecified; + } + set { + this.canGetAppliedPoliciesFieldSpecified = value; + this.RaisePropertyChanged("canGetAppliedPoliciesSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=22)] + public bool canRemovePolicy { + get { + return this.canRemovePolicyField; + } + set { + this.canRemovePolicyField = value; + this.RaisePropertyChanged("canRemovePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canRemovePolicySpecified { + get { + return this.canRemovePolicyFieldSpecified; + } + set { + this.canRemovePolicyFieldSpecified = value; + this.RaisePropertyChanged("canRemovePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=23)] + public bool canGetChildren { + get { + return this.canGetChildrenField; + } + set { + this.canGetChildrenField = value; + this.RaisePropertyChanged("canGetChildren"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canGetChildrenSpecified { + get { + return this.canGetChildrenFieldSpecified; + } + set { + this.canGetChildrenFieldSpecified = value; + this.RaisePropertyChanged("canGetChildrenSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=24)] + public bool canCreateDocument { + get { + return this.canCreateDocumentField; + } + set { + this.canCreateDocumentField = value; + this.RaisePropertyChanged("canCreateDocument"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateDocumentSpecified { + get { + return this.canCreateDocumentFieldSpecified; + } + set { + this.canCreateDocumentFieldSpecified = value; + this.RaisePropertyChanged("canCreateDocumentSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=25)] + public bool canCreateFolder { + get { + return this.canCreateFolderField; + } + set { + this.canCreateFolderField = value; + this.RaisePropertyChanged("canCreateFolder"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateFolderSpecified { + get { + return this.canCreateFolderFieldSpecified; + } + set { + this.canCreateFolderFieldSpecified = value; + this.RaisePropertyChanged("canCreateFolderSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=26)] + public bool canCreateRelationship { + get { + return this.canCreateRelationshipField; + } + set { + this.canCreateRelationshipField = value; + this.RaisePropertyChanged("canCreateRelationship"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreateRelationshipSpecified { + get { + return this.canCreateRelationshipFieldSpecified; + } + set { + this.canCreateRelationshipFieldSpecified = value; + this.RaisePropertyChanged("canCreateRelationshipSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=27)] + public bool canCreatePolicy { + get { + return this.canCreatePolicyField; + } + set { + this.canCreatePolicyField = value; + this.RaisePropertyChanged("canCreatePolicy"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canCreatePolicySpecified { + get { + return this.canCreatePolicyFieldSpecified; + } + set { + this.canCreatePolicyFieldSpecified = value; + this.RaisePropertyChanged("canCreatePolicySpecified"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=28)] + public bool canDeleteTree { + get { + return this.canDeleteTreeField; + } + set { + this.canDeleteTreeField = value; + this.RaisePropertyChanged("canDeleteTree"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool canDeleteTreeSpecified { + get { + return this.canDeleteTreeFieldSpecified; + } + set { + this.canDeleteTreeFieldSpecified = value; + this.RaisePropertyChanged("canDeleteTreeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=29)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisObjectType : object, System.ComponentModel.INotifyPropertyChanged { + + private cmisPropertiesType propertiesField; + + private cmisAllowableActionsType allowableActionsField; + + private cmisObjectType[] relationshipField; + + private cmisObjectType[] childField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public cmisPropertiesType properties { + get { + return this.propertiesField; + } + set { + this.propertiesField = value; + this.RaisePropertyChanged("properties"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public cmisAllowableActionsType allowableActions { + get { + return this.allowableActionsField; + } + set { + this.allowableActionsField = value; + this.RaisePropertyChanged("allowableActions"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("relationship", IsNullable=true, Order=2)] + public cmisObjectType[] relationship { + get { + return this.relationshipField; + } + set { + this.relationshipField = value; + this.RaisePropertyChanged("relationship"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute("child", IsNullable=true, Order=3)] + public cmisObjectType[] child { + get { + return this.childField; + } + set { + this.childField = value; + this.RaisePropertyChanged("child"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=4)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisContentStreamType : object, System.ComponentModel.INotifyPropertyChanged { + + private string lengthField; + + private string mimeTypeField; + + private string filenameField; + + private string uriField; + + private byte[] streamField; + + private System.Xml.XmlElement[] anyField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string length { + get { + return this.lengthField; + } + set { + this.lengthField = value; + this.RaisePropertyChanged("length"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=1)] + public string mimeType { + get { + return this.mimeTypeField; + } + set { + this.mimeTypeField = value; + this.RaisePropertyChanged("mimeType"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=2)] + public string filename { + get { + return this.filenameField; + } + set { + this.filenameField = value; + this.RaisePropertyChanged("filename"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=3)] + public string uri { + get { + return this.uriField; + } + set { + this.uriField = value; + this.RaisePropertyChanged("uri"); + } + } + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=4)] + public byte[] stream { + get { + return this.streamField; + } + set { + this.streamField = value; + this.RaisePropertyChanged("stream"); + } + } + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=5)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + + protected void RaisePropertyChanged(string propertyName) { + System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; + if ((propertyChanged != null)) { + propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyInteger : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="integer", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyHtml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDateTime : cmisProperty { + + private System.DateTime valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public System.DateTime value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyString : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyXml : cmisProperty { + + private System.Xml.XmlElement[] anyField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] + public System.Xml.XmlElement[] Any { + get { + return this.anyField; + } + set { + this.anyField = value; + this.RaisePropertyChanged("Any"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyDecimal : cmisProperty { + + private decimal valueField; + + private bool valueFieldSpecified; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public decimal value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool valueSpecified { + get { + return this.valueFieldSpecified; + } + set { + this.valueFieldSpecified = value; + this.RaisePropertyChanged("valueSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyId : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private string hrefField; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified, DataType="anyURI")] + public string href { + get { + return this.hrefField; + } + set { + this.hrefField = value; + this.RaisePropertyChanged("href"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.3053")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.cmis.org/2008/05")] + public partial class cmisPropertyUri : cmisProperty { + + private string valueField; + + private enumPropertyType propertyTypeField; + + private bool propertyTypeFieldSpecified; + + private System.Xml.XmlAttribute[] anyAttrField; + + /// + [System.Xml.Serialization.XmlElementAttribute(DataType="anyURI", Order=0)] + public string value { + get { + return this.valueField; + } + set { + this.valueField = value; + this.RaisePropertyChanged("value"); + } + } + + /// + [System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)] + public enumPropertyType propertyType { + get { + return this.propertyTypeField; + } + set { + this.propertyTypeField = value; + this.RaisePropertyChanged("propertyType"); + } + } + + /// + [System.Xml.Serialization.XmlIgnoreAttribute()] + public bool propertyTypeSpecified { + get { + return this.propertyTypeFieldSpecified; + } + set { + this.propertyTypeFieldSpecified = value; + this.RaisePropertyChanged("propertyTypeSpecified"); + } + } + + /// + [System.Xml.Serialization.XmlAnyAttributeAttribute()] + public System.Xml.XmlAttribute[] AnyAttr { + get { + return this.anyAttrField; + } + set { + this.anyAttrField = value; + this.RaisePropertyChanged("AnyAttr"); + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getAllVersions", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getAllVersions { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + public string repositoryId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=1)] + public string versionSeriesId; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=2)] + public string filter; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=3)] + public bool includeAllowableActions; + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=4)] + public bool includeRelationships; + + public getAllVersions() { + } + + public getAllVersions(string repositoryId, string versionSeriesId, string filter, bool includeAllowableActions, bool includeRelationships) { + this.repositoryId = repositoryId; + this.versionSeriesId = versionSeriesId; + this.filter = filter; + this.includeAllowableActions = includeAllowableActions; + this.includeRelationships = includeRelationships; + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + [System.ServiceModel.MessageContractAttribute(WrapperName="getAllVersionsResponse", WrapperNamespace="http://www.cmis.org/2008/05", IsWrapped=true)] + public partial class getAllVersionsResponse { + + [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://www.cmis.org/2008/05", Order=0)] + [System.Xml.Serialization.XmlElementAttribute("object", IsNullable=true)] + public cmisObjectType[] @object; + + public getAllVersionsResponse() { + } + + public getAllVersionsResponse(cmisObjectType[] @object) { + this.@object = @object; + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public interface VersioningServicePortChannel : WcfTestClient.VersioningService.VersioningServicePort, System.ServiceModel.IClientChannel { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] + public partial class VersioningServicePortClient : System.ServiceModel.ClientBase, WcfTestClient.VersioningService.VersioningServicePort { + + public VersioningServicePortClient() { + } + + public VersioningServicePortClient(string endpointConfigurationName) : + base(endpointConfigurationName) { + } + + public VersioningServicePortClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public VersioningServicePortClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) { + } + + public VersioningServicePortClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) { + } + + public void checkOut(string repositoryId, ref string documentId, out bool contentCopied) { + base.Channel.checkOut(repositoryId, ref documentId, out contentCopied); + } + + public void checkIn(string repositoryId, ref string documentId, bool major, WcfTestClient.VersioningService.cmisPropertiesType properties, WcfTestClient.VersioningService.cmisContentStreamType contentStream, string checkinComment) { + base.Channel.checkIn(repositoryId, ref documentId, major, properties, contentStream, checkinComment); + } + + public void cancelCheckOut(string repositoryId, string documentId) { + base.Channel.cancelCheckOut(repositoryId, documentId); + } + + public WcfTestClient.VersioningService.cmisObjectType getPropertiesOfLatestVersion(string repositoryId, string versionSeriesId, bool majorVersion, string filter) { + return base.Channel.getPropertiesOfLatestVersion(repositoryId, versionSeriesId, majorVersion, filter); + } + + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + WcfTestClient.VersioningService.getAllVersionsResponse WcfTestClient.VersioningService.VersioningServicePort.getAllVersions(WcfTestClient.VersioningService.getAllVersions request) { + return base.Channel.getAllVersions(request); + } + + public cmisObjectType[] getAllVersions(string repositoryId, string versionSeriesId, string filter, bool includeAllowableActions, bool includeRelationships) { + WcfTestClient.VersioningService.getAllVersions inValue = new WcfTestClient.VersioningService.getAllVersions(); + inValue.repositoryId = repositoryId; + inValue.versionSeriesId = versionSeriesId; + inValue.filter = filter; + inValue.includeAllowableActions = includeAllowableActions; + inValue.includeRelationships = includeRelationships; + WcfTestClient.VersioningService.getAllVersionsResponse retVal = ((WcfTestClient.VersioningService.VersioningServicePort)(this)).getAllVersions(inValue); + return retVal.@object; + } + + public void deleteAllVersions(string repositoryId, string versionSeriesId) { + base.Channel.deleteAllVersions(repositoryId, versionSeriesId); + } + } +} diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.svcmap b/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.svcmap new file mode 100644 index 0000000000..c4d362a8ea --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/Reference.svcmap @@ -0,0 +1,30 @@ + + + + false + true + + false + false + false + + + true + Auto + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningService.wsdl b/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningService.wsdl new file mode 100644 index 0000000000..c097fec240 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningService.wsdl @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningServicePort.wsdl b/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningServicePort.wsdl new file mode 100644 index 0000000000..dacfe19251 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/VersioningServicePort.wsdl @@ -0,0 +1,1534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/WcfCmisWSTests.VersioningService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/VersioningService/WcfCmisWSTests.VersioningService.cmisObjectType.datasource new file mode 100644 index 0000000000..8ca72be4c5 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/WcfCmisWSTests.VersioningService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfCmisWSTests.VersioningService.cmisObjectType, Service References.VersioningService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/WcfTestClient.VersioningService.cmisObjectType.datasource b/source/test/dotnet/CmisWS/Service References/VersioningService/WcfTestClient.VersioningService.cmisObjectType.datasource new file mode 100644 index 0000000000..dc79d6da8a --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/WcfTestClient.VersioningService.cmisObjectType.datasource @@ -0,0 +1,10 @@ + + + + WcfTestClient.VersioningService.cmisObjectType, Service References.VersioningService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/configuration.svcinfo b/source/test/dotnet/CmisWS/Service References/VersioningService/configuration.svcinfo new file mode 100644 index 0000000000..8ad07fa491 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/configuration.svcinfo @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Service References/VersioningService/configuration91.svcinfo b/source/test/dotnet/CmisWS/Service References/VersioningService/configuration91.svcinfo new file mode 100644 index 0000000000..7f5b47e930 --- /dev/null +++ b/source/test/dotnet/CmisWS/Service References/VersioningService/configuration91.svcinfo @@ -0,0 +1,280 @@ + + + + + + + VersioningServiceSoapBinding + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + Transport + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + VersioningServiceSoapBinding1 + + + 00:01:00 + + + 00:01:00 + + + 00:10:00 + + + 00:01:00 + + + False + + + False + + + StrongWildcard + + + 65536 + + + 524288 + + + 65536 + + + Text + + + + + + System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement + + + 32 + + + 8192 + + + 16384 + + + 4096 + + + 16384 + + + System.ServiceModel.Configuration.BasicHttpSecurityElement + + + None + + + System.ServiceModel.Configuration.HttpTransportSecurityElement + + + None + + + None + + + + + + System.ServiceModel.Configuration.BasicHttpMessageSecurityElement + + + UserName + + + Basic256 + + + System.Text.UTF8Encoding + + + Buffered + + + True + + + + + + + + + https://localhost:8443/alfresco/cmis/VersioningService + + + + + + basicHttpBinding + + + VersioningServiceSoapBinding + + + VersioningService.VersioningServicePort + + + System.ServiceModel.Configuration.AddressHeaderCollectionElement + + + <Header /> + + + System.ServiceModel.Configuration.IdentityElement + + + System.ServiceModel.Configuration.UserPrincipalNameElement + + + + + + System.ServiceModel.Configuration.ServicePrincipalNameElement + + + + + + System.ServiceModel.Configuration.DnsElement + + + + + + System.ServiceModel.Configuration.RsaElement + + + + + + System.ServiceModel.Configuration.CertificateElement + + + + + + System.ServiceModel.Configuration.CertificateReferenceElement + + + My + + + LocalMachine + + + FindBySubjectDistinguishedName + + + + + + False + + + VersioningServicePort + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/Source/AbstractCmisServicesHelper.cs b/source/test/dotnet/CmisWS/Source/AbstractCmisServicesHelper.cs new file mode 100644 index 0000000000..28a616d313 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/AbstractCmisServicesHelper.cs @@ -0,0 +1,720 @@ +using System; +using System.Text; +using NUnit.Framework; +using System.ServiceModel; +using System.Collections.Generic; +using WcfTestClient.ObjectService; +using WcfTestClient.DiscoveryService; +using WcfTestClient.NavigationService; +using WcfTestClient.RepositoryService; +using WcfTestClient.VersioningService; +using WcfTestClient.MultiFilingService; + +/// +/// author: Dmitry Velichkevich +/// +namespace WcfCmisWSTests { + public abstract class AbstractCmisServicesHelper { + public const int MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH = 1; + + public const string TEXTUAL_ZERO = "0"; + + public const string ANY_PROPERTY_FILTER = "*"; + + public const string DOCUMENT_TYPE = "document"; + public const string FOLDER_TYPE = "folder"; + + public const string NAME_PROPERTY = "Name"; + public const string OBJECT_IDENTIFIER_PROPERTY = "ObjectId"; + + public const string TEXT_DOCUMENT_POSTFIX = ".txt"; + public const string TEXT_DOCUMENT_MIMETYPE = "plain/text"; + + public const string DEFAULT_ENCODING = "utf-8"; + + public const string TEST_DOCUMENT_CONTENT_ENTRY_TEXT = "Test document Content Entry"; + + public static CmisTypesConverter NAVIGATION_CONVERTER = + new NavigationServiceToObjectServiceTypesConverter(); + public static CmisTypesConverter VERSIONING_CONVERTER = + new VersioningServiceToObjectServiceTypesConverter(); + + private const int ARRAY_BASED_STRUCTURE_BEING_INDEX = 0; + private const int SAMPLE_LENGTH_MINUS_ONE_ODDS = 2; + + private const int MAXIMUM_ODD_OBJECTS_AMOUNT = 5; + private const int NEAR_ZERO_RANDOM_MAXIMUM = 3; + + private const string DELIMETER = "/"; + + private const string DEFAULT_ADMIN_USERNAME = "admin"; + private const string DEFAULT_ADMIN_PASSWORD = "admin"; + + private const string CHECKED_OUT_PROPERTY = "IsVersionSeriesCheckedOut"; + private const string LATEST_VERSION_PROPERTY = "IsLatestVersion"; + + private const string FOLDER_NAME_PREFIX = "TestFolder ("; + private const string DOCUMENT_NAME_PREFIX = "TestDocument ("; + + private const string CMIS_OBJECTS_DELETION_FAILED_MESSAGE_PATTERN = "{0} with Id {1} was not deleted"; + + private const string CMIS_HTTP_BINDING_CONFIGURATION_NAME = "cmisUnsecureHttpBinding"; + + private const string SECURE_HTTP_SCHEMA = "https"; + + private static string DEFAULT_REQUEST_URL_BEGIN = "http://localhost:8080"; + private const string COMMON_SERVICE_URL_PATTERN = "{0}/alfresco/cmis/{1}?wsdl"; + private const string REPOSITORY_SERVICE_NAME = "RepositoryService"; + private const string OBJECT_SERVICE_NAME = "ObjectService"; + private const string NAVIGATION_SERVICE_NAME = "NavigationService"; + private const string MULTIFILING_SERVICE_NAME = "MultiFilingService"; + private const string VERSIONING_SERVICE_NAME = "VersioningService"; + private const string DISCOVERY_SERVICE_NAME = "DiscoveryService"; + + private static byte[] testDocumentContentEntry = Encoding.GetEncoding(DEFAULT_ENCODING) + .GetBytes(TEST_DOCUMENT_CONTENT_ENTRY_TEXT); + + private static string userName = DEFAULT_ADMIN_USERNAME; + private static string password = DEFAULT_ADMIN_PASSWORD; + + public static RepositoryServicePortClient createRepositoryServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, REPOSITORY_SERVICE_NAME})); + + RepositoryServicePortClient result = new RepositoryServicePortClient(createBindingFromConfig( + serviceAddress), serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static ObjectServicePortClient createObjectServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, OBJECT_SERVICE_NAME})); + + ObjectServicePortClient result = new ObjectServicePortClient(createBindingFromConfig(serviceAddress, true), + serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static ObjectServicePortClient createObjectServiceClient(string customUserName, string customPassword) { + + userName = customUserName; + password = customPassword; + + WcfTestClient.ObjectService.ObjectServicePortClient result = createObjectServiceClient(); + + userName = DEFAULT_ADMIN_USERNAME; + password = DEFAULT_ADMIN_PASSWORD; + + return result; + } + + public static NavigationServicePortClient createNavigationServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, NAVIGATION_SERVICE_NAME})); + + NavigationServicePortClient result = new NavigationServicePortClient(createBindingFromConfig( + serviceAddress), serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static VersioningServicePortClient createVersioningServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, VERSIONING_SERVICE_NAME})); + + VersioningServicePortClient result = new VersioningServicePortClient(createBindingFromConfig( + serviceAddress), serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static DiscoveryServicePortClient createDiscoveryServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, DISCOVERY_SERVICE_NAME})); + + DiscoveryServicePortClient result = new DiscoveryServicePortClient(createBindingFromConfig( + serviceAddress), serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static MultiFilingServicePortClient createMultiFilingServiceClient() { + + EndpointAddress serviceAddress = new EndpointAddress(string.Format(COMMON_SERVICE_URL_PATTERN, + new object[] {DEFAULT_REQUEST_URL_BEGIN, MULTIFILING_SERVICE_NAME})); + + MultiFilingServicePortClient result = new MultiFilingServicePortClient(createBindingFromConfig( + serviceAddress), serviceAddress); + + result.ChannelFactory.Endpoint.Behaviors.Add(new SoapRequestHeaderProcessorAttribute(UserName, Password)); + + return result; + } + + public static string getAndAssertRepositoryId() { + + RepositoryServicePortClient client = createRepositoryServiceClient(); + + WcfTestClient.RepositoryService.cmisRepositoryEntryType[] repositories = client.getRepositories(); + + assertRepositoriesResponse(repositories); + + return repositories[0].repositoryID; + } + + public static string getAndAssertRootFolder() { + + return performManipulationsAndAssertionWrapping(new RootFolderReceiverStrategy()); + } + + public static string generateObjectName(string postfix) { + + bool document = ((postfix != null) && (postfix.Length >= MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH)); + + return ((document) ? (DOCUMENT_NAME_PREFIX):(FOLDER_NAME_PREFIX)) + DateTime.Now.Ticks.ToString() + ")" + + ((document) ? (postfix):(string.Empty)); + } + + public static WcfTestClient.ObjectService.cmisPropertiesType createCmisObjectProperties(string documentName) { + + WcfTestClient.ObjectService.cmisPropertiesType result = + new WcfTestClient.ObjectService.cmisPropertiesType(); + + WcfTestClient.ObjectService.cmisPropertyString nameProperty = + new WcfTestClient.ObjectService.cmisPropertyString(); + nameProperty.value = documentName; + nameProperty.name = NAME_PROPERTY; + result.Items = new WcfTestClient.ObjectService.cmisProperty[] {nameProperty}; + + return result; + } + + public static byte[] getTestDocumentContentEntry() { + + return testDocumentContentEntry; + } + + public static WcfTestClient.ObjectService.cmisContentStreamType createCmisDocumentContent(string documentName, + string mimeType, byte[] contentEntry) { + + WcfTestClient.ObjectService.cmisContentStreamType result = + new WcfTestClient.ObjectService.cmisContentStreamType(); + result.filename = documentName; + result.length = contentEntry.Length.ToString(); + result.mimeType = mimeType; + result.stream = contentEntry; + + return result; + } + + public static string createAndAssertDocument(string documentName, string parentFolder, string mimeType, + byte[] contentEntry) { + + return performManipulationsAndAssertionWrapping(new DocumentCreatorStrategy(documentName, parentFolder, + mimeType, enumVersioningState.major, contentEntry)); + } + + public static string createAndAssertDocument(string documentName, string parentFolder, string mimeType, + enumVersioningState versioningState, byte[] contentEntry) { + + return performManipulationsAndAssertionWrapping(new DocumentCreatorStrategy(documentName, parentFolder, + mimeType, versioningState, contentEntry)); + } + + public static string createAndAssertFolder(string folderName, string parentFolder) { + + return performManipulationsAndAssertionWrapping(new FolderCreatorStrategy(folderName, parentFolder)); + } + + public static string[] createAndAssertFileFolderHierarchy(int depth, int minimalChildrenAmount, + int maximumChildrenAmount, bool withoutDocuments) { + + List hierarchyObjects = new List(); + Queue> folders = createAndInitializeFoldersQueue(hierarchyObjects); + + Random randomCounter = new Random(); + + while((folders.Count > 0) && (folders.Peek().Key <= (depth - 1))) { + createObjectsForCurrentLevel(minimalChildrenAmount, maximumChildrenAmount, withoutDocuments, + hierarchyObjects, folders, randomCounter, folders.Dequeue()); + } + + return hierarchyObjects.ToArray(); + } + + public static WcfTestClient.ObjectService.cmisPropertiesType getObjectProperties(string objectId, + bool assertResults) { + + WcfTestClient.ObjectService.ObjectServicePortClient client = createObjectServiceClient(); + + WcfTestClient.ObjectService.cmisObjectType result = client.getProperties( + getAndAssertRepositoryId(), objectId, + enumReturnVersion.latest, ANY_PROPERTY_FILTER, + false, false); + + if(assertResults) { + assertrObjectProperties(result); + } + + return (result != null) ? (result.properties):(null); + } + + public static object searchPropertyAndGetValueByName(WcfTestClient.ObjectService.cmisProperty[] properties, + string propertyName) { + + foreach(WcfTestClient.ObjectService.cmisProperty property in properties) { + if ((property.name != null) && property.name.Equals(propertyName)) { + return determinePropertyValue(property); + } + } + + return null; + } + + public static void deleteAndAssertDocument(string documentId) { + + WcfTestClient.ObjectService.ObjectServicePortClient client = createObjectServiceClient(); + + client.deleteObject(getAndAssertRepositoryId(), documentId); + + assertObjectAbsence(documentId, DOCUMENT_TYPE); + } + + public static void deleteAndAssertFolder(string folderId, bool notEmptyBehaviour) { + + WcfTestClient.ObjectService.ObjectServicePortClient client = createObjectServiceClient(); + + try { + client.deleteObject(getAndAssertRepositoryId(), folderId); + + determineAssertionFailed(notEmptyBehaviour, "Not empty folder was deleted"); + } catch (Exception e) { + determineAssertionFailed(!notEmptyBehaviour, e.Message); + } + + assertObjectAbsence(folderId, FOLDER_TYPE); + } + + public static void assertDocumentParents(string documentId, string[] expectedParentsIds) { + + performParentsReceivingWrapping(new ObjectParentsReceiverStrategy(documentId), expectedParentsIds); + } + + public static void assertFolderParents(string folderId, string[] expectedParentsIds, bool allParents) { + + performParentsReceivingWrapping(new FolderParentsReceiverStrategy(folderId, allParents), expectedParentsIds); + } + + public static void deleteAndAssertHierarchy(string[] hierarchyObjectsIds) { + + WcfTestClient.ObjectService.ObjectServicePortClient client = createObjectServiceClient(); + + string[] undeletedObjectsIds = client.deleteTree(getAndAssertRepositoryId(), hierarchyObjectsIds[0], + enumUnfileNonfolderObjects.delete, true); + + Assert.IsNotNull(undeletedObjectsIds); + Assert.AreEqual(undeletedObjectsIds.Length, ARRAY_BASED_STRUCTURE_BEING_INDEX); + + foreach(string objectId in hierarchyObjectsIds) { + assertObjectAbsence(objectId, null); + } + } + + public static string[] addOneMoreParent(string documentId, string parentFolderId) { + + string repositoryId = getAndAssertRepositoryId(); + + string[] result = receiveOldParentsList(parentFolderId, createNavigationServiceClient().getObjectParents( + repositoryId, documentId, ANY_PROPERTY_FILTER, false, false)); + + createMultiFilingServiceClient().addObjectToFolder(repositoryId, documentId, parentFolderId); + + return result; + } + + public static KeyValuePair> createMultiFilledDocument( + string primaryFolderId) { + + string documentId = createAndAssertDocument(generateObjectName(TEXT_DOCUMENT_POSTFIX), primaryFolderId, + TEXT_DOCUMENT_MIMETYPE, testDocumentContentEntry); + + string folderId = createAndAssertFolder(generateObjectName(null), primaryFolderId); + + return new KeyValuePair>(folderId, new KeyValuePair(documentId, addOneMoreParent(documentId, folderId))); + } + + public static string checkOutAndAssert(string documentId) { + + bool copied; + + createVersioningServiceClient().checkOut(getAndAssertRepositoryId(), ref documentId, out copied); + + assertCheckedOutDocument(documentId, copied); + + return documentId; + } + + public static void assertCheckedOutDocument(string documentId, bool copied) { + + Assert.IsNotNull(documentId); + Assert.IsTrue(copied && (bool)searchPropertyAndGetValueByName(getObjectProperties(documentId, true).Items, + CHECKED_OUT_PROPERTY)); + } + + public static void cancelCheckOutAndAssert(string checkedOutDocumentId) { + + createVersioningServiceClient().cancelCheckOut(getAndAssertRepositoryId(), checkedOutDocumentId); + + assertObjectAbsence(checkedOutDocumentId, null); + } + + public static void getAndAssertLatestVersionProperties(string versionSeriesId, string name, + string expectedVersionSuffix, bool onlyLatest) { + + VersioningServicePortClient client = createVersioningServiceClient(); + + WcfTestClient.VersioningService.cmisObjectType response = client.getPropertiesOfLatestVersion( + getAndAssertRepositoryId(), versionSeriesId, false, ANY_PROPERTY_FILTER); + + asserLatestVersionProperties(versionSeriesId, name, expectedVersionSuffix, onlyLatest, response); + } + + public static void assertActualIdsFromObjectsWithSpecified(WcfTestClient.NavigationService.cmisObjectType[] + actualObjects, string[] expectedIds) { + + bool value; + + Dictionary expectedIdsMap = createExpectedParentsIdsMap(expectedIds); + + foreach (WcfTestClient.NavigationService.cmisObjectType actualParent in actualObjects) { + Assert.IsTrue(expectedIdsMap.TryGetValue((string)searchPropertyAndGetValueByName( + NAVIGATION_CONVERTER.convertProperties(actualParent.properties.Items), + OBJECT_IDENTIFIER_PROPERTY), out value)); + } + } + + public static string UserName { + get { + + return userName; + } + } + + public static string Password { + get { + + return password; + } + } + + private AbstractCmisServicesHelper() { + } + + private static BasicHttpBinding createBindingFromConfig(EndpointAddress serviceAddress, bool mtomEncoding) { + + BasicHttpBinding result = createBindingFromConfig(serviceAddress); + + result.MessageEncoding = (mtomEncoding) ? (WSMessageEncoding.Mtom):(WSMessageEncoding.Text); + + return result; + } + + private static BasicHttpBinding createBindingFromConfig(EndpointAddress serviceAddress) { + + BasicHttpBinding result = new BasicHttpBinding(CMIS_HTTP_BINDING_CONFIGURATION_NAME); + + if(serviceAddress.Uri.Scheme.ToLower().Equals(SECURE_HTTP_SCHEMA)) { + result.Security.Mode = BasicHttpSecurityMode.Transport; + } + + return result; + } + + private static string performManipulationsAndAssertionWrapping(CmisManipulationsStrategy< + string> createVisitor) { + + string result = null; + + try { + result = createVisitor.performManipulations(); + + Assert.IsNotNull(result); + Assert.IsTrue(result.Length > MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH); + } catch(Exception e) { + Assert.Fail(e.Message); + } + + return result; + } + + private static void performParentsReceivingWrapping(CmisManipulationsStrategy< + WcfTestClient.NavigationService.cmisObjectType[]> receiver, string[] expectedParentsIds) { + + WcfTestClient.NavigationService.cmisObjectType[] actualParents = receiver.performManipulations(); + + Assert.IsTrue(actualParents != null); + Assert.AreEqual(expectedParentsIds.Length, actualParents.Length); + + assertActualIdsFromObjectsWithSpecified(actualParents, expectedParentsIds); + } + + private static void assertRepositoriesResponse(WcfTestClient.RepositoryService.cmisRepositoryEntryType[] + repositories) { + + Assert.IsNotNull(repositories); + Assert.IsNotNull(repositories[0]); + Assert.IsTrue(repositories[0].repositoryID.Length > MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH); + } + + private static void assertrObjectProperties(WcfTestClient.ObjectService.cmisObjectType result) { + + Assert.IsNotNull(result); + Assert.IsNotNull(result.properties); + Assert.IsNotNull(result.properties.Items); + Assert.IsTrue(result.properties.Items.Length >= MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH); + Assert.IsNotNull(searchPropertyAndGetValueByName(result.properties.Items, NAME_PROPERTY)); + } + + private static void assertObjectAbsence(string objectId, string objectName) { + + try { + getObjectProperties(objectId, false); + + Assert.Fail(string.Format(CMIS_OBJECTS_DELETION_FAILED_MESSAGE_PATTERN, new object[] {objectName, + objectId})); + } catch (Exception) { + } + } + + private static object determinePropertyValue(WcfTestClient.ObjectService.cmisProperty property) { + + if(property is WcfTestClient.ObjectService.cmisPropertyString) { + return ((WcfTestClient.ObjectService.cmisPropertyString)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyBoolean) { + return ((WcfTestClient.ObjectService.cmisPropertyBoolean)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyDateTime) { + return ((WcfTestClient.ObjectService.cmisPropertyDateTime)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyDecimal) { + return ((WcfTestClient.ObjectService.cmisPropertyDecimal)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyId) { + return ((WcfTestClient.ObjectService.cmisPropertyId)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyInteger) { + return ((WcfTestClient.ObjectService.cmisPropertyInteger)property).value; + } + + if(property is WcfTestClient.ObjectService.cmisPropertyUri) { + return ((WcfTestClient.ObjectService.cmisPropertyUri)property).value; + } + + return null; + } + + private static void determineAssertionFailed(bool assertionCondition, string message) { + + if(assertionCondition) { + Assert.Fail(message); + } + } + + private static System.Collections.Generic.Dictionary createExpectedParentsIdsMap( + string[] expectedIds) { + + System.Collections.Generic.Dictionary result = + new System.Collections.Generic.Dictionary(); + + foreach (string key in expectedIds) { + result.Add(key, false); + } + + return result; + } + + private static Queue> createAndInitializeFoldersQueue( + List hierarchyObjects) { + + Queue> result = new Queue>(); + + result.Enqueue(new KeyValuePair(MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH, createAndAssertFolder( + generateObjectName(null), getAndAssertRootFolder()))); + hierarchyObjects.Add(result.Peek().Value); + + return result; + } + + private static void createObjectsForCurrentLevel(int minimalChildrenAmount, int maximumChildrenAmount, + bool withoutDocuments, List hierarchyObjects, + Queue> folders, Random randomCounter, + KeyValuePair currentParent) { + + for(int i = 0; i < generateBoundedChildrenAmount(randomCounter, minimalChildrenAmount, + maximumChildrenAmount); i++) { + hierarchyObjects.Add(createDeterminedObject(withoutDocuments, folders, randomCounter, currentParent)); + } + } + + private static int generateBoundedChildrenAmount(Random randomCounter, int minimalChildrenAmount, + int maximumChildrenAmount) { + + int result = randomCounter.Next(MAXIMUM_ODD_OBJECTS_AMOUNT); + + result = ((minimalChildrenAmount < 0) && ((minimalChildrenAmount + result) < 0)) ? (0): + (result + minimalChildrenAmount); + + return ((maximumChildrenAmount > 0) && (result > maximumChildrenAmount)) ? (maximumChildrenAmount): + (result); + } + + private static string createDeterminedObject(bool withoutDocuments, Queue> folders, + Random randomCounter, KeyValuePair currentParent) { + + bool folder = withoutDocuments || (randomCounter.Next(NEAR_ZERO_RANDOM_MAXIMUM) == 0); + + CmisManipulationsStrategy objectCreator = (folder) ? ((CmisManipulationsStrategy) + new FolderCreatorStrategy(generateObjectName(null), currentParent.Value)): + ((CmisManipulationsStrategy)new DocumentCreatorStrategy(generateObjectName( + TEXT_DOCUMENT_POSTFIX), currentParent.Value, TEXT_DOCUMENT_MIMETYPE, + enumVersioningState.major, testDocumentContentEntry)); + + string objectId = objectCreator.performManipulations(); + + if(folder) { + folders.Enqueue(new KeyValuePair((currentParent.Key + 1), objectId)); + } + + return objectId; + } + + private static string[] receiveOldParentsList(string parentFolderId, + WcfTestClient.NavigationService.cmisObjectType[] parents) { + + string[] result = new string[parents.Length + 1]; + + int index = 0; + + foreach(WcfTestClient.NavigationService.cmisObjectType parent in parents) { + result[index++] = searchPropertyAndGetValueByName(NAVIGATION_CONVERTER.convertProperties( + parent.properties.Items), OBJECT_IDENTIFIER_PROPERTY).ToString(); + } + + result[index] = parentFolderId; + + return result; + } + + private static void asserLatestVersionProperties(string versionSeriesId, string name, + string expectedVersionSuffix, bool onlyLatest, WcfTestClient.VersioningService.cmisObjectType response) { + + Assert.IsNotNull(response); + Assert.IsTrue((bool)searchPropertyAndGetValueByName(VERSIONING_CONVERTER.convertProperties( + response.properties.Items), LATEST_VERSION_PROPERTY)); + Assert.AreEqual(name, searchPropertyAndGetValueByName( + VERSIONING_CONVERTER.convertProperties(response.properties.Items), NAME_PROPERTY)); + + assertVersionId(versionSeriesId, expectedVersionSuffix, response, onlyLatest); + } + + private static void assertVersionId(string sourceId, string expectedVersionNumber, + WcfTestClient.VersioningService.cmisObjectType response, bool onlyLatest) { + + sourceId = (onlyLatest) ? (sourceId.Substring(0, sourceId.LastIndexOf(DELIMETER))):(sourceId); + + string latestVersionId = (string)searchPropertyAndGetValueByName( + VERSIONING_CONVERTER.convertProperties(response.properties.Items), OBJECT_IDENTIFIER_PROPERTY); + + Assert.AreEqual(sourceId, latestVersionId); + + if(expectedVersionNumber != null) { + Assert.IsTrue(latestVersionId.EndsWith(expectedVersionNumber)); + } + } + + private class ObjectParentsReceiverStrategy: CmisManipulationsStrategy< + WcfTestClient.NavigationService.cmisObjectType[]> { + private string objectId; + + string CmisManipulationsStrategy.getName() { + + return null; + } + + public ObjectParentsReceiverStrategy(string objectId) { + + this.objectId = objectId; + } + + WcfTestClient.NavigationService.cmisObjectType[] CmisManipulationsStrategy< + WcfTestClient.NavigationService.cmisObjectType[]>.performManipulations() { + + return createNavigationServiceClient().getObjectParents(getAndAssertRepositoryId(), objectId, + ANY_PROPERTY_FILTER, false, false); + } + } + + private class FolderParentsReceiverStrategy: CmisManipulationsStrategy< + WcfTestClient.NavigationService.cmisObjectType[]> { + private bool allParents; + private string folderId; + + string CmisManipulationsStrategy.getName() { + + return null; + } + + public FolderParentsReceiverStrategy(string folderId, bool allParents) { + + this.folderId = folderId; + this.allParents = allParents; + } + + WcfTestClient.NavigationService.cmisObjectType[] CmisManipulationsStrategy< + WcfTestClient.NavigationService.cmisObjectType[]>.performManipulations() { + + return createNavigationServiceClient().getFolderParent(getAndAssertRepositoryId(), folderId, + ANY_PROPERTY_FILTER, false, false, allParents); + } + } + + private class RootFolderReceiverStrategy: CmisManipulationsStrategy { + string CmisManipulationsStrategy.getName() { + + return string.Empty; + } + + string CmisManipulationsStrategy.performManipulations() { + + return createRepositoryServiceClient().getRepositoryInfoWrapper(getAndAssertRepositoryId()) + .rootFolderId; + } + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/CmisManipulationsStrategy.cs b/source/test/dotnet/CmisWS/Source/CmisManipulationsStrategy.cs new file mode 100644 index 0000000000..1122b85c91 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/CmisManipulationsStrategy.cs @@ -0,0 +1,10 @@ +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public interface CmisManipulationsStrategy { + string getName(); + + R performManipulations(); + } +} diff --git a/source/test/dotnet/CmisWS/Source/CmisTypesConverter.cs b/source/test/dotnet/CmisWS/Source/CmisTypesConverter.cs new file mode 100644 index 0000000000..ab655994b3 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/CmisTypesConverter.cs @@ -0,0 +1,8 @@ +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public interface CmisTypesConverter { + R convertProperties(S sourceData); + } +} diff --git a/source/test/dotnet/CmisWS/Source/DiscoveryServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/DiscoveryServiceClientTest.cs new file mode 100644 index 0000000000..38c8044ed5 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/DiscoveryServiceClientTest.cs @@ -0,0 +1,36 @@ +using System; +using NUnit.Framework; +using WcfTestClient.DiscoveryService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class DiscoveryServiceClientTest { + private const string TEXTUAL_TEN = "10"; + private const string SAMPLE_QUERY = "SELECT * FROM DOCUMENT"; + + [Test] + public void testCmisSqlFeature() { + + try { + assertQuering(AbstractCmisServicesHelper.createDiscoveryServiceClient()); + } catch(Exception e) { + Assert.Fail(e.Message); + } + } + + private static void assertQuering(DiscoveryServicePortClient client) { + + bool hasMoreElements; + + cmisObjectType[] response = client.query(SAMPLE_QUERY, false, TEXTUAL_TEN, + AbstractCmisServicesHelper.TEXTUAL_ZERO, false, null, out hasMoreElements); + + Assert.IsTrue((response != null) && (response[0] != null)); + Assert.IsTrue(hasMoreElements); + Assert.AreEqual(response.Length, int.Parse(TEXTUAL_TEN)); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/DocumentCreatorStrategy.cs b/source/test/dotnet/CmisWS/Source/DocumentCreatorStrategy.cs new file mode 100644 index 0000000000..d26a5a17ec --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/DocumentCreatorStrategy.cs @@ -0,0 +1,38 @@ +using WcfTestClient.ObjectService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class DocumentCreatorStrategy: CmisManipulationsStrategy { + private string objectName; + private string objectParent; + private string objectMimeType; + private enumVersioningState versioningState; + private byte[] objectContentEntry; + + public DocumentCreatorStrategy(string objectName, string objectParent, string objectMimeType, + enumVersioningState versioningState, byte[] objectContentEntry) { + + this.objectName = objectName; + this.objectParent = objectParent; + this.objectMimeType = objectMimeType; + this.versioningState = versioningState; + this.objectContentEntry = objectContentEntry; + } + + string CmisManipulationsStrategy.getName() { + + return objectName; + } + + string CmisManipulationsStrategy.performManipulations() { + + return AbstractCmisServicesHelper.createObjectServiceClient().createDocument( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), AbstractCmisServicesHelper.DOCUMENT_TYPE, + AbstractCmisServicesHelper.createCmisObjectProperties(objectName), objectParent, + AbstractCmisServicesHelper.createCmisDocumentContent(objectName, objectMimeType, + objectContentEntry), versioningState); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/FolderCreatorStrategy.cs b/source/test/dotnet/CmisWS/Source/FolderCreatorStrategy.cs new file mode 100644 index 0000000000..ff9a1f9e0b --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/FolderCreatorStrategy.cs @@ -0,0 +1,27 @@ +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class FolderCreatorStrategy: CmisManipulationsStrategy { + private string objectName; + private string objectParent; + + string CmisManipulationsStrategy.getName() { + + return objectName; + } + + public FolderCreatorStrategy(string objectName, string objectParent) { + + this.objectName = objectName; + this.objectParent = objectParent; + } + + string CmisManipulationsStrategy.performManipulations() { + + return AbstractCmisServicesHelper.createObjectServiceClient().createFolder( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), AbstractCmisServicesHelper.FOLDER_TYPE, + AbstractCmisServicesHelper.createCmisObjectProperties(objectName), objectParent); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/MultiFilingServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/MultiFilingServiceClientTest.cs new file mode 100644 index 0000000000..bdb2605df1 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/MultiFilingServiceClientTest.cs @@ -0,0 +1,42 @@ +using NUnit.Framework; +using System.Collections.Generic; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class MultiFilingServiceClientTest { + [Test] + public void testParentAdding() { + + KeyValuePair> multifilledDocument = + AbstractCmisServicesHelper.createMultiFilledDocument( + AbstractCmisServicesHelper.getAndAssertRootFolder()); + + AbstractCmisServicesHelper.assertDocumentParents(multifilledDocument.Value.Key, + multifilledDocument.Value.Value); + + AbstractCmisServicesHelper.deleteAndAssertDocument(multifilledDocument.Value.Key); + AbstractCmisServicesHelper.deleteAndAssertFolder(multifilledDocument.Key, false); + } + + [Test] + public void testParentAddingAndRemoving() { + + KeyValuePair> multifilledDocument = + AbstractCmisServicesHelper.createMultiFilledDocument( + AbstractCmisServicesHelper.getAndAssertRootFolder()); + + AbstractCmisServicesHelper.createMultiFilingServiceClient().removeObjectFromFolder( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), + multifilledDocument.Value.Key, multifilledDocument.Key); + + AbstractCmisServicesHelper.assertDocumentParents(multifilledDocument.Value.Key, + new string[] {AbstractCmisServicesHelper.getAndAssertRootFolder()}); + + AbstractCmisServicesHelper.deleteAndAssertFolder(multifilledDocument.Key, false); + AbstractCmisServicesHelper.deleteAndAssertDocument(multifilledDocument.Value.Key); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/NavigationServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/NavigationServiceClientTest.cs new file mode 100644 index 0000000000..2af6481b84 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/NavigationServiceClientTest.cs @@ -0,0 +1,173 @@ +using System; +using NUnit.Framework; +using System.Collections.Generic; +using WcfTestClient.NavigationService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class NavigationServiceClientTest { + private const int SINGLE_VALUE = 1; + private const int PAIR_VALUE = 2; + private const int OPTIMAL_MINIMAL_CHILDREN_AMOUNT = 3; + private const int OPTIMAL_HIERARCHY_DEPTH = 4; + private const int OPTIMAL_FOLDERS_DEPTH_AMOUNT = 5; + private const int OPTIMAL_MAXIMUM_CHILDREN_AMOUNT = 6; + private const int OPTIMAL_CHILDREN_AMOUNT = 7; + private const int MAXIMUM_CHECKEDOUT_DOCS_AMOUNT = 13; + + private const string FULL_PARENTS_HIERARCHY = "-1"; + + [Test] + public void testDocumentParentsReceving() { + + string rootFolderId = AbstractCmisServicesHelper.getAndAssertRootFolder(); + + assertSingleParentReceiving(rootFolderId); + assertMultiFilledParentsReceving(rootFolderId); + } + + [Test] + public void testFolderParentsReceiving() { + + assertSingleParentReceiving(); + assertAllParentsReceiving(); + } + + [Test] + public void testChildrenReceiving() { + + string[] hierarchy = AbstractCmisServicesHelper.createAndAssertFileFolderHierarchy(PAIR_VALUE, + OPTIMAL_CHILDREN_AMOUNT, 0, false); + + bool hasMoreElements; + + AbstractCmisServicesHelper.assertActualIdsFromObjectsWithSpecified( + AbstractCmisServicesHelper.createNavigationServiceClient().getChildren( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), hierarchy[0], + enumTypesOfFileableObjects.any, AbstractCmisServicesHelper.ANY_PROPERTY_FILTER, + false, false, AbstractCmisServicesHelper.TEXTUAL_ZERO, + AbstractCmisServicesHelper.TEXTUAL_ZERO, out hasMoreElements), + createObjectsCopy(hierarchy, null, SINGLE_VALUE, (hierarchy.Length - SINGLE_VALUE))); + + AbstractCmisServicesHelper.deleteAndAssertHierarchy(hierarchy); + } + + [Test] + public void testDescendantsReceiving() { + + string[] hierarchy = AbstractCmisServicesHelper.createAndAssertFileFolderHierarchy( + OPTIMAL_HIERARCHY_DEPTH, OPTIMAL_MINIMAL_CHILDREN_AMOUNT, OPTIMAL_MAXIMUM_CHILDREN_AMOUNT, false); + + AbstractCmisServicesHelper.assertActualIdsFromObjectsWithSpecified( + AbstractCmisServicesHelper.createNavigationServiceClient().getDescendants( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), hierarchy[0], + enumTypesOfFileableObjects.any, FULL_PARENTS_HIERARCHY, + AbstractCmisServicesHelper.ANY_PROPERTY_FILTER, false, false), + createObjectsCopy(hierarchy, null, SINGLE_VALUE, (hierarchy.Length - SINGLE_VALUE))); + + AbstractCmisServicesHelper.deleteAndAssertHierarchy(hierarchy); + } + + [Test] + public void testCheckedOutDocumentsReceving() { + + string[] hierarchy = createCheckedOutDocumentsHierarchy(SINGLE_VALUE + new Random().Next( + MAXIMUM_CHECKEDOUT_DOCS_AMOUNT)); + + bool hasMoreElements; + + AbstractCmisServicesHelper.assertActualIdsFromObjectsWithSpecified( + AbstractCmisServicesHelper.createNavigationServiceClient().getCheckedoutDocs( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), hierarchy[0], + AbstractCmisServicesHelper.ANY_PROPERTY_FILTER, false, false, + AbstractCmisServicesHelper.TEXTUAL_ZERO, AbstractCmisServicesHelper.TEXTUAL_ZERO, + out hasMoreElements), createObjectsCopy(hierarchy, null, + SINGLE_VALUE, (hierarchy.Length - SINGLE_VALUE))); + + Assert.IsFalse(hasMoreElements); + + AbstractCmisServicesHelper.deleteAndAssertHierarchy(hierarchy); + } + + private static void assertSingleParentReceiving(string rootFolderId) { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), rootFolderId, + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.assertDocumentParents(documentId, new string[] {rootFolderId}); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + private static void assertMultiFilledParentsReceving(string rootFolderId) { + + KeyValuePair> multifilledDocument = + AbstractCmisServicesHelper.createMultiFilledDocument(rootFolderId); + + AbstractCmisServicesHelper.assertDocumentParents(multifilledDocument.Value.Key, + multifilledDocument.Value.Value); + + AbstractCmisServicesHelper.deleteAndAssertDocument(multifilledDocument.Value.Key); + AbstractCmisServicesHelper.deleteAndAssertFolder(multifilledDocument.Key, false); + } + + private static void assertSingleParentReceiving() { + + string[] hierarchy = AbstractCmisServicesHelper.createAndAssertFileFolderHierarchy(PAIR_VALUE, + SINGLE_VALUE, SINGLE_VALUE, true); + AbstractCmisServicesHelper.assertFolderParents(hierarchy[hierarchy.Length - SINGLE_VALUE], + createObjectsCopy(hierarchy, null, 0, (hierarchy.Length - SINGLE_VALUE)), false); + AbstractCmisServicesHelper.deleteAndAssertHierarchy(hierarchy); + } + + private static void assertAllParentsReceiving() { + + string[] hierarchy = AbstractCmisServicesHelper.createAndAssertFileFolderHierarchy( + OPTIMAL_FOLDERS_DEPTH_AMOUNT, SINGLE_VALUE, SINGLE_VALUE, true); + AbstractCmisServicesHelper.assertFolderParents(hierarchy[hierarchy.Length - SINGLE_VALUE], + createObjectsCopy(hierarchy, AbstractCmisServicesHelper.getAndAssertRootFolder(), 0, + (hierarchy.Length - SINGLE_VALUE)), true); + AbstractCmisServicesHelper.deleteAndAssertHierarchy(hierarchy); + } + + private static string[] createCheckedOutDocumentsHierarchy(int documentsAmount) { + + string[] hierarchy = new string[documentsAmount + SINGLE_VALUE]; + + hierarchy[0] = AbstractCmisServicesHelper.createAndAssertFolder( + AbstractCmisServicesHelper.generateObjectName(null), + AbstractCmisServicesHelper.getAndAssertRootFolder()); + + for(int i = 0; i < documentsAmount; i++) { + hierarchy[i + SINGLE_VALUE] = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), hierarchy[0], + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + WcfTestClient.ObjectService.enumVersioningState.checkedout, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + } + + return hierarchy; + } + + private static string[] createObjectsCopy(string[] source, string firstElemetn, int sourceBegin, + int elementsAmount) { + + int absentElment = (firstElemetn != null) ? (SINGLE_VALUE):(0); + + string[] result = new string[elementsAmount + absentElment]; + + result[0] = firstElemetn; + + Array.Copy(source, sourceBegin, result, absentElment, elementsAmount); + + return result; + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/NavigationServiceToObjectServiceTypesConverter.cs b/source/test/dotnet/CmisWS/Source/NavigationServiceToObjectServiceTypesConverter.cs new file mode 100644 index 0000000000..e01d2bde35 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/NavigationServiceToObjectServiceTypesConverter.cs @@ -0,0 +1,210 @@ +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class NavigationServiceToObjectServiceTypesConverter: CmisTypesConverter + { + WcfTestClient.ObjectService.cmisProperty[] CmisTypesConverter + .convertProperties(WcfTestClient.NavigationService.cmisProperty[] sourceData) { + + WcfTestClient.ObjectService.cmisProperty[] result = + new WcfTestClient.ObjectService.cmisProperty[sourceData.Length]; + + int index = 0; + + foreach(WcfTestClient.NavigationService.cmisProperty property in sourceData) { + index = determineObjectServiceProperty(result, index, property); + } + + return result; + } + + private static int determineObjectServiceProperty(WcfTestClient.ObjectService.cmisProperty[] result, + int index, WcfTestClient.NavigationService.cmisProperty property) { + + if (property is WcfTestClient.NavigationService.cmisPropertyString) { + result[index++] = convertToStringObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyString)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyBoolean) { + result[index++] = convertToBooleanObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyBoolean)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyDateTime) { + result[index++] = convertToDateTimeObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyDateTime)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyDecimal) { + result[index++] = convertToDecimalObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyDecimal)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyId) { + result[index++] = convertToIdObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyId)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyInteger) { + result[index++] = convertToIntegerObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyInteger)property); + } + + if (property is WcfTestClient.NavigationService.cmisPropertyUri) { + result[index++] = convertToUriObjectServiceProperty( + (WcfTestClient.NavigationService.cmisPropertyUri)property); + } + + return index; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToStringObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyString source) { + + WcfTestClient.ObjectService.cmisPropertyString result = + new WcfTestClient.ObjectService.cmisPropertyString(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToBooleanObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyBoolean source) { + + WcfTestClient.ObjectService.cmisPropertyBoolean result = + new WcfTestClient.ObjectService.cmisPropertyBoolean(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToDateTimeObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyDateTime source) { + + WcfTestClient.ObjectService.cmisPropertyDateTime result = + new WcfTestClient.ObjectService.cmisPropertyDateTime(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToDecimalObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyDecimal source) { + + WcfTestClient.ObjectService.cmisPropertyDecimal result = + new WcfTestClient.ObjectService.cmisPropertyDecimal(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToIdObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyId source) { + + WcfTestClient.ObjectService.cmisPropertyId result = new WcfTestClient.ObjectService.cmisPropertyId(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToIntegerObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyInteger source) { + + WcfTestClient.ObjectService.cmisPropertyInteger result = + new WcfTestClient.ObjectService.cmisPropertyInteger(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToUriObjectServiceProperty( + WcfTestClient.NavigationService.cmisPropertyUri source) { + + WcfTestClient.ObjectService.cmisPropertyUri result = new WcfTestClient.ObjectService.cmisPropertyUri(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.enumPropertyType convertToObjectServicePropertyTypeEnum( + WcfTestClient.NavigationService.enumPropertyType source) { + + switch (source) { + case WcfTestClient.NavigationService.enumPropertyType.boolean: { + return WcfTestClient.ObjectService.enumPropertyType.boolean; + } + + case WcfTestClient.NavigationService.enumPropertyType.datetime: { + return WcfTestClient.ObjectService.enumPropertyType.datetime; + } + + case WcfTestClient.NavigationService.enumPropertyType.html: { + return WcfTestClient.ObjectService.enumPropertyType.html; + } + + case WcfTestClient.NavigationService.enumPropertyType.id: { + return WcfTestClient.ObjectService.enumPropertyType.id; + } + + case WcfTestClient.NavigationService.enumPropertyType.integer: { + return WcfTestClient.ObjectService.enumPropertyType.integer; + } + + case WcfTestClient.NavigationService.enumPropertyType.uri: { + return WcfTestClient.ObjectService.enumPropertyType.uri; + } + + case WcfTestClient.NavigationService.enumPropertyType.xml: { + return WcfTestClient.ObjectService.enumPropertyType.xml; + } + } + + return WcfTestClient.ObjectService.enumPropertyType.@decimal; + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/ObjectServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/ObjectServiceClientTest.cs new file mode 100644 index 0000000000..420a61b18d --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/ObjectServiceClientTest.cs @@ -0,0 +1,324 @@ +using System; +using System.Text; +using NUnit.Framework; +using WcfTestClient.ObjectService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class ObjectServiceClientTest { + private const int TEST_HIERARCHY_DEPTH = 4; + private const int MINIMAL_TEST_OBJECTS_LEVEL_AMOUNT = 2; + + private const string DEFAULT_GUEST_USERNAME = "guest"; + private const string DEFAULT_GUEST_PASSWORD = "guest"; + + private const string REPLACED_CONTENT_ENTRY = "Replaced Content Entry"; + + private const string NAME_FOR_DOCUMENT_RENAMING = "Renamed Document.txt"; + private const string NAME_FOR_FOLDER_RENAMING = "Renamed Folder"; + + private const string CREATOR_PROPERTY_NAME = "CreatedBy"; + + [Test] + public void testDocumentCreationAndDeletion() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName(AbstractCmisServicesHelper + .TEXT_DOCUMENT_POSTFIX), AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testFolderCreationAndDeletion() { + + string folderId = AbstractCmisServicesHelper.createAndAssertFolder( + AbstractCmisServicesHelper.generateObjectName(null), + AbstractCmisServicesHelper.getAndAssertRootFolder()); + + AbstractCmisServicesHelper.deleteAndAssertFolder(folderId, false); + } + + [Test] + public void testPropertiesReceiving() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName(AbstractCmisServicesHelper. + TEXT_DOCUMENT_POSTFIX), AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + cmisPropertiesType properties = AbstractCmisServicesHelper.getObjectProperties(documentId, true); + + Assert.AreEqual(AbstractCmisServicesHelper.UserName, + AbstractCmisServicesHelper.searchPropertyAndGetValueByName(properties.Items, CREATOR_PROPERTY_NAME)); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testPropertiesUpdating() { + + string repositoryId = AbstractCmisServicesHelper.getAndAssertRepositoryId(); + string rootFolderId = AbstractCmisServicesHelper.getAndAssertRootFolder(); + + ObjectServicePortClient client = AbstractCmisServicesHelper.createObjectServiceClient(); + + assertObjectPropertiesUpdating(repositoryId, new DocumentCreatorStrategy( + AbstractCmisServicesHelper.generateObjectName(AbstractCmisServicesHelper + .TEXT_DOCUMENT_POSTFIX), rootFolderId, AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + enumVersioningState.major, AbstractCmisServicesHelper.getTestDocumentContentEntry()), + client, NAME_FOR_DOCUMENT_RENAMING); + + assertObjectPropertiesUpdating(repositoryId, new FolderCreatorStrategy( + AbstractCmisServicesHelper.generateObjectName(null), rootFolderId), client, + NAME_FOR_FOLDER_RENAMING); + } + + [Test] + public void testContentStreamReceiving() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + receiveAndAssertContentStream(documentId, AbstractCmisServicesHelper.createObjectServiceClient(), + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testContentStreamDeletion() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + deleteAndAssertContentStream(documentId, AbstractCmisServicesHelper.getAndAssertRepositoryId(), + AbstractCmisServicesHelper.createObjectServiceClient()); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testAllowableActionsReceving() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + string repositoryId = AbstractCmisServicesHelper.getAndAssertRepositoryId(); + + assertAdminActionsReceiving(repositoryId, documentId); + + assertGuestActionsReceiving(repositoryId, documentId); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testContentStreamSending() { + + string documentName = AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument(documentName, + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + ObjectServicePortClient client = AbstractCmisServicesHelper.createObjectServiceClient(); + + setAndAssertNewContent(documentName, documentId, client); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testObjectMoving() { + + string rootFolderId = AbstractCmisServicesHelper.getAndAssertRootFolder(); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), rootFolderId, + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + string folderId = AbstractCmisServicesHelper.createAndAssertFolder( + AbstractCmisServicesHelper.generateObjectName(null), rootFolderId); + + performAndAssertDocumentMoving(documentId, folderId); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + AbstractCmisServicesHelper.deleteAndAssertFolder(folderId, false); + } + + [Test] + public void testNotEmptyFolderDeletion() { + + string folderId = AbstractCmisServicesHelper.createAndAssertFolder( + AbstractCmisServicesHelper.generateObjectName(null), + AbstractCmisServicesHelper.getAndAssertRootFolder()); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), folderId, + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.deleteAndAssertFolder(folderId, true); + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + AbstractCmisServicesHelper.deleteAndAssertFolder(folderId, false); + } + + [Test] + public void testTreeCreationAndDeletion() { + + AbstractCmisServicesHelper.deleteAndAssertHierarchy( + AbstractCmisServicesHelper.createAndAssertFileFolderHierarchy( + TEST_HIERARCHY_DEPTH, MINIMAL_TEST_OBJECTS_LEVEL_AMOUNT, 0, true)); + } + + private static void assertObjectPropertiesUpdating(string repositoryId, + CmisManipulationsStrategy objectCreator, ObjectServicePortClient client, + string expectedChangedObjectName) { + + string objectId = objectCreator.performManipulations(); + + assertPropertiesUpdating(repositoryId, client, objectId, objectCreator.getName(), + expectedChangedObjectName); + + performObjectDeletionAndAssertion(objectCreator, objectId); + } + + private static void performObjectDeletionAndAssertion(CmisManipulationsStrategy objectCreator, + string objectId) { + + if (objectCreator is DocumentCreatorStrategy) { + AbstractCmisServicesHelper.deleteAndAssertDocument(objectId); + } + + if(objectCreator is FolderCreatorStrategy) { + AbstractCmisServicesHelper.deleteAndAssertFolder(objectId, false); + } + } + + private static void assertPropertiesUpdating(string repositoryId, ObjectServicePortClient client, + string objectId, string expectedName, string expectedChangedName) { + + Assert.AreEqual(expectedName, AbstractCmisServicesHelper.searchPropertyAndGetValueByName( + AbstractCmisServicesHelper.getObjectProperties(objectId, true).Items, + AbstractCmisServicesHelper.NAME_PROPERTY)); + + client.updateProperties(repositoryId, ref objectId, null, + AbstractCmisServicesHelper.createCmisObjectProperties(expectedChangedName)); + + Assert.AreEqual(expectedChangedName, AbstractCmisServicesHelper.searchPropertyAndGetValueByName( + AbstractCmisServicesHelper.getObjectProperties(objectId, true).Items, + AbstractCmisServicesHelper.NAME_PROPERTY)); + } + + private static void receiveAndAssertContentStream(string documentId, ObjectServicePortClient client, + byte[] expectedContent) { + + cmisContentStreamType result = client.getContentStream( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), documentId); + + Assert.AreEqual(expectedContent.Length, result.stream.Length); + Assert.AreEqual(Encoding.GetEncoding(AbstractCmisServicesHelper.DEFAULT_ENCODING). + GetString(expectedContent), Encoding.GetEncoding(AbstractCmisServicesHelper. + DEFAULT_ENCODING).GetString(result.stream)); + } + + private void deleteAndAssertContentStream(string documentId, string repositoryId, + ObjectServicePortClient client) { + + receiveAndAssertContentStream(documentId, client, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + client.deleteContentStream(repositoryId, documentId); + + try { + client.getContentStream(repositoryId, documentId); + + Assert.Fail("Content stream was not deleted"); + } catch(Exception) { + } + } + + private static void assertAdminActionsReceiving(string repositoryId, string documentId) { + + ObjectServicePortClient client = AbstractCmisServicesHelper.createObjectServiceClient(); + + cmisAllowableActionsType response = client.getAllowableActions(repositoryId, documentId); + + Assert.IsNotNull(response); + Assert.IsTrue(response.canDelete); + Assert.IsTrue(response.canDeleteContent); + Assert.IsTrue(response.canCheckout); + Assert.IsTrue(response.canUpdateProperties); + Assert.IsFalse(response.canGetAllVersions); + Assert.IsFalse(response.canCheckin); + Assert.IsFalse(response.canCancelCheckout); + } + + private static void assertGuestActionsReceiving(string repositoryId, string documentId) { + + ObjectServicePortClient client = AbstractCmisServicesHelper.createObjectServiceClient( + DEFAULT_GUEST_USERNAME, DEFAULT_GUEST_PASSWORD); + + cmisAllowableActionsType response = client.getAllowableActions(repositoryId, documentId); + + Assert.IsNotNull(response); + Assert.IsFalse(response.canDelete); + Assert.IsFalse(response.canDeleteContent); + Assert.IsFalse(response.canCheckout); + Assert.IsFalse(response.canUpdateProperties); + Assert.IsFalse(response.canGetAllVersions); + Assert.IsFalse(response.canCheckin); + Assert.IsFalse(response.canCancelCheckout); + } + + private static void setAndAssertNewContent(string documentName, string documentId, + ObjectServicePortClient client) { + + try { + client.setContentStream(AbstractCmisServicesHelper.getAndAssertRepositoryId(), ref documentId, + true, AbstractCmisServicesHelper.createCmisDocumentContent(documentName, + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + Encoding.GetEncoding(AbstractCmisServicesHelper.DEFAULT_ENCODING) + .GetBytes(REPLACED_CONTENT_ENTRY))); + + receiveAndAssertContentStream(documentId, client, Encoding.GetEncoding( + AbstractCmisServicesHelper.DEFAULT_ENCODING).GetBytes(REPLACED_CONTENT_ENTRY)); + } catch(Exception e) { + Assert.Fail(e.Message); + } + } + + private static void performAndAssertDocumentMoving(string documentId, string folderId) { + + ObjectServicePortClient client = AbstractCmisServicesHelper.createObjectServiceClient(); + + client.moveObject(AbstractCmisServicesHelper.getAndAssertRepositoryId(), documentId, folderId, null); + + AbstractCmisServicesHelper.assertDocumentParents(documentId, new string[] {folderId}); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/RepositoryServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/RepositoryServiceClientTest.cs new file mode 100644 index 0000000000..69e610288b --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/RepositoryServiceClientTest.cs @@ -0,0 +1,100 @@ +using System; +using NUnit.Framework; +using WcfTestClient.RepositoryService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class RepositoryServiceClientTest { + [Test] + public void testGetRepositories() { + + try { + AbstractCmisServicesHelper.getAndAssertRepositoryId(); + } catch (Exception e) { + Assert.Fail(e.Message); + } + } + + [Test] + public void testGetRepositoryInfo() { + + try { + RepositoryServicePortClient client = AbstractCmisServicesHelper.createRepositoryServiceClient(); + + assertRepositoryInfoReponse(client.getRepositoryInfoWrapper(AbstractCmisServicesHelper. + getAndAssertRepositoryId())); + } catch (Exception e) { + Assert.Fail(e.Message); + } + } + + [Test] + public void testGetTypes() { + + try { + assertGetTypesResponse(AbstractCmisServicesHelper.createRepositoryServiceClient()); + } catch (Exception e) { + Assert.Fail(e.Message); + } + } + + [Test] + public void testGetTypeDefinition() { + + try { + RepositoryServicePortClient client = AbstractCmisServicesHelper.createRepositoryServiceClient(); + + string typeId = assertGetTypesResponse(client); + + Assert.IsNotNull(typeId); + Assert.IsTrue(typeId.Length > AbstractCmisServicesHelper.MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH); + + getTypeDefinitionResponse response = client.getTypeDefinitionWrapper(AbstractCmisServicesHelper. + getAndAssertRepositoryId(), typeId); + + Assert.IsNotNull(response, typeId); + } catch (Exception e) { + Assert.Fail(e.Message); + } + } + + private static void assertRepositoryInfoReponse(getRepositoryInfoResponse repositoryInfo) { + + Assert.IsNotNull(repositoryInfo); + assertCapabilities(repositoryInfo); + } + + private string assertGetTypesResponse(RepositoryServicePortClient client) { + + bool hasMoreElements; + + cmisTypeDefinitionType[] types = client.getTypes(AbstractCmisServicesHelper.getAndAssertRepositoryId(), + AbstractCmisServicesHelper.DOCUMENT_TYPE, false, AbstractCmisServicesHelper.TEXTUAL_ZERO, + AbstractCmisServicesHelper.TEXTUAL_ZERO, out hasMoreElements); + Assert.IsNotNull(types); + Assert.IsTrue((types.Length >= AbstractCmisServicesHelper.MINIMAL_ARRAY_LIKE_STRUCTURES_LENGTH) + && types[0].fileable && hasMoreElements); + + return types[new Random().Next(types.Length)].typeId; + } + + private static void assertCapabilities(getRepositoryInfoResponse repositoryInfo) { + + Assert.IsFalse(repositoryInfo.capabilities.capabilityUnfiling); + Assert.IsFalse(repositoryInfo.capabilities.capabilityPWCSearchable); + Assert.IsFalse(repositoryInfo.capabilities.capabilityVersionSpecificFiling); + Assert.IsFalse(repositoryInfo.capabilities.capabilityAllVersionsSearchable); + + Assert.IsTrue(repositoryInfo.capabilities.capabilityMultifiling); + Assert.IsTrue(repositoryInfo.capabilities.capabilityPWCUpdateable); + + Assert.AreEqual(enumCapabilityJoin.nojoin, repositoryInfo.capabilities.capabilityJoin); + Assert.AreEqual(enumCapabilityQuery.none, repositoryInfo.capabilities.capabilityQuery); + Assert.AreEqual(enumCapabilityFullText.fulltextandstructured, + repositoryInfo.capabilities.capabilityFullText); + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/SecurityMessageHeader.cs b/source/test/dotnet/CmisWS/Source/SecurityMessageHeader.cs new file mode 100644 index 0000000000..5f39cfe141 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/SecurityMessageHeader.cs @@ -0,0 +1,129 @@ +using System; +using System.Xml; +using System.ServiceModel.Channels; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class SecurityMessageHeader: MessageHeader { + private const int MINIMAL_ALLOWED_STRING_LENGTH = 1; + private const int TIME_TOKEN_POSITION = 3; + private const int LAST_DATE_TOKEN_POSITION = 2; + + private const int EXPIRE_ODDS = 4167; + + private const string DOT = "."; + private const char DOT_SYMBOL = '.'; + private const string MINUS = "-"; + private const string BREAK = " "; + private const char BREAK_SYMBOL = ' '; + private const string TIME_SPECIFICATOR = "T"; + private const string DATE_TIME_ZONE_SPECIFICATOR = "Z"; + + private const string SECURITY_HEADER_NAME = "Security"; + private const string SECURITY_HEADER_NAME_SPACE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w" + + "ssecurity-secext-1.0.xsd"; + private const string SECURITY_HEADER_ENTRY = "\n \n" + + " {1}\n {2}\n" + + " \n \n {4}\n {5}\n IGRKG/ABNywDNZ1/lxxarA==\n {6}\n \n"; + + private string value; + + public static MessageHeader CreateHeader(string userName, string password) { + + string formattedSecurityHeader = string.Format(SECURITY_HEADER_ENTRY, new object[] { + DateTime.Now.TimeOfDay.Ticks, formatDate(), formatDate(new DateTime(DateTime.Now.Ticks + EXPIRE_ODDS). + ToLocalTime().ToString()), DateTime.Now.TimeOfDay.Ticks, userName, password, formatDate()}); + + return new SecurityMessageHeader(formattedSecurityHeader); + } + + protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion) { + + writer.WriteRaw(value); + } + + public override string Actor { + + get { + return string.Empty; + } + } + + public override bool IsReferenceParameter { + + get { + return true; + } + } + + public override bool MustUnderstand { + + get { + return true; + } + } + + public override bool Relay { + + get { + return false; + } + } + + public override string ToString() { + + return base.ToString(); + } + + public override string Namespace { + + get { + return SECURITY_HEADER_NAME_SPACE; + } + } + + public override string Name { + + get { + return SECURITY_HEADER_NAME; + } + } + + private SecurityMessageHeader(string value) { + + this.value = value; + } + + private static string formatDate() { + + return formatDate(DateTime.Now.ToLocalTime().ToString()); + } + + private static string formatDate(string sourceDate) { + + if (!(sourceDate is string) || (sourceDate.Length < MINIMAL_ALLOWED_STRING_LENGTH)) { + sourceDate = DateTime.Now.ToLocalTime().ToString(); + } + + return reverseDate(sourceDate) + DOT + DateTime.Now.Millisecond + DATE_TIME_ZONE_SPECIFICATOR; + } + + private static string reverseDate(string sample) { + + string[] dateFields = sample.Split(new char[] {DOT_SYMBOL, BREAK_SYMBOL}); + + int i = LAST_DATE_TOKEN_POSITION; + + return dateFields[i--] + MINUS + dateFields[i--] + MINUS + dateFields[i] + TIME_SPECIFICATOR + + dateFields[TIME_TOKEN_POSITION]; + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/SoapRequestHeaderProcessorAttribute.cs b/source/test/dotnet/CmisWS/Source/SoapRequestHeaderProcessorAttribute.cs new file mode 100644 index 0000000000..1e4f4263a7 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/SoapRequestHeaderProcessorAttribute.cs @@ -0,0 +1,35 @@ +using System; +using System.ServiceModel.Channels; +using System.ServiceModel.Dispatcher; +using System.ServiceModel.Description; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class SoapRequestHeaderProcessorAttribute: Attribute, IEndpointBehavior { + private string userName; + private string password; + + public SoapRequestHeaderProcessorAttribute(string userName, string password) { + + this.userName = userName; + this.password = password; + } + + void IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime) { + + clientRuntime.MessageInspectors.Add(new SoapRequestMassagesInspector(userName, password)); + } + + void IEndpointBehavior.AddBindingParameters(ServiceEndpoint endpoint, + BindingParameterCollection bindingParameters) { + } + + void IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher) { + } + + void IEndpointBehavior.Validate(ServiceEndpoint endpoint) { + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/SoapRequestMassagesInspector.cs b/source/test/dotnet/CmisWS/Source/SoapRequestMassagesInspector.cs new file mode 100644 index 0000000000..f3fe8f5221 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/SoapRequestMassagesInspector.cs @@ -0,0 +1,31 @@ +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.ServiceModel.Dispatcher; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class SoapRequestMassagesInspector: IClientMessageInspector { + private string userName; + private string password; + + public SoapRequestMassagesInspector(string userName, string password) { + + this.userName = userName; + this.password = password; + } + + object IClientMessageInspector.BeforeSendRequest(ref Message request, IClientChannel channel) { + + request.Headers.Clear(); + + request.Headers.Add(SecurityMessageHeader.CreateHeader(userName, password)); + + return null; + } + + void IClientMessageInspector.AfterReceiveReply(ref Message reply, object correlationState) { + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/VersioninServiceClientTest.cs b/source/test/dotnet/CmisWS/Source/VersioninServiceClientTest.cs new file mode 100644 index 0000000000..47caab1e65 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/VersioninServiceClientTest.cs @@ -0,0 +1,171 @@ +using System.Text; +using NUnit.Framework; +using WcfTestClient.VersioningService; + +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + [TestFixture] + public class VersioningServiceClientTest { + private const int EXPECTED_VERSIONS_AMOUNT = 3; + private const int DIFFERENT_VERSIONS_AMOUNT = EXPECTED_VERSIONS_AMOUNT - 1; + + private const string CHECKIN_COMMENT = "Checked In with NUnit"; + private const string CHECKIN_CONTENT_TEXT = "Check In test result entry"; + + private const string COMMON_VERSION_SUFFIX = "/1."; + + private const string EXPECTED_VERSION_NUMBER = COMMON_VERSION_SUFFIX + "1"; + + private static byte[] checkinContentEntry = Encoding.GetEncoding( + AbstractCmisServicesHelper.DEFAULT_ENCODING).GetBytes(CHECKIN_CONTENT_TEXT); + + [Test] + public void testDocumentCheckoutingAndCheckoutCanceling() { + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument( + AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX), + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.cancelCheckOutAndAssert( + AbstractCmisServicesHelper.checkOutAndAssert(documentId)); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testLatestVersionPropertiesReceiving() { + + string documentName = AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument(documentName, + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + AbstractCmisServicesHelper.getAndAssertLatestVersionProperties(documentId, documentName, null, false); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + + } + + [Test] + public void testAllVersionsDeletion() { + + string documentName = AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument(documentName, + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + assertAllVersionsDeletion(documentName, documentId, + AbstractCmisServicesHelper.createVersioningServiceClient()); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testDocumentCheckIning() { + + string documentName = AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument(documentName, + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + WcfTestClient.ObjectService.enumVersioningState.checkedout, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + documentId = assertCheckIning(documentName, documentId); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + [Test] + public void testAllVersionsReceiving() { + + string documentName = AbstractCmisServicesHelper.generateObjectName( + AbstractCmisServicesHelper.TEXT_DOCUMENT_POSTFIX); + + string documentId = AbstractCmisServicesHelper.createAndAssertDocument(documentName, + AbstractCmisServicesHelper.getAndAssertRootFolder(), + AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE, + WcfTestClient.ObjectService.enumVersioningState.checkedout, + AbstractCmisServicesHelper.getTestDocumentContentEntry()); + + documentId = assertCheckIning(documentName, documentId); + + assertVersionsReceiving(documentId, AbstractCmisServicesHelper.createVersioningServiceClient()); + + AbstractCmisServicesHelper.deleteAndAssertDocument(documentId); + } + + private static void assertAllVersionsDeletion(string documentName, string documentId, + VersioningServicePortClient client) { + + client.deleteAllVersions(AbstractCmisServicesHelper.getAndAssertRepositoryId(), documentId); + + AbstractCmisServicesHelper.getAndAssertLatestVersionProperties(documentId, documentName, null, true); + } + + private static string assertCheckIning(string documentName, string documentId) { + + AbstractCmisServicesHelper.assertCheckedOutDocument(documentId, true); + + AbstractCmisServicesHelper.createVersioningServiceClient().checkIn( + AbstractCmisServicesHelper.getAndAssertRepositoryId(), ref documentId, false, + null, createVersioningContentStream(documentName), CHECKIN_COMMENT); + + AbstractCmisServicesHelper.getAndAssertLatestVersionProperties(documentId, documentName, + EXPECTED_VERSION_NUMBER, false); + + return documentId; + } + + private static void assertVersionsReceiving(string documentId, VersioningServicePortClient client) { + + cmisObjectType[] response = client.getAllVersions(AbstractCmisServicesHelper.getAndAssertRepositoryId(), + documentId, AbstractCmisServicesHelper.ANY_PROPERTY_FILTER, false, false); + + Assert.IsNotNull(response); + Assert.AreEqual(EXPECTED_VERSIONS_AMOUNT, response.Length); + + assertOlderVersions(response); + } + + private static void assertOlderVersions(cmisObjectType[] response) { + + Assert.IsTrue(((string)AbstractCmisServicesHelper.searchPropertyAndGetValueByName( + AbstractCmisServicesHelper.VERSIONING_CONVERTER.convertProperties( + response[0].properties.Items), AbstractCmisServicesHelper + .OBJECT_IDENTIFIER_PROPERTY)).EndsWith(COMMON_VERSION_SUFFIX + 1)); + + for (int currentVersionNumber = (DIFFERENT_VERSIONS_AMOUNT - 1); currentVersionNumber > 0; + currentVersionNumber--) { + Assert.IsTrue(((string)AbstractCmisServicesHelper.searchPropertyAndGetValueByName( + AbstractCmisServicesHelper.VERSIONING_CONVERTER.convertProperties( + response[DIFFERENT_VERSIONS_AMOUNT - currentVersionNumber].properties.Items), + AbstractCmisServicesHelper.OBJECT_IDENTIFIER_PROPERTY)).EndsWith( + COMMON_VERSION_SUFFIX + currentVersionNumber)); + } + } + + private static cmisContentStreamType createVersioningContentStream(string documentName) { + + cmisContentStreamType result = new cmisContentStreamType(); + result.filename = documentName; + result.length = checkinContentEntry.Length.ToString(); + result.mimeType = AbstractCmisServicesHelper.TEXT_DOCUMENT_MIMETYPE; + result.stream = checkinContentEntry; + + return result; + } + } +} diff --git a/source/test/dotnet/CmisWS/Source/VersioningServiceToObjectServiceTypesConverter.cs b/source/test/dotnet/CmisWS/Source/VersioningServiceToObjectServiceTypesConverter.cs new file mode 100644 index 0000000000..7e89341816 --- /dev/null +++ b/source/test/dotnet/CmisWS/Source/VersioningServiceToObjectServiceTypesConverter.cs @@ -0,0 +1,210 @@ +namespace WcfCmisWSTests { + /// + /// author: Dmitry Velichkevich + /// + public class VersioningServiceToObjectServiceTypesConverter: CmisTypesConverter + { + WcfTestClient.ObjectService.cmisProperty[] CmisTypesConverter + .convertProperties(WcfTestClient.VersioningService.cmisProperty[] sourceData) { + + WcfTestClient.ObjectService.cmisProperty[] result = + new WcfTestClient.ObjectService.cmisProperty[sourceData.Length]; + + int index = 0; + + foreach (WcfTestClient.VersioningService.cmisProperty property in sourceData) { + index = determineObjectServiceProperty(result, index, property); + } + + return result; + } + + private static int determineObjectServiceProperty(WcfTestClient.ObjectService.cmisProperty[] result, + int index, WcfTestClient.VersioningService.cmisProperty property) { + + if (property is WcfTestClient.VersioningService.cmisPropertyString) { + result[index++] = convertToStringObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyString)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyBoolean) { + result[index++] = convertToBooleanObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyBoolean)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyDateTime) { + result[index++] = convertToDateTimeObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyDateTime)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyDecimal) { + result[index++] = convertToDecimalObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyDecimal)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyId) { + result[index++] = convertToIdObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyId)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyInteger) { + result[index++] = convertToIntegerObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyInteger)property); + } + + if (property is WcfTestClient.VersioningService.cmisPropertyUri) { + result[index++] = convertToUriObjectServiceProperty( + (WcfTestClient.VersioningService.cmisPropertyUri)property); + } + + return index; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToStringObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyString source) { + + WcfTestClient.ObjectService.cmisPropertyString result = + new WcfTestClient.ObjectService.cmisPropertyString(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToBooleanObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyBoolean source) { + + WcfTestClient.ObjectService.cmisPropertyBoolean result = + new WcfTestClient.ObjectService.cmisPropertyBoolean(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToDateTimeObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyDateTime source) { + + WcfTestClient.ObjectService.cmisPropertyDateTime result = + new WcfTestClient.ObjectService.cmisPropertyDateTime(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToDecimalObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyDecimal source) { + + WcfTestClient.ObjectService.cmisPropertyDecimal result = + new WcfTestClient.ObjectService.cmisPropertyDecimal(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToIdObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyId source) { + + WcfTestClient.ObjectService.cmisPropertyId result = new WcfTestClient.ObjectService.cmisPropertyId(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToIntegerObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyInteger source) { + + WcfTestClient.ObjectService.cmisPropertyInteger result = + new WcfTestClient.ObjectService.cmisPropertyInteger(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.cmisProperty convertToUriObjectServiceProperty( + WcfTestClient.VersioningService.cmisPropertyUri source) { + + WcfTestClient.ObjectService.cmisPropertyUri result = new WcfTestClient.ObjectService.cmisPropertyUri(); + + result.AnyAttr = source.AnyAttr; + result.index = source.index; + result.name = source.name; + result.propertyType = convertToObjectServicePropertyTypeEnum(source.propertyType); + result.propertyTypeSpecified = source.propertyTypeSpecified; + result.value = source.value; + + return result; + } + + private static WcfTestClient.ObjectService.enumPropertyType convertToObjectServicePropertyTypeEnum( + WcfTestClient.VersioningService.enumPropertyType source) { + + switch (source) { + case WcfTestClient.VersioningService.enumPropertyType.boolean: { + return WcfTestClient.ObjectService.enumPropertyType.boolean; + } + + case WcfTestClient.VersioningService.enumPropertyType.datetime: { + return WcfTestClient.ObjectService.enumPropertyType.datetime; + } + + case WcfTestClient.VersioningService.enumPropertyType.html: { + return WcfTestClient.ObjectService.enumPropertyType.html; + } + + case WcfTestClient.VersioningService.enumPropertyType.id: { + return WcfTestClient.ObjectService.enumPropertyType.id; + } + + case WcfTestClient.VersioningService.enumPropertyType.integer: { + return WcfTestClient.ObjectService.enumPropertyType.integer; + } + + case WcfTestClient.VersioningService.enumPropertyType.uri: { + return WcfTestClient.ObjectService.enumPropertyType.uri; + } + + case WcfTestClient.VersioningService.enumPropertyType.xml: { + return WcfTestClient.ObjectService.enumPropertyType.xml; + } + } + + return WcfTestClient.ObjectService.enumPropertyType.@decimal; + } + } +} diff --git a/source/test/dotnet/CmisWS/WcfCmisWSTests.csproj b/source/test/dotnet/CmisWS/WcfCmisWSTests.csproj new file mode 100644 index 0000000000..34b38ad72e --- /dev/null +++ b/source/test/dotnet/CmisWS/WcfCmisWSTests.csproj @@ -0,0 +1,271 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {55907DD1-87C0-4544-AFBC-4B9761E2CFBA} + Library + Properties + WcfCmisWSTests + WcfCmisWSTests + v3.5 + 512 + + + true + full + false + build\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + 3.5 + + + 3.0 + + + 3.0 + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + True + True + Reference.svcmap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + Reference.svcmap + + + Reference.svcmap + + + Reference.svcmap + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + Reference.svcmap + + + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + Reference.svcmap + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + Reference.svcmap + + + + + + + + + + + + + WCF Proxy Generator + Reference.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/WcfCmisWSTests.sln b/source/test/dotnet/CmisWS/WcfCmisWSTests.sln new file mode 100644 index 0000000000..fb212c9bcf --- /dev/null +++ b/source/test/dotnet/CmisWS/WcfCmisWSTests.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WcfCmisWSTests", "WcfCmisWSTests.csproj", "{55907DD1-87C0-4544-AFBC-4B9761E2CFBA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {55907DD1-87C0-4544-AFBC-4B9761E2CFBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {55907DD1-87C0-4544-AFBC-4B9761E2CFBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55907DD1-87C0-4544-AFBC-4B9761E2CFBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {55907DD1-87C0-4544-AFBC-4B9761E2CFBA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/source/test/dotnet/CmisWS/WcfCmisWSTests.suo b/source/test/dotnet/CmisWS/WcfCmisWSTests.suo new file mode 100644 index 0000000000..f4f4eb6dbc Binary files /dev/null and b/source/test/dotnet/CmisWS/WcfCmisWSTests.suo differ diff --git a/source/test/dotnet/CmisWS/app.config b/source/test/dotnet/CmisWS/app.config new file mode 100644 index 0000000000..d18e44660e --- /dev/null +++ b/source/test/dotnet/CmisWS/app.config @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/build.bat b/source/test/dotnet/CmisWS/build.bat new file mode 100644 index 0000000000..c65f615d59 --- /dev/null +++ b/source/test/dotnet/CmisWS/build.bat @@ -0,0 +1,16 @@ +@echo off + +set SDK_LOCATION=c:\WINDOWS\Microsoft.NET\Framework +set COMPILER=%SDK_LOCATION%\v3.5\MSBuild.exe + +if not exist %COMPILER% goto reportErrorAndExit + +%COMPILER% WcfCmisWSTests.csproj + +goto end + +:reportErrorAndExit +echo --- CRITICAL ENVIRONMENT ERROR: .NET v3.5 compiler ("%COMPILER%") was not found at "%SDK_LOCATION%" location! Please, install .NET v3.5 SDK or reconfigure SDK_LOCATION variable +:end + +pause \ No newline at end of file diff --git a/source/test/dotnet/CmisWS/readme.txt b/source/test/dotnet/CmisWS/readme.txt new file mode 100644 index 0000000000..7ba977c3b1 --- /dev/null +++ b/source/test/dotnet/CmisWS/readme.txt @@ -0,0 +1,45 @@ +COMPILATION + + To compile "WcfCmisWSTests" project you need: + 1) install .NET SDK v3.5 to your system; + 2) copy full "WcfCmisWSTests" project to some directory (e.g.: "C:\WcfCmisWSTests"); + 3) check if the .NET SDK location and "SDK_LOCATION" variable value in the "build.bat" file are the same + and introduce neccessary corrections; + 4) run "build.bat" file. + After compilation finished "build" folder should be created in the project directory. This folder will + contain all neccessary for tests execution libraries and configuration files. + "WcfCmisWSTests.dll" library is the library that design for execution in the NUnit. + + NOTE: this tests were developed under NUnit 2.4.5 version. + +TESTS RUNNING + + To run tests you may use one of the next two methods: + I. 1) launch "NUnit.exe" executable; + 2) choose "File" > "Open project..." menu and in file dialog select "WcfCmisWSTests.dll" file and + click "Open" button; + 3) in the left side of the main "NUnit" window select neccessary test tree node. + NOTE: select most top node to select all tests; you can make right click on that tree and click on + "Show CheckBoxes" menu item to select not grouped tests; + 4) After "Run" button clicking "NUnit" will start test execution. "Run" button became disable and + "Stop" button - enabled. During tests execution "NUnit" will mark tests nodes in the tree with + icons those will be conform to passing status (see "NUnit" documentation for more details). After + "Run" button became enabled again you can see for errors and/or warnings reports and some other log + information if any clicking on the tabs placed in the below of main "NUnit" window. + II. 1) launch system command line console ("Start" > "Run...", type "cmd" in the appeared window and click + "Ok"); + 2) if system environment not configured with "NUnit" home path navigate with "cd" system command to + "NUnit" home folder; + 3) type "nunit-console.exe", break and full path to "WcfCmisWSTests.dll" file (e.g.: nunit-console.exe + C:\WcfCmisWSTests\build\WcfCmisWSTests.dll); + 4)* type break. Now you can introduce some options for "NUnit" system and report generation. For + example, to store testing results to the xml you can add "xml=C:\test-report.xml". For more details + about "NUnit" conlose options see "NUnit" documentation or execute "nunit-console.exe" without any + parameters; + 5) press "Enter" key. After "NUnit" finish tests execution you can see generated report. + + * This step is optional and may be skipped. + + NOTE: by default "NUnit" save testing results in the "TestResult.xml" or ".xml" + file in the "NUnit" home directory. Also some information about tests execution will be displayed in + the console window.