got web app working

This commit is contained in:
tmont 2011-02-10 04:39:59 +00:00
parent 6302f9e995
commit 4f0dd9a6e8
32 changed files with 13563 additions and 97 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,716 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Practices.Unity.Interception.Configuration</name>
</assembly>
<members>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement">
<summary>
Configuration element that lets you specify additional interfaces
to add when this type is intercepted.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.TypeName">
<summary>
Type of interface to add.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.AddInterfaceElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElement">
<summary>
Configuration element representing a call handler.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement">
<summary>
Base class for the two children of the Policy element:
MatchingRuleElement and CallHandlerElement.
</summary>
<remarks>
<para>
These configuration elements have a required "name" attribute, an optional "type" attribute, and
optional child elements &lt;lifetime&gt; and &lt;injection&gt;
</para>
<para>
Elements without a value for the type attribute can only have a value for the name attribute, and
indicate that the represented handler or rule is configured elsewhere and that a reference to
the given name must be added to the policy to be resolved, while elements with a value for the type
attribute indicate how the represented handler or rule should be built and can optionally specify
lifetime management and injection configuration.
</para>
<para>
This element is similar to the <see cref="T:Microsoft.Practices.Unity.Configuration.RegisterElement"/>, except that it does not provide
an extension point for arbitrary configuration.
</para>
</remarks>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.DeserializeElement(System.Xml.XmlReader,System.Boolean)">
<summary>
Reads XML from the configuration file.
</summary>
<param name="reader">The <see cref="T:System.Xml.XmlReader"/> that reads from the configuration file.
</param><param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element to read is locked.
- or -
An attribute of the current node is not recognized.
- or -
The lock status of the current node cannot be determined.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Name">
<summary>
Name of this item
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.TypeName">
<summary>
Type that implements this matching rule or call handler.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Injection">
<summary>
Injection members that control how this item is created.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyChildElement.Lifetime">
<summary>
Lifetime manager for this item.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElement"/>s for configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Causes the configuration system to throw an exception.
</summary>
<returns>
true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
</returns>
<param name="elementName">The name of the unrecognized element.
</param><param name="reader">An input stream that reads XML from the configuration file.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element specified in <paramref name="elementName"/> is the &lt;clear&gt; element.
</exception><exception cref="T:System.ArgumentException"><paramref name="elementName"/> starts with the reserved prefix "config" or "lock".
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.CallHandlerElementCollection.Item(System.String)">
<summary>
Retrieve a call handler element from the collection by name.
</summary>
<param name="name">Name to look up.</param>
<returns>The rule, or null if not in the collection.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.DefaultElement">
<summary>
The &lt;default&gt; element that appears inside an &lt;interceptor&gt; element.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement">
<summary>
Base class for the default and key elements that can occur
inside the &lt;interceptor&gt; element.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.TypeName">
<summary>
Type name that this interceptor will be registered for.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.ResolvedType">
<summary>
Return the type object that is resolved from the <see cref="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement.TypeName"/> property.
</summary>
<returns>The type object.</returns>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.DefaultElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement">
<summary>
Configuration elmement for specifying
interception behaviors for a type.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.DeserializeElement(System.Xml.XmlReader,System.Boolean)">
<summary>
Reads XML from the configuration file.
</summary>
<param name="reader">The <see cref="T:System.Xml.XmlReader"/> that reads from the configuration file.
</param><param name="serializeCollectionKey">true to serialize only the collection key properties; otherwise, false.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element to read is locked.
- or -
An attribute of the current node is not recognized.
- or -
The lock status of the current node cannot be determined.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.TypeName">
<summary>
Type of behavior to add.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.Name">
<summary>
Name of behavior to resolve.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.IsDefaultForType">
<summary>
Should this behavior be configured as a default behavior for this type, or
specifically for this type/name pair only?
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionBehaviorElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension">
<summary>
Section extension class used to add the elements needed to configure
Unity interception to the configuration schema.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension.AddExtensions(Microsoft.Practices.Unity.Configuration.SectionExtensionContext)">
<summary>
Add the extensions to the section via the context.
</summary>
<param name="context">Context object that can be used to add elements and aliases.</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement">
<summary>
A configuration element that contains the top-level container configuration
information for interception - handler policies and global interceptor definitions.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Apply this element's configuration to the given <paramref name="container"/>.
</summary>
<param name="container">Container to configure.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionElement.Policies">
<summary>
Policies defined for this container.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement">
<summary>
Configuration element that lets you configure
what interceptor to use for a type.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.#ctor">
<summary>
Initialize a new <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement"/>.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.TypeName">
<summary>
Type name for the interceptor to apply.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.Name">
<summary>
Name to use when resolving interceptors from the container.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.IsDefaultForType">
<summary>
Should this interceptor be registered as the default for the contained
type, or only for this particular type/name pair?
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElement"/> objects as shown
in configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection.CreateNewElement">
<summary>
When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.
</summary>
<returns>
A new <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorRegistrationElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement">
<summary>
Configuration element that provides a top-level element for
configuration interceptors for types in a container.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.ConfigureContainer(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Apply this element's configuration to the given <paramref name="container"/>.
</summary>
<param name="container">Container to configure.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsElement.Interceptors">
<summary>
The various child elements that are contained in this element.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement">
<summary>
Configuration element that represents the configuration for
a specific interceptor, as presented in the config file inside
the &lt;interceptors&gt; element.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.TypeName">
<summary>
Type of interceptor to configure.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.Registrations">
<summary>
The types that this interceptor will be registered against.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.Value">
<summary>
Any value passed to the type converter.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement.TypeConverterTypeName">
<summary>
Type converter to use to create the interceptor, if any.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElement"/> objects
as stored in configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptorsInterceptorElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement">
<summary>
The &lt;key&gt; element that occurs inside an &lt;interceptor&gt; element
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.RegisterInterceptor(Microsoft.Practices.Unity.IUnityContainer,Microsoft.Practices.Unity.InterceptionExtension.IInterceptor)">
<summary>
Actually register the interceptor against this type.
</summary>
<param name="container">Container to configure.</param>
<param name="interceptor">interceptor to register.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.KeyElement.Name">
<summary>
Name registration should be under. To register under the default, leave blank.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElement">
<summary>
A configuration element representing a matching rule.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElement"/>s for configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Causes the configuration system to throw an exception.
</summary>
<returns>
true if the unrecognized element was deserialized successfully; otherwise, false. The default is false.
</returns>
<param name="elementName">The name of the unrecognized element.
</param><param name="reader">An input stream that reads XML from the configuration file.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element specified in <paramref name="elementName"/> is the &lt;clear&gt; element.
</exception><exception cref="T:System.ArgumentException"><paramref name="elementName"/> starts with the reserved prefix "config" or "lock".
</exception>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.MatchingRuleElementCollection.Item(System.String)">
<summary>
Retrieve a matching rule element from the collection by name.
</summary>
<param name="name">Name to look up.</param>
<returns>The rule, or null if not in the collection.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement">
<summary>
Configuration element for building up an interception policy.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.OnDeserializeUnrecognizedElement(System.String,System.Xml.XmlReader)">
<summary>
Gets a value indicating whether an unknown element is encountered during deserialization.
</summary>
<returns>
true when an unknown element is encountered while deserializing; otherwise, false.
</returns>
<param name="elementName">The name of the unknown subelement.
</param><param name="reader">The <see cref="T:System.Xml.XmlReader"/> being used for deserialization.
</param><exception cref="T:System.Configuration.ConfigurationErrorsException">The element identified by <paramref name="elementName"/> is locked.
- or -
One or more of the element's attributes is locked.
- or -
<paramref name="elementName"/> is unrecognized, or the element has an unrecognized attribute.
- or -
The element has a Boolean attribute with an invalid value.
- or -
An attempt was made to deserialize a property more than once.
- or -
An attempt was made to deserialize a property that is not a valid member of the element.
- or -
The element cannot contain a CDATA or text element.
</exception>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.SerializeContent(System.Xml.XmlWriter)">
<summary>
Write the contents of this element to the given <see cref="T:System.Xml.XmlWriter"/>.
</summary>
<remarks>The caller of this method has already written the start element tag before
calling this method, so deriving classes only need to write the element content, not
the start or end tags.</remarks>
<param name="writer">Writer to send XML content to.</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.Name">
<summary>
Name of this policy.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.MatchingRules">
<summary>
Matching rules for this policy.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement.CallHandlers">
<summary>
Call handlers for this policy.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection">
<summary>
A collection of <see cref="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElement"/> in the configuration.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
<summary>
Gets the element key for a specified configuration element when overridden in a derived class.
</summary>
<returns>
An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
</returns>
<param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.
</param>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyElementCollection.Item(System.String)">
<summary>
Indexer to retrieve policy element objects by name.
</summary>
<param name="policyName">Name of policy to get.</param>
<returns>The element.</returns>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement">
<summary>
A shortcut element to enable the policy injection behavior.
</summary>
</member>
<member name="M:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement.GetInjectionMembers(Microsoft.Practices.Unity.IUnityContainer,System.Type,System.Type,System.String)">
<summary>
Return the set of <see cref="T:Microsoft.Practices.Unity.InjectionMember"/>s that are needed
to configure the container according to this configuration element.
</summary>
<param name="container">Container that is being configured.</param>
<param name="fromType">Type that is being registered.</param>
<param name="toType">Type that <paramref name="fromType"/> is being mapped to.</param>
<param name="name">Name this registration is under.</param>
<returns>One or more <see cref="T:Microsoft.Practices.Unity.InjectionMember"/> objects that should be
applied to the container registration.</returns>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.PolicyInjectionElement.Key">
<summary>
Each element must have a unique key, which is generated by the subclasses.
</summary>
</member>
<member name="T:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotCreateInterceptorRegistrationElement">
<summary>
Looks up a localized string similar to The abstract type InterceptorRegistrationElement cannot be created. Please create a concrete instance..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotHaveInjectionWithoutTypeName">
<summary>
Looks up a localized string similar to The &lt;injection/&gt; element is not allowed on element named &apos;{0}&apos; because it doesn&apos;t have a type attribute..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CannotHaveLifetimeWithoutTypeName">
<summary>
Looks up a localized string similar to The &lt;lifetime/&gt; element is not allowed on element named &apos;{0}&apos; because it doesn&apos;t have a type attribute..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.CouldNotResolveType">
<summary>
Looks up a localized string similar to The type name or alias {0} could not be resolved. Please check your configuration file and verify this type name..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ExceptionCannotCreateInstance">
<summary>
Looks up a localized string similar to Cannot create instance of type {0} with a default constructor..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.ExceptionResolvedTypeNotCompatible">
<summary>
Looks up a localized string similar to The type name {0} resolved to type {1} is not compatible with the required type {2}..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.InvalidInterceptorType">
<summary>
Looks up a localized string similar to The type {0} could not be resolved to a valid type. Please double check your configuration..
</summary>
</member>
<member name="P:Microsoft.Practices.Unity.InterceptionExtension.Configuration.Properties.Resources.MustHaveAtLeastOneBehaviorAttribute">
<summary>
Looks up a localized string similar to The interception behavior element must have at least one of the &apos;name&apos; or &apos;type&apos; attributes..
</summary>
</member>
</members>
</doc>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

8
Lib/Portoa.Log4Net.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Portoa.Log4Net</name>
</assembly>
<members>
</members>
</doc>

Binary file not shown.

45
Lib/Portoa.NHibernate.xml Normal file
View File

@ -0,0 +1,45 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Portoa.NHibernate</name>
</assembly>
<members>
<member name="T:Portoa.NHibernate.NHibernateUnitOfWork">
<summary>
Handles transactions in NHibernate, does not support nested transactions
</summary>
</member>
<member name="M:Portoa.NHibernate.NHibernateUnitOfWork.Start">
<summary>
Starts a transaction
</summary>
</member>
<member name="M:Portoa.NHibernate.NHibernateUnitOfWork.Commit">
<summary>
Commits a transaction
</summary>
<exception cref="T:Portoa.Persistence.PersistenceException">If a transaction has not been started</exception>
</member>
<member name="M:Portoa.NHibernate.NHibernateUnitOfWork.Rollback">
<summary>
Rolls back a transaction
</summary>
<exception cref="T:Portoa.Persistence.PersistenceException">If a transaction has not been started</exception>
</member>
<member name="E:Portoa.NHibernate.IInstantiatable.BeforeInstatiation">
<summary>
Invoked before an entity is instantiated. Arguments are the entity name, its ID
and a service provider
</summary>
</member>
<member name="E:Portoa.NHibernate.IInstantiatable.AfterInstantiation">
<summary>
Invoked after an entity is instantiated. Arguments are the entity
and a service provider
</summary>
</member>
<member name="T:Portoa.NHibernate.BuildWithProviderInterceptor">
<remarks>Stolen mostly from Mike Valenty</remarks>
</member>
</members>
</doc>

Binary file not shown.

315
Lib/Portoa.Web.xml Normal file
View File

@ -0,0 +1,315 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Portoa.Web</name>
</assembly>
<members>
<member name="T:Portoa.Web.Controllers.IErrorController">
<summary>
Signifies that this controller can handle errors that aren't handled by
application code
</summary>
</member>
<member name="M:Portoa.Web.Controllers.IErrorController.Unknown">
<summary>
Executed when an unknown error occurs
</summary>
</member>
<member name="M:Portoa.Web.Controllers.IErrorController.NotFound">
<summary>
Executed when a page is not found
</summary>
</member>
<member name="M:Portoa.Web.Controllers.IErrorController.Forbidden">
<summary>
Executed when the user is forbidden from seeing the requested page
</summary>
</member>
<member name="T:Portoa.Web.Models.ResolveWithServiceProviderModelBinder`1">
<summary>
Model binder that uses a service provider to resolve the model binder designated by
<typeparamref name="T"/> which will do the action model binding
</summary>
<typeparam name="T">The model binder to resolve</typeparam>
</member>
<member name="M:Portoa.Web.Util.HtmlHelperExtensions.Submit(System.Web.Mvc.HtmlHelper,System.String,System.String,System.Object)">
<summary>
Creates a submit button with the specified button text, input name and HTML attributes
</summary>
<param name="buttonText">The text to display on the submit button</param>
<param name="name">The name of the input</param>
<param name="htmlAttributes">Anonymous object with HTML attribute values</param>
</member>
<member name="M:Portoa.Web.Util.HtmlHelperExtensions.Label(System.Web.Mvc.HtmlHelper,System.String,System.String,System.Object)">
<summary>
Creates a label with the specified text for the specified reference tag
</summary>
<param name="labelText">The text/HTML to display inside the label</param>
<param name="htmlFor">The reference ID of the labeled node (e.g. the value of the "for" attribute)</param>
<param name="htmlAttributes">The HTML attributes</param>
</member>
<member name="M:Portoa.Web.Util.HtmlHelperExtensions.Button(System.Web.Mvc.HtmlHelper,System.String,System.Object)">
<summary>
Creates a button with the specified display text and the specified custom HTML attributes
</summary>
<param name="displayText">The text that the button will display</param>
<param name="htmlAttributes">Any additional HTML attributes for the input tag</param>
</member>
<member name="M:Portoa.Web.Util.HtmlHelperExtensions.Button(System.Web.Mvc.HtmlHelper,System.String,System.Web.Routing.RouteValueDictionary)">
<summary>
Creates a button with the specified display text and the specified custom HTML attributes
</summary>
<param name="displayText">The text that the button will display</param>
<param name="htmlAttributes">Any additional HTML attributes for the input tag</param>
</member>
<member name="T:Portoa.Web.Security.IAuthenticationService">
<summary>
Service for authenticating users
</summary>
</member>
<member name="M:Portoa.Web.Security.IAuthenticationService.Login(System.String)">
<summary>
Logs in the specified user with the specified username
</summary>
</member>
<member name="M:Portoa.Web.Security.IAuthenticationService.Logout">
<summary>
Logs out the currently logged in user
</summary>
</member>
<member name="M:Portoa.Web.Security.IAuthenticationService.IsValid(System.String,System.String)">
<summary>
Determines if a user identified by the given username and password
is a valid user in the system
</summary>
</member>
<member name="T:Portoa.Web.Models.EnumBinder`1">
<remarks>
Adapted from http://eliasbland.wordpress.com/2009/08/08/enumeration-model-binder-for-asp-net-mvc/
</remarks>
</member>
<member name="M:Portoa.Web.ErrorHandling.ErrorViewResult.ExecuteResult(System.Web.Mvc.ControllerContext)">
<summary>
Sets the HTTP status code on the response object before
calling base.ExecuteResult()
</summary>
</member>
<member name="T:Portoa.Web.ErrorHandling.ApplicationErrorHandler">
<summary>
Handles global application-wide errors that don't get caught by
normal means
</summary>
</member>
<member name="M:Portoa.Web.ErrorHandling.ApplicationErrorHandler.HandleError(System.Exception,Portoa.Web.Controllers.IErrorController)">
<summary>
Handles global application errors by invoking the specified error controller
</summary>
</member>
<member name="T:Portoa.Web.Unity.ConfigureInterception">
<summary>
Configures interception to occur for any subsequent container registrations
that are not part of NHibernate
</summary>
</member>
<member name="T:Portoa.Web.Util.NoTempDataProvider">
<summary> This class exists to get rid of the SessionState and TempData error. Just google it. </summary>
</member>
<member name="M:Portoa.Web.Util.NoTempDataProvider.SaveTempData(System.Web.Mvc.ControllerContext,System.Collections.Generic.IDictionary{System.String,System.Object})">
<summary> Don't use this method, it's only here to prevent you from using it. </summary>
</member>
<member name="M:Portoa.Web.Models.ModelBinderDictionaryExtensions.Add``2(System.Web.Mvc.ModelBinderDictionary)">
<summary>
Maps the type <typeparamref name="T"/> to the binder type <typeparamref name="TBinder"/>.
</summary>
</member>
<member name="M:Portoa.Web.Models.ModelBinderDictionaryExtensions.Add``2(System.Web.Mvc.ModelBinderDictionary,System.IServiceProvider)">
<summary>
Maps the type <typeparamref name="T"/> to the binder type <typeparamref name="TBinder"/>
using the given service provider to resolve the binder
</summary>
</member>
<member name="T:Portoa.Web.Unity.LogAllMethodCalls">
<summary>
Logs all interceptable method calls via the <see cref="T:Portoa.Web.Unity.LoggerCallHandler"/>
</summary>
</member>
<member name="T:Portoa.Web.Session.ISessionStore">
<summary>
Provides an interface for interacting with session data
</summary>
</member>
<member name="P:Portoa.Web.Session.ISessionStore.Item(System.String)">
<summary>
Gets or sets an item from the backing store
</summary>
<param name="key">The key of the item to retrieve</param>
</member>
<member name="T:Portoa.Web.Unity.UnityContainerExtensions">
<summary>
Extension methods for <c>UnityContainer</c>
</summary>
</member>
<member name="M:Portoa.Web.Unity.UnityContainerExtensions.AddExtensionOnce``1(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Adds an extension if it hasn't already been registered with the container
</summary>
</member>
<member name="M:Portoa.Web.Unity.UnityContainerExtensions.AnyAreRegistered(Microsoft.Practices.Unity.IUnityContainer,System.Type[])">
<summary>
Determines whether any of the given types are registered in the container
</summary>
</member>
<member name="M:Portoa.Web.Unity.UnityContainerExtensions.AllAreRegistered(Microsoft.Practices.Unity.IUnityContainer,System.Type[])">
<summary>
Determines if all of the given types are registered in the container
</summary>
<param name="container"></param>
<param name="types"></param>
<returns></returns>
</member>
<member name="T:Portoa.Web.Session.HttpSessionStore">
<summary>
Session store that uses the current <c>HttpContext</c>
</summary>
</member>
<member name="T:Portoa.Web.Controllers.DefaultErrorController">
<summary>
Controller for handling and displaying errors that aren't handled by application code
</summary>
</member>
<member name="T:Portoa.Web.InjectableFilterActionInvoker">
<summary>
Enables you to dynamically add filters to a ControllerActionInvoker. This class will also
perform injection on all filters that are annotated with NeedsBuildUpAttribute.
</summary>
<remarks> Adapted from http://blog.ploeh.dk/2009/12/01/GlobalErrorHandlingInASPNETMVC.aspx </remarks>
</member>
<member name="M:Portoa.Web.InjectableFilterActionInvoker.GetFilters(System.Web.Mvc.ControllerContext,System.Web.Mvc.ActionDescriptor)">
<summary>
Overridden to add the new filters to the default filters
</summary>
</member>
<member name="M:Portoa.Web.Unity.LoggerCallHandler.FormatString(System.String)">
<summary>
Truncates a string to 150 characters in a pretty way, if necessary
</summary>
</member>
<member name="M:Portoa.Web.Controllers.ControllerExtensions.ValidationErrorsToString(System.Web.Mvc.Controller)">
<summary>
Gets all model state errors as a line feed-delimited string
</summary>
</member>
<member name="M:Portoa.Web.Controllers.ControllerExtensions.DoNotUseTempData(System.Web.Mvc.Controller)">
<summary>
Sets up the temporary data provider so that it won't barf with Session errors
</summary>
</member>
<member name="M:Portoa.Web.ControllerContextExtensions.GetFromRequest``1(System.Web.Mvc.ControllerContext,System.String)">
<summary>
Gets a value from the request and casts it to the specified type
</summary>
</member>
<member name="M:Portoa.Web.ControllerContextExtensions.GetFromRequest(System.Web.Mvc.ControllerContext,System.String)">
<summary>
Gets a value from the request
</summary>
</member>
<member name="M:Portoa.Web.ControllerContextExtensions.AddModelError(System.Web.Mvc.ControllerContext,System.String,System.String)">
<summary>
Adds an error to the model state
</summary>
</member>
<member name="T:Portoa.Web.ContainerControllerFactory">
<summary>
Uses a container to create controllers
</summary>
</member>
<member name="T:Portoa.Web.ApplicationBase">
<summary>
Base for an Unity/NHibernate MVC application
</summary>
</member>
<member name="M:Portoa.Web.ApplicationBase.HandleApplicationError(System.Exception)">
<summary>
Handles uncaught application exceptions; default implementation uses
<see cref="T:Portoa.Web.ErrorHandling.ApplicationErrorHandler"/> and <see cref="T:Portoa.Web.Controllers.DefaultErrorController"/> to
display errors
</summary>
<param name="exception">The uncaught exception</param>
</member>
<member name="M:Portoa.Web.ApplicationBase.CreateNHibernateConfiguration(Microsoft.Practices.Unity.IUnityContainer)">
<summary>
Creates the configuration used for NHibernate; default implementation uses the default
NHibernate configuration, and sets a custom interceptor. The configuration can be retrieved
outside of this method (if needed) via the container. Do not call this method directly.
</summary>
<seealso cref="T:Portoa.NHibernate.BuildWithProviderInterceptor"/>
</member>
<member name="M:Portoa.Web.ApplicationBase.RegisterRoutes(System.Web.Routing.RouteCollection)">
<summary>
Registers any routes for the application; default implementation registers nothing
</summary>
</member>
<member name="M:Portoa.Web.ApplicationBase.RegisterAreas">
<summary>
Registers any applicable areas; default implementations calls
<c>AreaRegistration.RegisterAllAreas()</c>
</summary>
</member>
<member name="M:Portoa.Web.ApplicationBase.ConfigureControllerFactory">
<summary>
Configures the controller factory; default implementation uses Unity to
resolve each controller with a custom action invoker
</summary>
<see cref="T:Portoa.Web.InjectableFilterActionInvoker"/>
</member>
<member name="M:Portoa.Web.ApplicationBase.ConfigureUnity">
<summary>
Performs any application-specific configuration for Unity; default implementation
does nothing
</summary>
</member>
<member name="T:Portoa.Web.IInjectableControllerFactory">
<summary>
<c cref="T:System.Web.Mvc.IControllerFactory">IControllerFactory</c> that provides a mechanism to perform injection
on the controller after it is instantiated
</summary>
</member>
<member name="E:Portoa.Web.IInjectableControllerFactory.OnControllerInstantiated">
<summary>
Event that fires after a controller is instantiated
</summary>
</member>
<member name="M:Portoa.Web.Unity.CallHandlerExtensions.GetInstanceMethodInfo(Microsoft.Practices.Unity.InterceptionExtension.IMethodInvocation)">
<summary>
Gets the MethodInfo associated with the actual object instance
in a CallHandler's method invocation
</summary>
</member>
<member name="M:Portoa.Web.Unity.CallHandlerExtensions.GetParameters(Microsoft.Practices.Unity.InterceptionExtension.IParameterCollection)">
<summary>
LINQifies an annoying IParameterCollection
</summary>
</member>
<member name="T:Portoa.Web.Unity.ApplyUnityConfigurationSection">
<summary>
Reads the app config and applies the Unity configuration, if applicable
</summary>
</member>
<member name="T:Portoa.Web.ServiceProviderControllerFactory">
<summary>
Controller factory that uses a service provider to resolve controllers
</summary>
</member>
<member name="M:Portoa.Web.Unity.ILog4NetConfigurator.SetName(System.String)">
<summary>
Sets the name of the logger to retrieve
</summary>
</member>
<member name="T:Portoa.Web.Unity.ConfigureLog4Net">
<summary>
Configures the application to use log4net
</summary>
</member>
</members>
</doc>

Binary file not shown.

363
Lib/Portoa.xml Normal file
View File

@ -0,0 +1,363 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Portoa</name>
</assembly>
<members>
<member name="M:Portoa.Util.LinqExtensions.Implode``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String},System.String)">
<summary>
Implodes an enumeration given a selector function and a separator
</summary>
</member>
<member name="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
<summary>
Performs the specified action on each item in the collection. The action will execute immediately.
Use <c cref="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">WalkDeferred</c> if deferred execution is needed.
</summary>
<seealso cref="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})"/>
</member>
<member name="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
<summary>
Performs the specified action on each item in the collection. The action will not execute until the collection
is enumerated. Use <c cref="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">Walk</c> if deferred execution is not needed.
</summary>
<seealso cref="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})"/>
</member>
<member name="T:JetBrains.Annotations.LocalizationRequiredAttribute">
<summary>
Indicates that marked element should be localized or not.
</summary>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class.
</summary>
<param name="required"><c>true</c> if a element should be localized; otherwise, <c>false</c>.</param>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.Equals(System.Object)">
<summary>
Returns whether the value of the given object is equal to the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.
</summary>
<param name="obj">The object to test the value equality of. </param>
<returns>
<c>true</c> if the value of the given object is equal to that of the current; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A hash code for the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.</returns>
</member>
<member name="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required">
<summary>
Gets a value indicating whether a element should be localized.
<value><c>true</c> if a element should be localized; otherwise, <c>false</c>.</value>
</summary>
</member>
<member name="T:JetBrains.Annotations.StringFormatMethodAttribute">
<summary>
Indicates that marked method builds string by format pattern and (optional) arguments.
Parameter, which contains format string, should be given in constructor.
The format string should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> -like form
</summary>
</member>
<member name="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
<summary>
Initializes new instance of StringFormatMethodAttribute
</summary>
<param name="formatParameterName">Specifies which parameter of an annotated method should be treated as format-string</param>
</member>
<member name="P:JetBrains.Annotations.StringFormatMethodAttribute.FormatParameterName">
<summary>
Gets format parameter name
</summary>
</member>
<member name="T:JetBrains.Annotations.InvokerParameterNameAttribute">
<summary>
Indicates that the function argument should be string literal and match one of the parameters of the caller function.
For example, <see cref="T:System.ArgumentNullException"/> has such parameter.
</summary>
</member>
<member name="T:JetBrains.Annotations.AssertionMethodAttribute">
<summary>
Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied.
To set the condition, mark one of the parameters with <see cref="T:JetBrains.Annotations.AssertionConditionAttribute"/> attribute
</summary>
<seealso cref="T:JetBrains.Annotations.AssertionConditionAttribute"/>
</member>
<member name="T:JetBrains.Annotations.AssertionConditionAttribute">
<summary>
Indicates the condition parameter of the assertion method.
The method itself should be marked by <see cref="T:JetBrains.Annotations.AssertionMethodAttribute"/> attribute.
The mandatory argument of the attribute is the assertion type.
</summary>
<seealso cref="T:JetBrains.Annotations.AssertionConditionType"/>
</member>
<member name="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
<summary>
Initializes new instance of AssertionConditionAttribute
</summary>
<param name="conditionType">Specifies condition type</param>
</member>
<member name="P:JetBrains.Annotations.AssertionConditionAttribute.ConditionType">
<summary>
Gets condition type
</summary>
</member>
<member name="T:JetBrains.Annotations.AssertionConditionType">
<summary>
Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues.
Otherwise, execution is assumed to be halted
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_TRUE">
<summary>
Indicates that the marked parameter should be evaluated to true
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_FALSE">
<summary>
Indicates that the marked parameter should be evaluated to false
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_NULL">
<summary>
Indicates that the marked parameter should be evaluated to null value
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_NOT_NULL">
<summary>
Indicates that the marked parameter should be evaluated to not null value
</summary>
</member>
<member name="T:JetBrains.Annotations.TerminatesProgramAttribute">
<summary>
Indicates that the marked method unconditionally terminates control flow execution.
For example, it could unconditionally throw exception
</summary>
</member>
<member name="T:JetBrains.Annotations.CanBeNullAttribute">
<summary>
Indicates that the value of marked element could be <c>null</c> sometimes, so the check for <c>null</c> is necessary before its usage
</summary>
</member>
<member name="T:JetBrains.Annotations.NotNullAttribute">
<summary>
Indicates that the value of marked element could never be <c>null</c>
</summary>
</member>
<member name="T:JetBrains.Annotations.CannotApplyEqualityOperatorAttribute">
<summary>
Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators.
There is only exception to compare with <c>null</c>, it is permitted
</summary>
</member>
<member name="T:JetBrains.Annotations.BaseTypeRequiredAttribute">
<summary>
When applied to target attribute, specifies a requirement for any type which is marked with
target attribute to implement or inherit specific type or types
</summary>
<example>
<code>
[BaseTypeRequired(typeof(IComponent)] // Specify requirement
public class ComponentAttribute : Attribute
{}
[Component] // ComponentAttribute requires implementing IComponent interface
public class MyComponent : IComponent
{}
</code>
</example>
</member>
<member name="M:JetBrains.Annotations.BaseTypeRequiredAttribute.#ctor(System.Type[])">
<summary>
Initializes new instance of BaseTypeRequiredAttribute
</summary>
<param name="baseTypes">Specifies which types are required</param>
</member>
<member name="P:JetBrains.Annotations.BaseTypeRequiredAttribute.BaseTypes">
<summary>
Gets enumerations of specified base types
</summary>
</member>
<member name="T:JetBrains.Annotations.UsedImplicitlyAttribute">
<summary>
Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
so this symbol will not be marked as unused (as well as by other usage inspections)
</summary>
</member>
<member name="P:JetBrains.Annotations.UsedImplicitlyAttribute.TargetFlags">
<summary>
Gets value indicating what is meant to be used
</summary>
</member>
<member name="T:JetBrains.Annotations.MeansImplicitUseAttribute">
<summary>
Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections)
</summary>
</member>
<member name="P:JetBrains.Annotations.MeansImplicitUseAttribute.TargetFlags">
<summary>
Gets value indicating what is meant to be used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Access">
<summary>
Only entity marked with attribute considered used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Assign">
<summary>
Indicates implicit assignment to a member
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Instantiated">
<summary>
Indicates implicit instantiation of a type
</summary>
</member>
<member name="T:JetBrains.Annotations.ImplicitUseTargetFlags">
<summary>
Specify what is considered used implicitly when marked with <see cref="T:JetBrains.Annotations.MeansImplicitUseAttribute"/> or <see cref="T:JetBrains.Annotations.UsedImplicitlyAttribute"/>
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.Members">
<summary>
Members of entity marked with attribute are considered used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.WithMembers">
<summary>
Entity marked with attribute and all its members considered used
</summary>
</member>
<member name="T:Portoa.Validation.DataAnnotations.GreaterThanZeroAttribute">
<summary>
Validates that the value is greater than zero
</summary>
</member>
<member name="M:Portoa.Util.ReflectionExtensions.GetFriendlyName(System.Type,System.Boolean)">
<summary>
Gets a human-readable string representing the given type
</summary>
<parparam name="fullyQualified">Whether to use the fully qualified name of each type</parparam>
</member>
<member name="T:Portoa.Persistence.IUnitOfWork">
<summary>
Represents a transaction
</summary>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Start">
<summary>
Starts a transaction
</summary>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Commit">
<summary>
Commits a transaction
</summary>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Rollback">
<summary>
Rolls back a transaction
</summary>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.DropDatabase">
<summary>
Drops the temp database and resets the generated database name
</summary>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.CreateDatabase">
<summary>
Creates a temporary database with a unique name
</summary>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.RunSqlScript(Portoa.Testing.ISqlScript)">
<summary>
Executes a SQL script on the test database
</summary>
</member>
<member name="P:Portoa.Testing.DbTestingUtility.ConnectionString">
<summary>
Gets the connection string for the fake database
</summary>
</member>
<member name="P:Portoa.Testing.DbTestingUtility.DefaultConnectionString">
<summary>
Sets the default connection string (do not include the initial catalog)
</summary>
</member>
<member name="T:Portoa.Persistence.IRepository`1">
<summary>
Provides a CRUD interface to a persistence medium for entities that have an
integral identifier
</summary>
<typeparam name="T">The entity's type</typeparam>
</member>
<member name="T:Portoa.Persistence.IRepository`2">
<summary>
Provides a CRUD interface to a persistence medium
</summary>
<typeparam name="T">The entity's type</typeparam>
<typeparam name="TId">The entity identifier's type</typeparam>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Save(`0)">
<summary>
Persists an entity (inserts or updates)
</summary>
<param name="entity">The entity to save</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Reload(`0)">
<summary>
Reloads an entity from the persistence medium
</summary>
<param name="entity">The entity to reload</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Delete(`1)">
<summary>
Deletes an entity
</summary>
<param name="id">The unique identifier of the entity to delete</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.FindById(`1)">
<summary>
Finds an entity by its unique identifier
</summary>
<param name="id">The unique identifier of the entity to locate</param>
<exception cref="T:Portoa.Persistence.EntityNotFoundException`2"/>
</member>
<member name="P:Portoa.Persistence.IRepository`2.Records">
<summary>
Equivalent of "select *"
</summary>
</member>
<member name="T:Portoa.Validation.DataAnnotations.Validator">
<summary>
TODO: add reflection cache
</summary>
</member>
<member name="M:Portoa.Validation.DataAnnotations.Validator.TryValidateObject(System.Object,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.ICollection{System.ComponentModel.DataAnnotations.ValidationResult},System.Boolean)">
<summary>
Extension to System.ComponentModel.DataAnnotations.Validator.TryValidateObject(). This method validates
the object, its properties and its fields.
</summary>
</member>
<member name="T:Portoa.Validation.DataAnnotations.EmailAttribute">
<summary>
Validates that a string is a valid email address. Set AllowEmpty to true
if null and empty strings should not be validated.
</summary>
</member>
<member name="M:Portoa.Logging.LoggingExtensions.IsLoggable(System.Reflection.ICustomAttributeProvider)">
<summary>
Determines if this object should be logged
</summary>
</member>
<member name="T:Portoa.Logging.DoNotLogAttribute">
<summary>
Signifies that this object should not be logged
</summary>
</member>
</members>
</doc>

View File

@ -0,0 +1,8 @@
using JetBrains.Annotations;
namespace VideoGameQuotes.Api {
public interface ICurrentUserProvider {
[CanBeNull]
User CurrentUser { get; }
}
}

View File

@ -0,0 +1,18 @@
using System.Linq;
using NHibernate;
using Portoa.NHibernate;
using Portoa.Persistence;
namespace VideoGameQuotes.Api.Persistence {
public interface IUserRepository : IRepository<User> {
User FindByUsername(string name);
}
public class UserRepository : NHibernateRepository<User>, IUserRepository {
public UserRepository(ISession session) : base(session) { }
public User FindByUsername(string name) {
return Records.FirstOrDefault(user => user.Username == name);
}
}
}

View File

@ -0,0 +1,27 @@
using Portoa.Persistence;
namespace VideoGameQuotes.Api.Persistence {
public interface IUserService {
User Save(User user);
User FindByUsername(string name);
}
public class UserService : IUserService {
private readonly IUserRepository repository;
public UserService(IUserRepository repository) {
this.repository = repository;
}
[UnitOfWork]
public User Save(User user) {
return repository.Save(user);
}
[UnitOfWork]
public User FindByUsername(string name) {
return repository.FindByUsername(name);
}
}
}

View File

@ -65,6 +65,9 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Game.cs" />
<Compile Include="ICurrentUserProvider.cs" />
<Compile Include="Persistence\IUserRepository.cs" />
<Compile Include="Persistence\UserService.cs" />
<Compile Include="QuoteFlag.cs" />
<Compile Include="Publisher.cs" />
<Compile Include="Quote.cs" />

View File

@ -1,11 +1,8 @@
using System.Web.Mvc;
namespace VideoGameQuotes.Web.Controllers {
[HandleError]
public class HomeController : Controller {
public ActionResult Index() {
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
}

View File

@ -0,0 +1,3 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="VideoGameQuotes.Web._Default" %>
<%-- Please do not delete this file. It is used to ensure that ASP.NET MVC is activated by IIS when a user makes a "/" request to the server. --%>

View File

@ -0,0 +1,21 @@
using System.Diagnostics;
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
namespace VideoGameQuotes.Web {
public partial class _Default : Page {
[DebuggerNonUserCode]
public void Page_Load(object sender, System.EventArgs e) {
// Change the current path so that the Routing handler can correctly interpret
// the request, then restore the original path so that the OutputCache module
// can correctly process the response (if caching is enabled).
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
}
}
}

View File

@ -1,30 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc;
using System.Web.Routing;
using Microsoft.Practices.Unity;
using Portoa.Web;
using Portoa.Web.Unity;
using VideoGameQuotes.Api;
using VideoGameQuotes.Api.Persistence;
using VideoGameQuotes.Web.Security;
namespace VideoGameQuotes.Web {
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication {
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
public class MvcApplication : ApplicationBase {
protected override void ConfigureUnity() {
Container
.AddNewExtension<ConfigureLog4Net>()
.Configure<ILog4NetConfigurator>()
.SetName("VideoGameQuotes.Web");
Container
.AddNewExtension<LogAllMethodCalls>()
.RegisterType<ICurrentUserProvider, UserProvider>()
.RegisterType<IUserService, UserService>()
.RegisterType<IUserRepository, UserRepository>();
}
protected void Application_Start() {
AreaRegistration.RegisterAllAreas();
protected override void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("media/{*anything}");
RegisterRoutes(RouteTable.Routes);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}

View File

@ -0,0 +1,46 @@
using System.Web;
using Portoa.Web.Session;
using VideoGameQuotes.Api;
using VideoGameQuotes.Api.Persistence;
namespace VideoGameQuotes.Web.Security {
public class UserProvider : ICurrentUserProvider {
private readonly IUserService userService;
private readonly ISessionStore sessionStore;
private readonly HttpContextBase httpContext;
public UserProvider(IUserService userService, ISessionStore sessionStore, HttpContextBase httpContext) {
this.userService = userService;
this.sessionStore = sessionStore;
this.httpContext = httpContext;
}
public User CurrentUser {
get {
var user = sessionStore["user"] as User;
if (user == null) {
//identify user by IP address
var username = httpContext.Request.UserHostAddress;
if (string.IsNullOrEmpty(username)) {
return null;
}
user = userService.FindByUsername(username);
if (user == null) {
user = new User {
Username = username,
Group = UserGroup.User
};
user = userService.Save(user);
}
sessionStore["user"] = user;
}
return user;
}
}
}
}

View File

@ -34,6 +34,22 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Practices.Unity">
<HintPath>..\..\Lib\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
<Reference Include="Portoa">
<HintPath>..\..\Lib\Portoa.dll</HintPath>
</Reference>
<Reference Include="Portoa.Log4Net">
<HintPath>..\..\Lib\Portoa.Log4Net.dll</HintPath>
</Reference>
<Reference Include="Portoa.NHibernate, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Lib\Portoa.NHibernate.dll</HintPath>
</Reference>
<Reference Include="Portoa.Web">
<HintPath>..\..\Lib\Portoa.Web.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
@ -66,13 +82,20 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\HomeController.cs" />
<Compile Include="Default.aspx.cs">
<DependentUpon>Default.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Security\UserProvider.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Default.aspx" />
<Content Include="Global.asax" />
<EmbeddedResource Include="hibernate.cfg.xml" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
@ -88,6 +111,12 @@
<ItemGroup>
<Folder Include="App_Data\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\VideoGameQuotes.Api\VideoGameQuotes.Api.csproj">
<Project>{329FAB1F-A18D-4B7B-9E3C-A0C157E55503}</Project>
<Name>VideoGameQuotes.Api</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<StartPageUrl>
</StartPageUrl>
<StartAction>SpecificPage</StartAction>
<AspNetDebugging>True</AspNetDebugging>
<SilverlightDebugging>False</SilverlightDebugging>
<NativeDebugging>False</NativeDebugging>
<SQLDebugging>False</SQLDebugging>
<ExternalProgram>
</ExternalProgram>
<StartExternalURL>
</StartExternalURL>
<StartCmdLineArguments>
</StartCmdLineArguments>
<StartWorkingDirectory>
</StartWorkingDirectory>
<EnableENC>False</EnableENC>
<AlwaysStartWebServerOnDebug>True</AlwaysStartWebServerOnDebug>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@ -1,9 +1,4 @@
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>
<asp:Content ContentPlaceHolderID="TitleContent" runat="server">Home</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">OH HAI!</asp:Content>

View File

@ -1,77 +1,72 @@
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=152368
-->
<configuration>
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
<configSections>
<!--<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection"/>-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] %message%newline" />
</layout>
</appender>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<appender name="TelnetAppender" type="log4net.Appender.TelnetAppender">
<port value="23" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%-5level] %message%newline" />
</layout>
</appender>
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<logger name="VideoGameQuotes.Web">
<level value="ALL"/>
<appender-ref ref="DebugAppender" />
<appender-ref ref="TelnetAppender" />
</logger>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<logger name="NHibernate.SQL">
<level value="ALL"/>
<appender-ref ref="DebugAppender" />
<appender-ref ref="TelnetAppender" />
</logger>
</log4net>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
</providers>
</profile>
<system.web>
<!-- disables input validation for requests -->
<httpRuntime requestValidationMode="2.0"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web>
<pages>
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Database=vgquotes;Data Source=localhost;User Id=vgquotes;Password=vgquotes</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="show_sql">true</property>
<mapping assembly="VideoGameQuotes.Api"/>
</session-factory>
</hibernate-configuration>

View File

@ -58,7 +58,7 @@ alter table game_quote drop foreign key fk_quote_game
create table vote (
vote_id INTEGER NOT NULL AUTO_INCREMENT,
created DATETIME not null,
direction INTEGER not null,
point_value INTEGER not null,
voter_id INTEGER not null,
quote_id INTEGER not null,
primary key (vote_id)

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
</Project>