diff --git a/Include/Ninject/Ninject.dll b/Include/Ninject/Ninject.dll new file mode 100644 index 0000000..35fdfc4 Binary files /dev/null and b/Include/Ninject/Ninject.dll differ diff --git a/Include/Ninject/Ninject.xml b/Include/Ninject/Ninject.xml new file mode 100644 index 0000000..d9cf2f2 --- /dev/null +++ b/Include/Ninject/Ninject.xml @@ -0,0 +1,4026 @@ + + + + Ninject + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + An object that notifies when it is disposed. + + + + + An object that can report whether or not it is disposed. + + + + + Gets a value indicating whether this instance is disposed. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases resources held by the object. + + + + + Releases resources before the object is reclaimed by garbage collection. + + + + + Gets a value indicating whether this instance is disposed. + + + + + A block used for deterministic disposal of activated instances. When the block is + disposed, all instances activated via it will be deactivated. + + + + + Provides a path to resolve instances. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + An object that fires an event when it is disposed. + + + + + Occurs when the object is disposed. + + + + + Initializes a new instance of the class. + + The parent resolution root. + + + + Releases resources held by the object. + + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Gets or sets the parent resolution root (usually the kernel). + + + + + Occurs when the object is disposed. + + + + + Tracks instances for re-use in certain scopes. + + + + + A component that contributes to the internals of Ninject. + + + + + A component that contributes to the internals of Ninject. + + + + + Gets or sets the settings. + + + + + Gets or sets the settings. + + + + + Tracks instances for re-use in certain scopes. + + + + + Stores the specified instance in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Removes instances from the cache which should no longer be re-used. + + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets the number of entries currently stored in the cache. + + + + + Initializes a new instance of the class. + + The pipeline component. + The cache pruner component. + + + + Releases resources held by the object. + + + + + Stores the specified context in the cache. + + The context to store. + The instance reference. + + + + Tries to retrieve an instance to re-use in the specified context. + + The context that is being activated. + The instance for re-use, or if none has been stored. + + + + Deactivates and releases the specified instance from the cache. + + The instance to release. + if the instance was found and released; otherwise . + + + + Removes instances from the cache which should no longer be re-used. + + + + + Immediately deactivates and removes all instances in the cache that are owned by + the specified scope. + + The scope whose instances should be deactivated. + + + + Immediately deactivates and removes all instances in the cache, regardless of scope. + + + + + Gets or sets the pipeline component. + + + + + Gets the number of entries currently stored in the cache. + + + + + Uses a and some magic to poll + the garbage collector to see if it has run. + + + + + Prunes instances from an based on environmental information. + + + + + Starts pruning the specified cache based on the rules of the pruner. + + The cache that will be pruned. + + + + Stops pruning. + + + + + Releases resources held by the object. + + + + + Starts pruning the specified cache based on the rules of the pruner. + + The cache that will be pruned. + + + + Stops pruning. + + + + + Gets the cache that is being pruned. + + + + + A provider that delegates to a callback method to create instances. + + The type of instances the provider creates. + + + + A simple abstract provider for instances of a specific type. + + The type of instances the provider creates. + + + + Creates instances of services. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Initializes a new instance of the CallbackProvider<T> class. + + The callback method that will be called to create instances. + + + + Invokes the callback method to create an instance. + + The context. + The created instance. + + + + Gets the callback method used by the provider. + + + + + A provider that always returns the same constant value. + + The type of value that is returned. + + + + Initializes a new instance of the ConstantProvider<T> class. + + The value that the provider should return. + + + + Creates an instance within the specified context. + + The context. + The constant value this provider returns. + + + + Gets the value that the provider will return. + + + + + The standard provider for types, which activates instances via a . + + + + + Initializes a new instance of the class. + + The type (or prototype) of instances the provider creates. + The planner component. + The selector component. + + + + Creates an instance within the specified context. + + The context. + The created instance. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the implementation type that the provider will activate an instance of + for the specified service. + + The service in question. + The implementation type that will be activated. + + + + Gets a callback that creates an instance of the + for the specified type. + + The prototype the provider instance will create. + The created callback. + + + + Gets the type (or prototype) of instances the provider creates. + + + + + Gets or sets the planner component. + + + + + Gets or sets the selector component. + + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to a , and is called during the activation + and deactivation of an instance. + + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Contributes to the activation of the instance in the specified context. + + The context. + A reference to the instance being activated. + + + + Contributes to the deactivation of the instance in the specified context. + + The context. + A reference to the instance being deactivated. + + + + Executes actions defined on the binding during activation and deactivation. + + + + + Calls the activation actions defined on the binding. + + The context. + A reference to the instance being activated. + + + + Calls the deactivation actions defined on the binding. + + The context. + A reference to the instance being deactivated. + + + + During deactivation, disposes instances that implement . + + + + + Disposes the specified instance. + + The context. + A reference to the instance being deactivated. + + + + During activation, initializes instances that implement . + + + + + Initializes the specified instance. + + The context. + A reference to the instance being activated. + + + + Injects methods on an instance during activation. + + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Injects properties on an instance during activation. + + + + + Initializes a new instance of the class. + + The injector factory component. + + + + Injects values into the properties as described by s + contained in the plan. + + The context. + A reference to the instance being activated. + + + + Applies user supplied override values to instance properties. + + The context. + A reference to the instance being activated. + The parameter ovverride value accessors. + + + + Gets the value to inject into the specified target. + + The context. + The target. + The value to inject into the specified target. + + + + Gets the injector factory component. + + + + + Starts instances that implement during activation, + and stops them during deactivation. + + + + + Starts the specified instance. + + The context. + A reference to the instance being activated. + + + + Stops the specified instance. + + The context. + A reference to the instance being deactivated. + + + + Contains information about the activation of a single instance. + + + + + Contains information about the activation of a single instance. + + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Resolves this instance for this context. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Initializes a new instance of the class. + + The kernel managing the resolution. + The context's request. + The context's binding. + The cache component. + The planner component. + The pipeline component. + + + + Gets the scope for the context that "owns" the instance activated therein. + + The object that acts as the scope. + + + + Gets the provider that should be used to create the instance for this context. + + The provider that should be used. + + + + Resolves the instance associated with this hook. + + The resolved instance. + + + + Gets the kernel that is driving the activation. + + + + + Gets the request. + + + + + Gets the binding. + + + + + Gets or sets the activation plan. + + + + + Gets the parameters that were passed to manipulate the activation process. + + + + + Gets the generic arguments for the request, if any. + + + + + Gets a value indicating whether the request involves inferred generic arguments. + + + + + Gets or sets the cache component. + + + + + Gets or sets the planner component. + + + + + Gets or sets the pipeline component. + + + + + Holds an instance during activation or after it has been cached. + + + + + Returns a value indicating whether the instance is of the specified type. + + The type in question. + if the instance is of the specified type, otherwise . + + + + Returns the instance as the specified type. + + The requested type. + The instance. + + + + Executes the specified action if the instance if of the specified type. + + The type in question. + The action to execute. + + + + Gets or sets the instance. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Determines whether the specified binding satisfies the constraint defined on this request. + + The binding. + True if the binding satisfies the constraint; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request should return a unique result. + + + + + Drives the activation (injection, etc.) of an instance. + + + + + Initializes a new instance of the class. + + The strategies to execute during activation and deactivation. + + + + Activates the instance in the specified context. + + The context. + The instance reference. + + + + Deactivates the instance in the specified context. + + The context. + The instance reference. + + + + Gets the strategies that contribute to the activation and deactivation processes. + + + + + Describes the request for a service resolution. + + + + + Initializes a new instance of the class. + + The service that was requested. + The constraint that will be applied to filter the bindings used for the request. + The parameters that affect the resolution. + The scope callback, if an external scope was specified. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + + + + Initializes a new instance of the class. + + The parent context. + The service that was requested. + The target that will receive the injection. + The scope callback, if an external scope was specified. + + + + Determines whether the specified binding satisfies the constraints defined on this request. + + The binding. + True if the binding satisfies the constraints; otherwise false. + + + + Gets the scope if one was specified in the request. + + The object that acts as the scope. + + + + Creates a child request. + + The service that is being requested. + The context in which the request was made. + The target that will receive the injection. + The child request. + + + + Gets the service that was requested. + + + + + Gets the parent request. + + + + + Gets the parent context. + + + + + Gets the target that will receive the injection, if any. + + + + + Gets the constraint that will be applied to filter the bindings used for the request. + + + + + Gets the parameters that affect the resolution. + + + + + Gets the stack of bindings which have been activated by either this request or its ancestors. + + + + + Gets the recursive depth at which this request occurs. + + + + + Gets or sets value indicating whether the request is optional. + + + + + Gets or sets value indicating whether the request is for a single service. + + + + + Gets the callback that resolves the scope for the request, if an external scope was provided. + + + + + Defines a constraint on the decorated member. + + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Indicates that the decorated member should be injected. + + + + + Indicates that the decorated member should only be injected using binding(s) registered + with the specified name. + + + + + Initializes a new instance of the class. + + The name of the binding(s) to use. + + + + Determines whether the specified binding metadata matches the constraint. + + The metadata in question. + True if the metadata matches; otherwise false. + + + + Gets the binding name. + + + + + Indicates that the decorated member represents an optional dependency. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + An internal container that manages and resolves components that contribute to Ninject. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component's type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Releases resources held by the object. + + + + + Registers a component in the container. + + The component type. + The component's implementation type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Removes all registrations for the specified component. + + The component type. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets one instance of the specified component. + + The component type. + The instance of the component. + + + + Gets all available instances of the specified component. + + The component type. + A series of instances of the specified component. + + + + Gets or sets the kernel that owns the component container. + + + + + Represents a future value. + + The type of value. + + + + Initializes a new instance of the Future<T> class. + + The callback that will be triggered to read the value. + + + + Gets the value from the future. + + The future. + The future value. + + + + Gets the value, resolving it if necessary. + + + + + Gets the callback that will be called to resolve the value. + + + + + Indicates the object has a reference to a . + + + + + Gets the binding. + + + + + Indicates that the object has a reference to an . + + + + + Gets the kernel. + + + + + A data structure that contains multiple values for a each key. + + The type of key. + The type of value. + + + + Adds the specified value for the specified key. + + The key. + The value. + + + + Removes the specified value for the specified key. + + The key. + The value. + True if such a value existed and was removed; otherwise false. + + + + Removes all values for the specified key. + + The key. + True if any such values existed; otherwise false. + + + + Removes all values. + + + + + Determines whether the multimap contains any values for the specified key. + + The key. + True if the multimap has one or more values for the specified key; otherwise, false. + + + + Determines whether the multimap contains the specified value for the specified key. + + The key. + The value. + True if the multimap contains such a value; otherwise, false. + + + + Returns an enumerator that iterates through a the multimap. + + An object that can be used to iterate through the multimap. + + + + Gets the collection of values stored under the specified key. + + The key. + + + + Gets the collection of keys. + + + + + Gets the collection of collections of values. + + + + + Defines the style of request (single or multi-injection, whether it is optional, etc.) + + + + + Indicates a request for a single instance of a service. + + + + + Indicates a request for multiple instances of a service. + + + + + Indicates that null should be returned (instead of throwing) if the service cannot be resolved. + + + + + Scope callbacks for standard scopes. + + + + + Gets the callback for transient scope. + + + + + Gets the callback for singleton scope. + + + + + Gets the callback for thread scope. + + + + + Gets the callback for request scope. + + + + + A delegate that can inject values into a constructor. + + + + + Creates injectors for members via s. + + + + + Creates injectors from members. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + A delegate that can inject values into a method. + + + + + A delegate that can inject values into a property. + + + + + Creates injectors from members via reflective invocation. + + + + + Gets or creates an injector for the specified constructor. + + The constructor. + The created injector. + + + + Gets or creates an injector for the specified property. + + The property. + The created injector. + + + + Gets or creates an injector for the specified method. + + The method. + The created injector. + + + + Loads modules from compiled assemblies. + + + + + Loads modules at runtime by searching external files. + + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets the file extensions that the plugin understands how to load. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads modules from the specified files. + + The names of the files to load modules from. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + Gets the file extensions that the plugin understands how to load. + + + + + Finds modules defined in external files. + + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + A pluggable unit that can be loaded into an . + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Gets the module's name. + + + + + Automatically finds and loads modules from assemblies. + + + + + Initializes a new instance of the class. + + The kernel into which modules will be loaded. + + + + Loads any modules found in the files that match the specified patterns. + + The patterns to search. + + + + Gets or sets the kernel into which modules will be loaded. + + + + + A loadable unit that defines bindings for your application. + + + + + Provides a path to register bindings. + + + + + Provides a path to register bindings. + + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding from the service to itself. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Declares a binding for the specified service. + + The service to bind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Removes any existing bindings for the specified service, and declares a new one. + + The service to re-bind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Initializes a new instance of the class. + + + + + Called when the module is loaded into a kernel. + + The kernel that is loading the module. + + + + Called when the module is unloaded from a kernel. + + The kernel that is unloading the module. + + + + Loads the module into the kernel. + + + + + Unloads the module from the kernel. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Gets the kernel that the module is loaded into. + + + + + Gets the module's name. Only a single module with a given name can be loaded at one time. + + + + + Gets the bindings that were registered by the module. + + + + + Overrides the injected value of a constructor argument. + + + + + Modifies an activation process in some way. + + + + + Modifies an activation process in some way. + + + + + Gets the value for the parameter within the specified context. + + The context. + The value for the parameter. + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Initializes a new instance of the class. + + The name of the parameter. + The value of the parameter. + Whether the parameter should be inherited into child requests. + + + + Initializes a new instance of the class. + + The name of the parameter. + The callback that will be triggered to get the parameter's value. + Whether the parameter should be inherited into child requests. + + + + Gets the value for the parameter within the specified context. + + The context. + The value for the parameter. + + + + Determines whether the object equals the specified object. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Serves as a hash function for a particular type. + + A hash code for the object. + + + + Indicates whether the current object is equal to another object of the same type. + + An object to compare with this object. + True if the objects are equal; otherwise false + + + + Gets the name of the parameter. + + + + + Gets a value indicating whether the parameter should be inherited into child requests. + + + + + Gets or sets the callback that will be triggered to get the parameter's value. + + + + + Initializes a new instance of the class. + + The name of the argument to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the argument to override. + The callback to invoke to get the value that should be injected. + + + + Overrides the injected value of a property. + + + + + Initializes a new instance of the class. + + The name of the property to override. + The value to inject into the property. + + + + Initializes a new instance of the class. + + The name of the property to override. + The callback to invoke to get the value that should be injected. + + + + Contains logic about which bindings to use for a given service request. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Resolves bindings for open generic types. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Resolves bindings that have been registered directly for the service. + + + + + Returns any bindings from the specified collection that match the specified service. + + The multimap of all registered bindings. + The service in question. + The series of matching bindings. + + + + Contains information about a service registration. + + + + + Contains information about a service registration. + + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the condition defined on the binding, + if one was defined. + + The request. + True if the request satisfies the condition; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + + + + Initializes a new instance of the class. + + The service that is controlled by the binding. + The binding's metadata container. + + + + Gets the provider for the binding. + + The context. + The provider to use. + + + + Gets the scope for the binding, if any. + + The context. + The object that will act as the scope, or if the service is transient. + + + + Determines whether the specified request satisfies the conditions defined on this binding. + + The request. + True if the request satisfies the conditions; otherwise false. + + + + Gets the service type that is controlled by the binding. + + + + + Gets the binding's metadata. + + + + + Gets or sets a value indicating whether the binding was implicitly registered. + + + + + Gets a value indicating whether the binding has a condition associated with it. + + + + + Gets or sets the type of target for the binding. + + + + + Gets or sets the condition defined for the binding. + + + + + Gets or sets the callback that returns the provider that should be used by the binding. + + + + + Gets or sets the callback that returns the object that will act as the binding's scope. + + + + + Gets the parameters defined for the binding. + + + + + Gets the actions that should be called after instances are activated via the binding. + + + + + Gets the actions that should be called before instances are deactivated via the binding. + + + + + Provides a root for the fluent syntax associated with an . + + + + + Used to define the target of a binding. + + The service being bound. + + + + Used to define a basic binding syntax builder. + + + + + A hack to hide methods defined on for IntelliSense + on fluent interfaces. Credit to Daniel Cazzulino. + + + + + + + + + + + + + + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Used to set the condition, scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to define the conditions under which a binding should be used. + + The service being bound. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Used to define the scope in which instances activated via a binding should be re-used. + + The service being bound. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used within the same + HTTP request. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Used to define the name of a binding. + + The service being bound. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Used to add additional information to a binding. + + The service being bound. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Used to add additional actions to be performed during activation or deactivation of instances via a binding. + + The service being bound. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Used to set the scope, name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to set the name, or add additional information or actions to a binding. + + The service being bound. + + + + Used to add additional information or actions to a binding. + + The service being bound. + + + + Initializes a new instance of the BindingBuilder<T> class. + + The binding to build. + The kernel. + + + + Indicates that the service should be self-bound. + + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to the specified implementation type. + + The implementation type. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to an instance of the specified provider type. + The instance will be activated via the kernel when an instance of the service is activated. + + The type of provider to activate. + + + + Indicates that the service should be bound to the specified provider. + + The provider. + + + + Indicates that the service should be bound to the specified callback method. + + The method. + + + + Indicates that the service should be bound to the specified constant value. + + The constant value. + + + + Indicates that the binding should be used only for requests that support the specified condition. + + The condition. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only for injections on the specified type. + + The type. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the class being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the member being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the target being injected has + an attribute of the specified type. + + The type of attribute. + + + + Indicates that the binding should be used only when the service is being requested + by a service bound with the specified name. + + The name to expect. + + + + Indicates that the binding should be registered with the specified name. Names are not + necessarily unique; multiple bindings for a given service may be registered with the same name. + + The name to give the binding. + + + + Indicates that only a single instance of the binding should be created, and then + should be re-used for all subsequent requests. + + + + + Indicates that instances activated via the binding should not be re-used, nor have + their lifecycle managed by Ninject. + + + + + Indicates that instances activated via the binding should be re-used within the same thread. + + + + + Indicates that instances activated via the binding should be re-used within the same + HTTP request. + + + + + Indicates that instances activated via the binding should be re-used as long as the object + returned by the provided callback remains alive (that is, has not been garbage collected). + + The callback that returns the scope. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The value for the argument. + + + + Indicates that the specified constructor argument should be overridden with the specified value. + + The name of the argument to override. + The callback to invoke to get the value for the argument. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The value for the property. + + + + Indicates that the specified property should be injected with the specified value. + + The name of the property to override. + The callback to invoke to get the value for the property. + + + + Adds a custom parameter to the binding. + + The parameter. + + + + Sets the value of a piece of metadata on the binding. + + The metadata key. + The metadata value. + + + + Indicates that the specified callback should be invoked when instances are activated. + + The action callback. + + + + Indicates that the specified callback should be invoked when instances are deactivated. + + The action callback. + + + + Provides a root for the fluent syntax associated with an . + + + + + Gets the binding being built. + + + + + Gets the kernel. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Additional information available about a binding, which can be used in constraints + to select bindings to use in activation. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Determines whether a piece of metadata with the specified key has been defined. + + The metadata key. + True if such a piece of metadata exists; otherwise, false. + + + + Gets the value of metadata defined with the specified key, cast to the specified type. + + The type of value to expect. + The metadata key. + The metadata value. + + + + Gets the value of metadata defined with the specified key. + + The metadata key. + The value to return if the binding has no metadata set with the specified key. + The metadata value, or the default value if none was set. + + + + Sets the value of a piece of metadata. + + The metadata key. + The metadata value. + + + + Gets or sets the binding's name. + + + + + Describes the target of a binding. + + + + + Indicates that the binding is from a type to itself. + + + + + Indicates that the binding is from one type to another. + + + + + Indicates that the binding is from a type to a provider. + + + + + Indicates that the binding is from a type to a callback method. + + + + + Indicates that the binding is from a type to a constant value. + + + + + Describes the injection of a constructor. + + + + + Describes the injection of a method or constructor. + + + + + A piece of information used in an . (Just a marker.) + + + + + Initializes a new instance of the MethodInjectionDirectiveBase<TMethod, TInjector> class. + + The method this directive represents. + The injector that will be triggered. + + + + Creates targets for the parameters of the method. + + The method. + The targets for the method's parameters. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the targets for the directive. + + + + + Initializes a new instance of the class. + + The constructor described by the directive. + The injector that will be triggered. + + + + The base .ctor definition. + + + + + Describes the injection of a method. + + + + + Initializes a new instance of the class. + + The method described by the directive. + The injector that will be triggered. + + + + Describes the injection of a property. + + + + + Initializes a new instance of the class. + + The member the directive describes. + The injector that will be triggered. + + + + Creates a target for the property. + + The property. + The target for the property. + + + + Gets or sets the injector that will be triggered. + + + + + Gets or sets the injection target for the directive. + + + + + Adds a directive to plans indicating which constructor should be injected during activation. + + + + + Contributes to the generation of a . + + + + + Contributes to the specified plan. + + The plan that is being generated. + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for the constructor + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which methods should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each method + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Adds directives to plans indicating which properties should be injected during activation. + + + + + Initializes a new instance of the class. + + The selector component. + The injector factory component. + + + + Adds a to the plan for each property + that should be injected. + + The plan that is being generated. + + + + Gets the selector component. + + + + + Gets the injector factory component. + + + + + Represents a site on a type where a value will be injected. + + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the type of the target. + + + + + Gets the name of the target. + + + + + Gets the member that contains the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Represents an injection target for a . + + + + + Represents a site on a type where a value can be injected. + + The type of site this represents. + + + + Initializes a new instance of the Target<T> class. + + The member that contains the target. + The site represented by the target. + + + + Returns an array of custom attributes of a specified type defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes of the specified type. + + + + Returns an array of custom attributes defined on the target. + + Whether to look up the hierarchy chain for inherited custom attributes. + An array of custom attributes. + + + + Returns a value indicating whether an attribute of the specified type is defined on the target. + + The type of attribute to search for. + Whether to look up the hierarchy chain for inherited custom attributes. + True if such an attribute is defined; otherwise false. + + + + Resolves a value for the target within the specified parent context. + + The parent context. + The resolved value. + + + + Gets the value(s) that should be injected into the target. + + The service that the target is requesting. + The parent context in which the target is being injected. + A series of values that are available for injection. + + + + Reads whether the target represents an optional dependency. + + if it is optional; otherwise . + + + + Reads the resolution constraint from target. + + The resolution constraint. + + + + Gets the member that contains the target. + + + + + Gets or sets the site (property, parameter, etc.) represented by the target. + + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Gets the constraint defined on the target. + + + + + Gets a value indicating whether the target represents an optional dependency. + + + + + Initializes a new instance of the class. + + The method that defines the parameter. + The parameter that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Represents an injection target for a . + + + + + Initializes a new instance of the class. + + The property that this target represents. + + + + Gets the name of the target. + + + + + Gets the type of the target. + + + + + Describes the means by which a type should be activated. + + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Generates plans for how to activate instances. + + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Describes the means by which a type should be activated. + + + + + Initializes a new instance of the class. + + The type the plan describes. + + + + Adds the specified directive to the plan. + + The directive. + + + + Determines whether the plan contains one or more directives of the specified type. + + The type of directive. + True if the plan has one or more directives of the type; otherwise, false. + + + + Gets the first directive of the specified type from the plan. + + The type of directive. + The first directive, or if no matching directives exist. + + + + Gets all directives of the specified type that exist in the plan. + + The type of directive. + A series of directives of the specified type. + + + + Gets the type that the plan describes. + + + + + Gets the directives defined in the plan. + + + + + Generates plans for how to activate instances. + + + + + Initializes a new instance of the class. + + The strategies to execute during planning. + + + + Gets or creates an activation plan for the specified type. + + The type for which a plan should be created. + The type's activation plan. + + + + Creates an empty plan for the specified type. + + The type for which a plan should be created. + The created plan. + + + + Gets the strategies that contribute to the planning process. + + + + + Generates scores for constructors, to determine which is the best one to call during activation. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Scores constructors by either looking for the existence of an injection marker + attribute, or by counting the number of parameters. + + + + + Gets the score for the specified constructor. + + The injection context. + The constructor. + The constructor's score. + + + + Determines whether members should be injected during activation by checking + if they are decorated with an injection marker attribute. + + + + + Returns a value indicating whether the specified member should be injected. + + The member in question. + True if the member should be injected; otherwise false. + + + + Selects members for injection. + + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the heuristics used to determine which members should be injected. + + + + + Selects members for injection. + + + + + Initializes a new instance of the class. + + The constructor scorer. + The injection heuristics. + + + + Selects the constructor to call on the specified type, by using the constructor scorer. + + The type. + The selected constructor, or if none were available. + + + + Selects properties that should be injected. + + The type. + A series of the selected properties. + + + + Selects methods that should be injected. + + The type. + A series of the selected methods. + + + + Gets or sets the constructor scorer. + + + + + Gets the property injection heuristics. + + + + + Extension methods that enhance module loading. + + + + + Creates a new instance of the module and loads it into the kernel. + + The type of the module. + The kernel. + + + + Loads the module(s) into the kernel. + + The kernel. + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The kernel. + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The kernel. + The assemblies to search. + + + + Extensions that enhance resolution of services. + + + + + Gets an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The service to resolve. + The resolution root. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The service to resolve. + The resolution root. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The service to resolve. + The resolution root. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service. + + + + Gets an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service. + + + + Tries to get an instance of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Tries to get an instance of the specified service by using the first binding that matches the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the binding. + The parameters to pass to the request. + An instance of the service, or if no implementation was available. + + + + Gets all available instances of the specified service. + + The resolution root. + The service to resolve. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service using bindings registered with the specified name. + + The resolution root. + The service to resolve. + The name of the binding. + The parameters to pass to the request. + A series of instances of the service. + + + + Gets all instances of the specified service by using the bindings that match the specified constraint. + + The resolution root. + The service to resolve. + The constraint to apply to the bindings. + The parameters to pass to the request. + A series of instances of the service. + + + + Indicates that an error occured during activation of an instance. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The exception message. + + + + Initializes a new instance of the class. + + The exception message. + The inner exception. + + + + Initializes a new instance of the class. + + The serialized object data. + The serialization context. + + + + A service that requires initialization after it is activated. + + + + + Initializes the instance. Called during activation. + + + + + A super-factory that can create objects of all kinds, following hints provided by s. + + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets the attribute that indicates that a member should be injected. + + + + + Gets the interval at which the cache should be pruned. + + + + + Gets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + A service that is started when activated, and stopped when deactivated. + + + + + Starts this instance. Called during activation. + + + + + Stops this instance. Called during deactivation. + + + + + The base implementation of an . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The component container to use. + The configuration to use. + The modules to load into the kernel. + + + + Releases resources held by the object. + + + + + Unregisters all bindings for the specified service. + + The service to unbind. + + + + Registers the specified binding. + + The binding to add. + + + + Unregisters the specified binding. + + The binding to remove. + + + + Determines whether a module with the specified name has been loaded in the kernel. + + The name of the module. + True if the specified module has been loaded; otherwise, false. + + + + Gets the modules that have been loaded into the kernel. + + A series of loaded modules. + + + + Loads the module(s) into the kernel. + + The modules to load. + + + + Loads modules from the files that match the specified pattern(s). + + The file patterns (i.e. "*.dll", "modules/*.rb") to match. + + + + Loads modules defined in the specified assemblies. + + The assemblies to search. + + + + Unloads the plugin with the specified name. + + The plugin's name. + + + + Injects the specified existing instance, without managing its lifecycle. + + The instance to inject. + The parameters to pass to the request. + + + + Deactivates and releases the specified instance if it is currently managed by Ninject. + + The instance to release. + if the instance was found and released; otherwise . + + + + Determines whether the specified request can be resolved. + + The request. + True if the request can be resolved; otherwise, false. + + + + Resolves instances for the specified request. The instances are not actually resolved + until a consumer iterates over the enumerator. + + The request to resolve. + An enumerator of instances that match the request. + + + + Creates a request for the specified service. + + The service that is being requested. + The constraint to apply to the bindings to determine if they match the request. + The parameters to pass to the resolution. + True if the request is optional; otherwise, false. + True if the request should return a unique result; otherwise, false. + The created request. + + + + Gets the bindings registered for the specified service. + + The service in question. + A series of bindings that are registered for the service. + + + + Begins a new activation block, which can be used to deterministically dispose resolved instances. + + The new activation block. + + + + Creates a new builder for the specified binding. + + The type restriction to apply to the binding builder. + The binding that will be built. + The created builder. + + + + Adds components to the kernel during startup. + + + + + Attempts to handle a missing binding for a service. + + The service. + True if the missing binding can be handled; otherwise false. + + + + Returns a value indicating whether the specified service is self-bindable. + + The service. + if the type is self-bindable; otherwise . + + + + Creates a context for the specified request and binding. + + The request. + The binding. + The created context. + + + + Gets the kernel settings. + + + + + Gets the component container, which holds components that contribute to Ninject. + + + + + Contains configuration options for Ninject. + + + + + Gets the value for the specified key. + + The type of value to return. + The setting's key. + The value to return if no setting is available. + The value, or the default value if none was found. + + + + Sets the value for the specified key. + + The setting's key. + The setting's value. + + + + Gets or sets the attribute that indicates that a member should be injected. + + + + + Gets or sets the interval at which the GC should be polled. + + + + + Gets or sets a value indicating whether the kernel should automatically load extensions at startup. + + + + + Gets or sets the path that should be searched for extensions. + + + + + Gets a value indicating whether Ninject should use reflection-based injection instead of + the (usually faster) lightweight code generation system. + + + + + Gets a value indicating whether Ninject should inject non public members. + + + + + Provides callbacks to more aggressively collect objects scoped to HTTP requests. + + + + + Initializes the module. + + The whose instances will be managed. + + + + Start managing instances for the specified kernel. + + The kernel. + + + + Stops managing instances for the specified kernel. + + The kernel. + + + + Deactivates instances owned by the current . + + + + + The standard implementation of a kernel. + + + + + Initializes a new instance of the class. + + The modules to load into the kernel. + + + + Initializes a new instance of the class. + + The configuration to use. + The modules to load into the kernel. + + + + Adds components to the kernel during startup. + + + + diff --git a/Include/Ninject/extensions/CommonServiceLocator.NinjectAdapter.dll b/Include/Ninject/extensions/CommonServiceLocator.NinjectAdapter.dll new file mode 100644 index 0000000..414464f Binary files /dev/null and b/Include/Ninject/extensions/CommonServiceLocator.NinjectAdapter.dll differ diff --git a/Include/Ninject/lib/Microsoft.Practices.ServiceLocation.dll b/Include/Ninject/lib/Microsoft.Practices.ServiceLocation.dll new file mode 100644 index 0000000..3f88954 Binary files /dev/null and b/Include/Ninject/lib/Microsoft.Practices.ServiceLocation.dll differ diff --git a/Include/Ninject/lib/System.Web.Abstractions.dll b/Include/Ninject/lib/System.Web.Abstractions.dll new file mode 100644 index 0000000..317242e Binary files /dev/null and b/Include/Ninject/lib/System.Web.Abstractions.dll differ diff --git a/Include/Ninject/lib/System.Web.Mvc.dll b/Include/Ninject/lib/System.Web.Mvc.dll new file mode 100644 index 0000000..10b038f Binary files /dev/null and b/Include/Ninject/lib/System.Web.Mvc.dll differ diff --git a/Include/Ninject/lib/System.Web.Routing.dll b/Include/Ninject/lib/System.Web.Routing.dll new file mode 100644 index 0000000..93f0ff8 Binary files /dev/null and b/Include/Ninject/lib/System.Web.Routing.dll differ diff --git a/Include/Tanshu.Common.dll b/Include/Tanshu.Common.dll index 063d73d..6a6bd1b 100644 Binary files a/Include/Tanshu.Common.dll and b/Include/Tanshu.Common.dll differ diff --git a/Tanshu.Accounts.Contracts/Attributes/NotNullAttribute.cs b/Tanshu.Accounts.Contracts/Attributes/NotNullAttribute.cs index 5c7a241..466a725 100644 --- a/Tanshu.Accounts.Contracts/Attributes/NotNullAttribute.cs +++ b/Tanshu.Accounts.Contracts/Attributes/NotNullAttribute.cs @@ -6,7 +6,7 @@ using System.Text; namespace Tanshu.Accounts.Contracts { [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] - public class NotNullAttribute : Attribute + public class AllowNullAttribute : Attribute { private string message = string.Empty; public string Message diff --git a/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs index 6ffcd5e..9ae7d73 100644 --- a/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs +++ b/Tanshu.Accounts.Contracts/Data Contracts/InventoryBO.cs @@ -9,9 +9,7 @@ namespace Tanshu.Accounts.Entities public class Inventory { public virtual int InventoryID { get; set; } - [NotNull] public virtual Voucher Voucher { get; set; } - [NotNull] public virtual Product Product { get; set; } private decimal quantity; @@ -91,6 +89,13 @@ namespace Tanshu.Accounts.Entities { } } + //public decimal DiscountAmount + //{ + // get + // { + // return quantity * rate * (1 + tax) * (1 + serviceCharge) * discount; + // } + //} protected void CalculateAmount() { amount = quantity * rate * (1 + tax) * (1 + serviceCharge) * (1 - discount); diff --git a/Tanshu.Accounts.Contracts/Data Contracts/InventoryModifierBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/InventoryModifierBO.cs index 0ec01db..384028f 100644 --- a/Tanshu.Accounts.Contracts/Data Contracts/InventoryModifierBO.cs +++ b/Tanshu.Accounts.Contracts/Data Contracts/InventoryModifierBO.cs @@ -8,9 +8,7 @@ namespace Tanshu.Accounts.Entities public class InventoryModifier { public virtual int InventoryModifierID { get; set; } - [NotNull] public virtual Inventory Inventory { get; set; } - [NotNull] public virtual Modifier Modifier { get; set; } } } diff --git a/Tanshu.Accounts.Contracts/Data Contracts/ModifierBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/ModifierBO.cs index 5dc327f..286e8dd 100644 --- a/Tanshu.Accounts.Contracts/Data Contracts/ModifierBO.cs +++ b/Tanshu.Accounts.Contracts/Data Contracts/ModifierBO.cs @@ -11,7 +11,6 @@ namespace Tanshu.Accounts.Entities public virtual int ModifierID { get; set; } public virtual string Name { get; set; } - [NotNull] public virtual IList ProductGroupModifiers { get; set; } public override int GetHashCode() diff --git a/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs b/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs index 5bc98b6..12399ac 100644 --- a/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs +++ b/Tanshu.Accounts.Contracts/Data Contracts/SaleVoucherBO.cs @@ -13,6 +13,7 @@ namespace Tanshu.Accounts.Entities public virtual Customer Customer { get; set; } public virtual SettleOption Settled { get; set; } public virtual bool Void { get; set; } + [AllowNull] public virtual string VoidReason { get; set; } public virtual bool Printed { get; set; } public virtual string KotID { get; set; } diff --git a/Tanshu.Accounts.PointOfSale/App.config b/Tanshu.Accounts.PointOfSale/App.config index 77c1433..bbd28be 100644 --- a/Tanshu.Accounts.PointOfSale/App.config +++ b/Tanshu.Accounts.PointOfSale/App.config @@ -1,7 +1,6 @@  - diff --git a/Tanshu.Accounts.PointOfSale/Controllers/BillController.cs b/Tanshu.Accounts.PointOfSale/Controllers/BillController.cs index 92a4e46..377d640 100644 --- a/Tanshu.Accounts.PointOfSale/Controllers/BillController.cs +++ b/Tanshu.Accounts.PointOfSale/Controllers/BillController.cs @@ -368,6 +368,7 @@ namespace Tanshu.Accounts.PointOfSale } } bill.Remove(new BillItemKey(billInventory.ProductID, billInventory.Printed == 0)); + bill.ReCompact(); ShowAmount(); } diff --git a/Tanshu.Accounts.PointOfSale/Program.cs b/Tanshu.Accounts.PointOfSale/Program.cs index ce46de7..c248b8b 100644 --- a/Tanshu.Accounts.PointOfSale/Program.cs +++ b/Tanshu.Accounts.PointOfSale/Program.cs @@ -5,6 +5,7 @@ using System.Windows.Forms; using System.Threading; using Tanshu.Accounts.Helpers; using Tanshu.Accounts.Repository; +using Tanshu.Accounts.Entities; namespace Tanshu.Accounts.PointOfSale { @@ -17,7 +18,6 @@ namespace Tanshu.Accounts.PointOfSale { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - //log.Warn("Application Started"); Application.Run(new MainForm()); //log.Warn("Application Closed"); diff --git a/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.Designer.cs b/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.Designer.cs index 211b40d..d3c48f7 100644 --- a/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.Designer.cs +++ b/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.Designer.cs @@ -65,12 +65,16 @@ this.txtAdvanceReceived = new System.Windows.Forms.TextBox(); this.txtReceipts = new System.Windows.Forms.TextBox(); this.txtOpening = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.NC = new System.Windows.Forms.Label(); + this.txtBillToCompany = new System.Windows.Forms.TextBox(); + this.txtNC = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // label18 // this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(12, 380); + this.label18.Location = new System.Drawing.Point(12, 432); this.label18.Name = "label18"; this.label18.Size = new System.Drawing.Size(68, 13); this.label18.TabIndex = 71; @@ -78,9 +82,10 @@ // // txtClosingCash // - this.txtClosingCash.Location = new System.Drawing.Point(99, 377); + this.txtClosingCash.Location = new System.Drawing.Point(99, 429); this.txtClosingCash.Name = "txtClosingCash"; this.txtClosingCash.ReadOnly = true; + this.txtClosingCash.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtClosingCash.Size = new System.Drawing.Size(200, 20); this.txtClosingCash.TabIndex = 55; // @@ -103,7 +108,7 @@ // label17 // this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(12, 276); + this.label17.Location = new System.Drawing.Point(12, 328); this.label17.Name = "label17"; this.label17.Size = new System.Drawing.Size(85, 13); this.label17.TabIndex = 67; @@ -112,7 +117,7 @@ // label16 // this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(12, 302); + this.label16.Location = new System.Drawing.Point(12, 354); this.label16.Name = "label16"; this.label16.Size = new System.Drawing.Size(81, 13); this.label16.TabIndex = 68; @@ -121,7 +126,7 @@ // label15 // this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(12, 354); + this.label15.Location = new System.Drawing.Point(12, 406); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(53, 13); this.label15.TabIndex = 70; @@ -130,7 +135,7 @@ // label14 // this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(12, 406); + this.label14.Location = new System.Drawing.Point(12, 458); this.label14.Name = "label14"; this.label14.Size = new System.Drawing.Size(82, 13); this.label14.TabIndex = 72; @@ -139,7 +144,7 @@ // label13 // this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(12, 432); + this.label13.Location = new System.Drawing.Point(12, 484); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(37, 13); this.label13.TabIndex = 73; @@ -148,7 +153,7 @@ // label12 // this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(12, 328); + this.label12.Location = new System.Drawing.Point(12, 380); this.label12.Name = "label12"; this.label12.Size = new System.Drawing.Size(62, 13); this.label12.TabIndex = 69; @@ -156,7 +161,7 @@ // // btnCalculate // - this.btnCalculate.Location = new System.Drawing.Point(12, 455); + this.btnCalculate.Location = new System.Drawing.Point(12, 507); this.btnCalculate.Name = "btnCalculate"; this.btnCalculate.Size = new System.Drawing.Size(287, 23); this.btnCalculate.TabIndex = 39; @@ -166,7 +171,7 @@ // // btnPrint // - this.btnPrint.Location = new System.Drawing.Point(12, 484); + this.btnPrint.Location = new System.Drawing.Point(12, 536); this.btnPrint.Name = "btnPrint"; this.btnPrint.Size = new System.Drawing.Size(287, 23); this.btnPrint.TabIndex = 40; @@ -176,7 +181,7 @@ // // txtStatus // - this.txtStatus.Location = new System.Drawing.Point(99, 429); + this.txtStatus.Location = new System.Drawing.Point(99, 481); this.txtStatus.Name = "txtStatus"; this.txtStatus.ReadOnly = true; this.txtStatus.Size = new System.Drawing.Size(200, 20); @@ -184,25 +189,28 @@ // // txtSales // - this.txtSales.Location = new System.Drawing.Point(99, 351); + this.txtSales.Location = new System.Drawing.Point(99, 403); this.txtSales.Name = "txtSales"; this.txtSales.ReadOnly = true; + this.txtSales.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtSales.Size = new System.Drawing.Size(200, 20); this.txtSales.TabIndex = 54; this.txtSales.TextChanged += new System.EventHandler(this.txtSales_TextChanged); // // txtDeposited // - this.txtDeposited.Location = new System.Drawing.Point(99, 403); + this.txtDeposited.Location = new System.Drawing.Point(99, 455); this.txtDeposited.Name = "txtDeposited"; + this.txtDeposited.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtDeposited.Size = new System.Drawing.Size(200, 20); this.txtDeposited.TabIndex = 38; // // txtPending // - this.txtPending.Location = new System.Drawing.Point(99, 325); + this.txtPending.Location = new System.Drawing.Point(99, 377); this.txtPending.Name = "txtPending"; this.txtPending.ReadOnly = true; + this.txtPending.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtPending.Size = new System.Drawing.Size(200, 20); this.txtPending.TabIndex = 53; // @@ -237,7 +245,7 @@ // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(12, 250); + this.label8.Location = new System.Drawing.Point(12, 302); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(81, 13); this.label8.TabIndex = 66; @@ -246,7 +254,7 @@ // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(12, 224); + this.label7.Location = new System.Drawing.Point(12, 276); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(82, 13); this.label7.TabIndex = 65; @@ -255,7 +263,7 @@ // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(12, 198); + this.label6.Location = new System.Drawing.Point(12, 250); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(53, 13); this.label6.TabIndex = 64; @@ -264,7 +272,7 @@ // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(12, 172); + this.label5.Location = new System.Drawing.Point(12, 224); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(73, 13); this.label5.TabIndex = 63; @@ -308,17 +316,19 @@ // // txtPayments // - this.txtPayments.Location = new System.Drawing.Point(99, 195); + this.txtPayments.Location = new System.Drawing.Point(99, 247); this.txtPayments.Name = "txtPayments"; this.txtPayments.ReadOnly = true; + this.txtPayments.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtPayments.Size = new System.Drawing.Size(200, 20); this.txtPayments.TabIndex = 48; // // txtAdvanceAdjusted // - this.txtAdvanceAdjusted.Location = new System.Drawing.Point(99, 169); + this.txtAdvanceAdjusted.Location = new System.Drawing.Point(99, 221); this.txtAdvanceAdjusted.Name = "txtAdvanceAdjusted"; this.txtAdvanceAdjusted.ReadOnly = true; + this.txtAdvanceAdjusted.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtAdvanceAdjusted.Size = new System.Drawing.Size(200, 20); this.txtAdvanceAdjusted.TabIndex = 47; // @@ -327,38 +337,43 @@ this.txtCCReceipts.Location = new System.Drawing.Point(99, 143); this.txtCCReceipts.Name = "txtCCReceipts"; this.txtCCReceipts.ReadOnly = true; + this.txtCCReceipts.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtCCReceipts.Size = new System.Drawing.Size(200, 20); this.txtCCReceipts.TabIndex = 46; // // txtAdditionalVoids // - this.txtAdditionalVoids.Location = new System.Drawing.Point(99, 221); + this.txtAdditionalVoids.Location = new System.Drawing.Point(99, 273); this.txtAdditionalVoids.Name = "txtAdditionalVoids"; this.txtAdditionalVoids.ReadOnly = true; + this.txtAdditionalVoids.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtAdditionalVoids.Size = new System.Drawing.Size(200, 20); this.txtAdditionalVoids.TabIndex = 49; // // txtVoidsInSystem // - this.txtVoidsInSystem.Location = new System.Drawing.Point(99, 247); + this.txtVoidsInSystem.Location = new System.Drawing.Point(99, 299); this.txtVoidsInSystem.Name = "txtVoidsInSystem"; this.txtVoidsInSystem.ReadOnly = true; + this.txtVoidsInSystem.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtVoidsInSystem.Size = new System.Drawing.Size(200, 20); this.txtVoidsInSystem.TabIndex = 50; // // txtDiscounts // - this.txtDiscounts.Location = new System.Drawing.Point(99, 273); + this.txtDiscounts.Location = new System.Drawing.Point(99, 325); this.txtDiscounts.Name = "txtDiscounts"; this.txtDiscounts.ReadOnly = true; + this.txtDiscounts.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtDiscounts.Size = new System.Drawing.Size(200, 20); this.txtDiscounts.TabIndex = 51; // // txtRates // - this.txtRates.Location = new System.Drawing.Point(99, 299); + this.txtRates.Location = new System.Drawing.Point(99, 351); this.txtRates.Name = "txtRates"; this.txtRates.ReadOnly = true; + this.txtRates.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtRates.Size = new System.Drawing.Size(200, 20); this.txtRates.TabIndex = 52; // @@ -367,6 +382,7 @@ this.txtAdvanceReceived.Location = new System.Drawing.Point(99, 117); this.txtAdvanceReceived.Name = "txtAdvanceReceived"; this.txtAdvanceReceived.ReadOnly = true; + this.txtAdvanceReceived.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtAdvanceReceived.Size = new System.Drawing.Size(200, 20); this.txtAdvanceReceived.TabIndex = 45; // @@ -375,6 +391,7 @@ this.txtReceipts.Location = new System.Drawing.Point(99, 91); this.txtReceipts.Name = "txtReceipts"; this.txtReceipts.ReadOnly = true; + this.txtReceipts.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtReceipts.Size = new System.Drawing.Size(200, 20); this.txtReceipts.TabIndex = 44; // @@ -383,14 +400,55 @@ this.txtOpening.Location = new System.Drawing.Point(99, 65); this.txtOpening.Name = "txtOpening"; this.txtOpening.ReadOnly = true; + this.txtOpening.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.txtOpening.Size = new System.Drawing.Size(200, 20); this.txtOpening.TabIndex = 43; // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(12, 198); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(79, 13); + this.label11.TabIndex = 77; + this.label11.Text = "Bill to Company"; + // + // NC + // + this.NC.AutoSize = true; + this.NC.Location = new System.Drawing.Point(12, 172); + this.NC.Name = "NC"; + this.NC.Size = new System.Drawing.Size(58, 13); + this.NC.TabIndex = 76; + this.NC.Text = "No Charge"; + // + // txtBillToCompany + // + this.txtBillToCompany.Location = new System.Drawing.Point(99, 195); + this.txtBillToCompany.Name = "txtBillToCompany"; + this.txtBillToCompany.ReadOnly = true; + this.txtBillToCompany.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.txtBillToCompany.Size = new System.Drawing.Size(200, 20); + this.txtBillToCompany.TabIndex = 75; + // + // txtNC + // + this.txtNC.Location = new System.Drawing.Point(99, 169); + this.txtNC.Name = "txtNC"; + this.txtNC.ReadOnly = true; + this.txtNC.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.txtNC.Size = new System.Drawing.Size(200, 20); + this.txtNC.TabIndex = 74; + // // Cashier_Checkout_Form // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(311, 519); + this.ClientSize = new System.Drawing.Size(311, 571); + this.Controls.Add(this.label11); + this.Controls.Add(this.NC); + this.Controls.Add(this.txtBillToCompany); + this.Controls.Add(this.txtNC); this.Controls.Add(this.label18); this.Controls.Add(this.txtClosingCash); this.Controls.Add(this.dtpFinish); @@ -477,5 +535,9 @@ private System.Windows.Forms.TextBox txtAdvanceReceived; private System.Windows.Forms.TextBox txtReceipts; private System.Windows.Forms.TextBox txtOpening; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label NC; + private System.Windows.Forms.TextBox txtBillToCompany; + private System.Windows.Forms.TextBox txtNC; } } \ No newline at end of file diff --git a/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.cs b/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.cs index bc84994..5164b22 100644 --- a/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.cs +++ b/Tanshu.Accounts.PointOfSale/Reports/CheckoutForm.cs @@ -47,17 +47,20 @@ namespace Tanshu.Accounts.PointOfSale dtpFinish.Value = Convert.ToDateTime(String.Format("{0:dd-MMM-yyyy} 23:59:59", dtpFinish.Value)); coProxy = new CheckoutBI((int)cmbCashier.SelectedValue, dtpStart.Value, dtpFinish.Value); - txtOpening.Text = coProxy.Opening.ToString(); - txtReceipts.Text = coProxy.Receipts.ToString(); - txtAdvanceReceived.Text = coProxy.AdvanceReceipts.ToString(); - txtCCReceipts.Text = coProxy.CCReceipts.ToString(); - txtAdvanceAdjusted.Text = coProxy.AdvanceAdjusted.ToString(); - txtPayments.Text = coProxy.CashPayments.ToString(); - txtAdditionalVoids.Text = coProxy.AdditionalVoids.ToString(); - txtVoidsInSystem.Text = coProxy.VoidsInSystem.ToString(); - txtPending.Text = coProxy.PendingBills.ToString(); - txtSales.Text = coProxy.NetSales.ToString(); - txtClosingCash.Text = coProxy.ClosingBalance.ToString(); + txtOpening.Text = string.Format("{0:#,##0.00}", coProxy); + txtReceipts.Text = string.Format("{0:#,##0.00}", coProxy.Receipts); + txtAdvanceReceived.Text = string.Format("{0:#,##0.00}", coProxy.AdvanceReceipts); + txtCCReceipts.Text = string.Format("{0:#,##0.00}", coProxy.CCReceipts); + txtNC.Text = string.Format("{0:#,##0.00}", coProxy.NCReceipts); + txtBillToCompany.Text = string.Format("{0:#,##0.00}", coProxy.BTCReceipts); + txtAdvanceAdjusted.Text = string.Format("{0:#,##0.00}", coProxy.AdvanceAdjusted); + txtPayments.Text = string.Format("{0:#,##0.00}", coProxy.CashPayments); + txtAdditionalVoids.Text = string.Format("{0:#,##0.00}", coProxy.AdditionalVoids); + txtVoidsInSystem.Text = string.Format("{0:#,##0.00}", coProxy.VoidsInSystem); + txtPending.Text = string.Format("{0:#,##0.00}", coProxy.PendingBills); + txtSales.Text = string.Format("{0:#,##0.00}", coProxy.NetSales); + txtClosingCash.Text = string.Format("{0:#,##0.00}", coProxy.ClosingBalance + ); txtStatus.Text = coProxy.Status; } diff --git a/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs index 2c271b3..bb742ec 100644 --- a/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs +++ b/Tanshu.Accounts.PointOfSale/Sales/SalesForm.cs @@ -170,7 +170,7 @@ namespace Tanshu.Accounts.PointOfSale } else { - ControlFactory.GenerateTables(ref flpMain, ref buttonHeads, new Point(75, 75), 0, new FoodTableBI().GetFoodTables(), new ButtonClickDelegate(tableButton_Click)); + ControlFactory.GenerateTables(ref flpMain, ref buttonHeads, new Point(75, 75), 0, new FoodTableBI().List(), new ButtonClickDelegate(tableButton_Click)); } } @@ -223,7 +223,7 @@ namespace Tanshu.Accounts.PointOfSale int start = item.FoodTableID; if (start < 0) start = 0; - var list = new FoodTableBI().GetFoodTables(); + var list = new FoodTableBI().List(); ControlFactory.GenerateTables(ref flpMain, ref buttonHeads, new Point(75, 75), start, list, new ButtonClickDelegate(tableButton_Click)); } else diff --git a/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj index 26f0bf7..ee2fcf0 100644 --- a/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj +++ b/Tanshu.Accounts.PointOfSale/Tanshu.Accounts.PointOfSale.csproj @@ -55,6 +55,10 @@ False ..\Include\Fluent\Castle.Core.dll + + False + ..\Include\Windsor\Castle.Windsor.dll + False ..\Include\Fluent\FluentNHibernate.dll @@ -101,7 +105,6 @@ False ..\Include\Tanshu.Common.dll - False ..\Include\Tanshu.Data.dll diff --git a/Tanshu.Accounts.Print/Thermal.cs b/Tanshu.Accounts.Print/Thermal.cs index 031a94b..ad12b36 100644 --- a/Tanshu.Accounts.Print/Thermal.cs +++ b/Tanshu.Accounts.Print/Thermal.cs @@ -162,6 +162,10 @@ namespace Tanshu.Accounts.Print private static bool PrintRAW(PrintLocation printer, string Text, string DocumentName) { +#if (DEBUG) + System.Windows.Forms.MessageBox.Show(Text); + return true; +#else try { Text += printer.CutCode; @@ -176,6 +180,7 @@ namespace Tanshu.Accounts.Print throw ex; } return true; +#endif } #region Print Cash Total @@ -278,7 +283,7 @@ namespace Tanshu.Accounts.Print string BillText; try { - BillText = FormatText(string.Format("{0} Checkout By {1}", details.Cashier, details.Manager), 42, false, Align.Centre); + BillText = FormatText(string.Format("{0} Checkout By {1}", details.Cashier.Name, details.Manager), 42, false, Align.Centre); BillText += string.Format("{0:dd-MMM-yy} To {1:dd-MMM-yy} @ {2:dd-MMM-yyyy HH:mm}", details.StartDate, details.FinishDate, DateTime.Now); BillText += DrawLine; BillText += string.Format("\n\rOpening : {0,26:#,##0.00}", details.Opening); diff --git a/Tanshu.Accounts.SqlDAO/BusinessLayer/AdvanceBI.cs b/Tanshu.Accounts.SqlDAO/BusinessLayer/AdvanceBI.cs index a1651be..9d0acef 100644 --- a/Tanshu.Accounts.SqlDAO/BusinessLayer/AdvanceBI.cs +++ b/Tanshu.Accounts.SqlDAO/BusinessLayer/AdvanceBI.cs @@ -7,6 +7,7 @@ using Tanshu.Data.DAO; using Tanshu.Accounts.Entities; using Tanshu.Accounts.SqlDAO; using Tanshu.Accounts.Entities.Auth; +using NHibernate; namespace Tanshu.Accounts.Repository { @@ -29,14 +30,20 @@ namespace Tanshu.Accounts.Repository finishDate = finishDate.Date.AddHours(23).AddMinutes(59).AddSeconds(59); using (var session = SessionManager.Session) { - var ab = from ad in session.QueryOver() - where ad.DateIn >= startDate && ad.DateIn <= finishDate - select ad; + var query = from ad in session.QueryOver() + where ad.DateIn >= startDate && ad.DateIn <= finishDate + select ad; if (!all) - ab = from a in ab - where a.CashierOut == null - select a; - return ab.List(); + query = from a in query + where a.CashierOut == null + select a; + var list = query.List(); + foreach (var item in list) + { + NHibernateUtil.Initialize(item.CashierIn); + NHibernateUtil.Initialize(item.CashierOut); + } + return list; } } public void Adjust(int advanceID, int userID) diff --git a/Tanshu.Accounts.SqlDAO/BusinessLayer/CheckoutBI.cs b/Tanshu.Accounts.SqlDAO/BusinessLayer/CheckoutBI.cs index 6599e34..4dd00e1 100644 --- a/Tanshu.Accounts.SqlDAO/BusinessLayer/CheckoutBI.cs +++ b/Tanshu.Accounts.SqlDAO/BusinessLayer/CheckoutBI.cs @@ -1,12 +1,14 @@ using System; using System.Collections.Generic; -//using System.Linq; +using System.Linq; using System.Text; using System.Threading; using System.Data.SqlClient; using Tanshu.Data.DAO; using Tanshu.Accounts.SqlDAO; using Tanshu.Accounts.Entities; +using Tanshu.Accounts.Entities.Auth; +using NHibernate.Criterion; namespace Tanshu.Accounts.Repository { @@ -17,6 +19,8 @@ namespace Tanshu.Accounts.Repository public decimal Receipts { get; private set; } public decimal AdvanceReceipts { get; private set; } public decimal CCReceipts { get; private set; } + public decimal NCReceipts { get; private set; } + public decimal BTCReceipts { get; private set; } public decimal AdvanceAdjusted { get; private set; } public decimal CashPayments { get; private set; } public decimal AdditionalVoids { get; private set; } @@ -29,36 +33,21 @@ namespace Tanshu.Accounts.Repository public decimal Excess { get; private set; } // public string Status { get; private set; } // public string Cashiers { get; private set; } // - public int CashierID { get; private set; } // - public string Cashier { get; private set; } // + public User Cashier { get; private set; } public decimal OldPending { get; private set; } public decimal OldReceipts { get; private set; } public decimal OldVoided { get; private set; } - public DateTime StartDate { get; private set; } // - public DateTime FinishDate { get; private set; } // + public DateTime StartDate { get; private set; } + public DateTime FinishDate { get; private set; } - private string pendingString; - public string PendingString - { - get { return pendingString; } - } - private string cCString; - public string CCString - { - get { return cCString; } - } - private string voidsString; - public string VoidsString - { - get { return voidsString; } - } - private string discountString; - public string DiscountString - { - get { return discountString; } - } + public string PendingString { get; private set; } + public string CCString { get; private set; } + public string NCString { get; private set; } + public string BTCString { get; private set; } + public string VoidsString { get; private set; } + public string DiscountString { get; private set; } //public string PendingString { get; private set; } // //public string CCString { get; private set; } // @@ -77,21 +66,29 @@ namespace Tanshu.Accounts.Repository using (var session = SessionManager.Session) { //Actual Closing - this.CashierID = cashier; + this.Cashier = UserBI.GetUser(cashier); this.StartDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 00:00:00", startDate)); this.FinishDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} 23:59:59", finishDate)); - Cashier = UserBI.GetUser(CashierID).Name; - //PendingBills = dao.GetPending(ref pendingString); - // CCReceipts = dao.GetCreditCard(ref cCString); - // VoidsInSystem = dao.GetVoids(ref voidsString); + string info; + PendingBills = GetPending(out info); + PendingString = info; + CCReceipts = GetCreditCard(out info); + CCString = info; + NCReceipts = GetNoCharge(out info); + NCString = info; + BTCReceipts = GetBillToCompany(out info); + BTCString = info; + VoidsInSystem = GetVoids(out info); + VoidsString = info; // Opening = dao.GetOpenings(); - // Receipts = dao.GetReceipts(); + // Receipts = GetReceipts(); // CashPayments = dao.GetPayments(); // AdditionalVoids = dao.GetAdditionalVoids(); // RetainedOvernight = dao.GetRetainedOvernight(); - // AdvanceReceipts = dao.GetAdvancesReceived(); - // AdvanceAdjusted = dao.GetAdvancesAdjusted(); + + AdvanceReceipts = GetAdvancesReceived(); + AdvanceAdjusted = GetAdvancesAdjusted(); // PaymentString = dao.GetPaymentString(); // OldPending = dao.GetOldPending(); @@ -99,17 +96,42 @@ namespace Tanshu.Accounts.Repository // OldVoided = dao.GetOldVoided(); - // Cashiers = dao.GetActiveCashiers(); - // NetSales = dao.GetNetSales(); - // dao.GetDiscountsBills(ref discountString); - // ClosingBalance = Opening - // + Receipts - // + AdvanceReceipts - // - CCReceipts - // - AdvanceAdjusted - // - CashPayments - // - AdditionalVoids - // + NetSales; + //Cashiers = GetActiveCashiers(); + NetSales = GetNetSales(); + GetDiscountBills(.1M, out info); + DiscountString = info; + ClosingBalance = Opening + + Receipts + + AdvanceReceipts + - CCReceipts + - AdvanceAdjusted + - CashPayments + - AdditionalVoids + + NetSales; + } + } + + private decimal GetAdvancesAdjusted() + { + using (var session = SessionManager.Session) + { + var amt = session.QueryOver() + .Where(i => i.DateOut >= StartDate && i.DateOut <= FinishDate && i.CashierOut == Cashier) + .SelectList(k => k.SelectSum(j => j.Amount)) + .SingleOrDefault(); + return amt; + } + } + + private decimal GetAdvancesReceived() + { + using (var session = SessionManager.Session) + { + var amt = session.QueryOver() + .Where(i => i.DateIn >= StartDate && i.DateIn <= FinishDate && i.CashierIn == Cashier) + .SelectList(k => k.SelectSum(j => j.Amount)) + .SingleOrDefault(); + return amt; } } public void Calculate(decimal cashDeposited, decimal retainedOvernight) @@ -119,49 +141,155 @@ namespace Tanshu.Accounts.Repository Excess = CashDeposited - ClosingBalance; Status = string.Format("{0:Extra Cash Rs #,##0.00; Cash Short Rs #,##0.00;Cash Perfect}", Excess); } -// public decimal GetPending(ref string info) -// { -// using (var session = SessionManager.Session) -// { -// var a = from i in session.QueryOver() -// where i.LastEditDate >= StartDate && i.LastEditDate <= FinishDate && i.User.UserID == userid -// } -// decimal amount = 0; -// info = ""; -// string query = @" -//SELECT t.Date, s.BillID, c.Name, SUM(i.Amount) AS Amount, SUM(Quantity * Rate * Discount) AS Discount FROM Vouchers t INNER JOIN SaleVoucher s ON t.VoucherID = s.VoucherID -//INNER JOIN Inventory i ON t.VoucherID = i.VoucherID -//INNER JOIN Customers c ON s.CustomerID = c.CustomerID -//WHERE t.Type = 'S' -//AND t.LastEditDate BETWEEN @StartDate AND @FinishDate AND t.UserID = @UserID -//AND s.Void = 0 AND s.Paid = 0 -//GROUP BY t.Date, c.Name, s.BillID -//"; -// using (SqlCommand cmd = new SqlCommand(query)) -// { -// cmd.Parameters.AddWithValue("@StartDate", startDate); -// cmd.Parameters.AddWithValue("@FinishDate", finishDate); -// cmd.Parameters.AddWithValue("@UserID", userID); + private decimal GetPending(out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- Pending Bills ------------------------"; + var list = (from i in session.QueryOver() + where i.LastEditDate >= StartDate && + i.LastEditDate <= FinishDate && + i.User == Cashier && + i.Void == false && + i.Settled == SettleOptionFactory.OUnsettled + select i).List(); + GetInfo(list, out amount, ref info); + return amount; + } + } + private decimal GetNoCharge(out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- No Charge ----------------------------"; + var list = (from i in session.QueryOver() + where i.LastEditDate >= StartDate && + i.LastEditDate <= FinishDate && + i.User == Cashier && + i.Void == false && + i.Settled == SettleOptionFactory.ONoCharge + select i).List(); + GetInfo(list, out amount, ref info); + return amount; + } + } + private decimal GetBillToCompany(out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- Bill To Company ----------------------"; + var list = (from i in session.QueryOver() + where i.LastEditDate >= StartDate && + i.LastEditDate <= FinishDate && + i.User == Cashier && + i.Void == false && + i.Settled == SettleOptionFactory.OBillToCompany + select i).List(); + GetInfo(list, out amount, ref info); + return amount; + } + } + private decimal GetCreditCard(out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- Credit Card Bills --------------------"; + var list = (from i in session.QueryOver() + where i.LastEditDate >= StartDate && + i.LastEditDate <= FinishDate && + i.User == Cashier && + i.Void == false && + i.Settled == SettleOptionFactory.OCreditCard + select i).List(); + GetInfo(list, out amount, ref info); + return amount; + } + } + private decimal GetVoids(out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- Void Bills ---------------------------"; + var list = (from i in session.QueryOver() + where i.LastEditDate >= StartDate && + i.LastEditDate <= FinishDate && + i.User == Cashier && + i.Void == true + select i).List(); + GetInfo(list, out amount, ref info); + return amount; + } + } + private decimal GetDiscountBills(decimal disount, out string info) + { + using (var session = SessionManager.Session) + { + decimal amount; + info = "\n\r--- High Discount Bills ------------------"; + string query = @" +select v from SaleVoucher v +inner join v.Inventories i +where v.Date >= :startDate and v.Date <= :finishDate and v.User = :cashierID and v.Void = false and v.Settled != :unSettled and v.Settled != :noCharge +and i.Discount >= :discount"; + var list = session.CreateQuery(query) + .SetParameter("startDate", StartDate) + .SetParameter("finishDate", FinishDate) + .SetParameter("cashierID", Cashier.UserID) + .SetParameter("unSettled", SettleOptionFactory.Unsettled) + .SetParameter("noCharge", SettleOptionFactory.NoCharge) + .SetParameter("discount", disount) + .List(); -// using (IDataReader dr = connection.ExecuteReader(cmd)) -// { -// if (dr.Read()) -// { -// info = "\n\r--- Pending Bills ------------------------"; + GetInfo(list, out amount, ref info); + return amount; + } + } -// do -// { -// amount += dr.GetDecimal(3); -// info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", dr.GetDateTime(0), dr.GetString(1), dr.GetString(2)); -// info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", dr.GetDecimal(3), dr.GetDecimal(4)); -// info += "\n\r------------------------------------------"; -// } while (dr.Read()); -// } -// } -// } -// return amount; -// } + private decimal GetNetSales() + { + using (var session = SessionManager.Session) + { + decimal amount = 0; + string query = @" +select sum(i.Amount) from SaleVoucher v +inner join v.Inventories i +where v.Date >= :startDate and v.Date <= :finishDate and v.User = :cashierID and v.Void = false and v.Settled != :unSettled and v.Settled != :noCharge"; + amount = session.CreateQuery(query) + .SetParameter("startDate", StartDate) + .SetParameter("finishDate", FinishDate) + .SetParameter("cashierID", Cashier.UserID) + .SetParameter("unSettled", SettleOptionFactory.Unsettled) + .SetParameter("noCharge", SettleOptionFactory.NoCharge) + .UniqueResult(); + return amount; + } + } + + private void GetInfo(IList list, out decimal amount, ref string info) + { + amount = 0; + if (list.Count == 0) + { + info = string.Empty; + return; + } + + foreach (var item in list) + { + decimal amt, disc; + amt = item.Inventories.Sum(x => x.Amount); + disc = item.Inventories.Sum(x => x.Quantity * x.Rate * (1 + x.Tax) * (1 + x.ServiceCharge) * x.Discount); + info += string.Format("\n\r{0:dd-MMM-yyyy HH:mm:ss} {1} {2}", item.Date, item.BillID, item.Customer.Name); + info += string.Format("\n\rAmount: {0:#0.00} :: Discount: {1:#0.00}", amt, disc); + info += "\n\r------------------------------------------"; + amount += amt; + } + } } - } diff --git a/Tanshu.Accounts.SqlDAO/BusinessLayer/FoodTableBI.cs b/Tanshu.Accounts.SqlDAO/BusinessLayer/FoodTableBI.cs index 4688497..4781d0c 100644 --- a/Tanshu.Accounts.SqlDAO/BusinessLayer/FoodTableBI.cs +++ b/Tanshu.Accounts.SqlDAO/BusinessLayer/FoodTableBI.cs @@ -6,45 +6,41 @@ using System.Data.SqlClient; using Tanshu.Data.DAO; using Tanshu.Accounts.Entities; using Tanshu.Accounts.SqlDAO; +using NHibernate; namespace Tanshu.Accounts.Repository { public class FoodTableBI { + ISession session; + public FoodTableBI() + { + this.session = SessionManager.Session; + } + public void Insert(FoodTable foodTable) { - using (var session = SessionManager.Session) - { - session.Save(foodTable); - } + session.Save(foodTable); } public void Update(FoodTable foodTable) { - using (var session = SessionManager.Session) - { - session.Update(foodTable); - } + session.Update(foodTable); } public void Delete(int foodTableID) { - using (var session = SessionManager.Session) - { - session.Delete(new FoodTable() { FoodTableID = foodTableID }); - } + session.Delete(new FoodTable() { FoodTableID = foodTableID }); } - public FoodTable GetFoodTable(int foodTableID) + public FoodTable Get(int foodTableID) { - using (var session = SessionManager.Session) - { - return session.Get(foodTableID); - } + return session.Get(foodTableID); } - public IList GetFoodTables() + public IList List() { - using (var session = SessionManager.Session) - { - return session.CreateCriteria().List(); - } + return session.CreateCriteria().List(); + } + public void Dispose() + { + session.Dispose(); } } } diff --git a/Tanshu.Accounts.SqlDAO/Fluent/AllowNullConvention.cs b/Tanshu.Accounts.SqlDAO/Fluent/AllowNullConvention.cs new file mode 100644 index 0000000..32dbcbc --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Fluent/AllowNullConvention.cs @@ -0,0 +1,33 @@ +//using System; +//using FluentNHibernate.Conventions; +//using System.Reflection; +//using FluentNHibernate; +//using FluentNHibernate.Conventions.Instances; +//using FluentNHibernate.Conventions.Inspections; +//using FluentNHibernate.Conventions.AcceptanceCriteria; +//using Tanshu.Accounts.Contracts; + +//namespace Tanshu.Accounts.Conventions +//{ +// public class AllowNullConvention : IPropertyConvention, IPropertyConventionAcceptance +// { +// public void Accept(IAcceptanceCriteria criteria) +// { +// criteria.Expect( +// x => !this.IsNullableProperty(x) +// || x.Property.MemberInfo.GetCustomAttributes(typeof(AllowNullAttribute), true).Length > 0); +// } + +// public void Apply(IPropertyInstance instance) +// { +// instance.Nullable(); +// } + +// private bool IsNullableProperty(IExposedThroughPropertyInspector target) +// { +// var type = target.Property.PropertyType; + +// return type.Equals(typeof(string)) || (type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>))); +// } +// } +//} diff --git a/Tanshu.Accounts.SqlDAO/Fluent/Fixtures.cs b/Tanshu.Accounts.SqlDAO/Fluent/Fixtures.cs index fd30972..31e7b88 100644 --- a/Tanshu.Accounts.SqlDAO/Fluent/Fixtures.cs +++ b/Tanshu.Accounts.SqlDAO/Fluent/Fixtures.cs @@ -360,66 +360,66 @@ namespace Tanshu.Accounts.Repository { using (var session = SessionManager.StatelessSession) { - session.Insert(new FoodTable() { Name = "1" }); - session.Insert(new FoodTable() { Name = "2" }); - session.Insert(new FoodTable() { Name = "3" }); - session.Insert(new FoodTable() { Name = "4" }); - session.Insert(new FoodTable() { Name = "5" }); - session.Insert(new FoodTable() { Name = "6" }); - session.Insert(new FoodTable() { Name = "7" }); - session.Insert(new FoodTable() { Name = "8" }); - session.Insert(new FoodTable() { Name = "9" }); - session.Insert(new FoodTable() { Name = "10" }); - session.Insert(new FoodTable() { Name = "11" }); - session.Insert(new FoodTable() { Name = "12" }); - session.Insert(new FoodTable() { Name = "13" }); - session.Insert(new FoodTable() { Name = "14" }); - session.Insert(new FoodTable() { Name = "15" }); - session.Insert(new FoodTable() { Name = "16" }); - session.Insert(new FoodTable() { Name = "17" }); - session.Insert(new FoodTable() { Name = "18" }); - session.Insert(new FoodTable() { Name = "19" }); - session.Insert(new FoodTable() { Name = "20" }); - session.Insert(new FoodTable() { Name = "21" }); - session.Insert(new FoodTable() { Name = "22" }); - session.Insert(new FoodTable() { Name = "23" }); - session.Insert(new FoodTable() { Name = "24" }); - session.Insert(new FoodTable() { Name = "25" }); - session.Insert(new FoodTable() { Name = "26" }); - session.Insert(new FoodTable() { Name = "27" }); - session.Insert(new FoodTable() { Name = "28" }); - session.Insert(new FoodTable() { Name = "29" }); - session.Insert(new FoodTable() { Name = "30" }); - session.Insert(new FoodTable() { Name = "31" }); - session.Insert(new FoodTable() { Name = "32" }); - session.Insert(new FoodTable() { Name = "33" }); - session.Insert(new FoodTable() { Name = "34" }); - session.Insert(new FoodTable() { Name = "35" }); - session.Insert(new FoodTable() { Name = "36" }); - session.Insert(new FoodTable() { Name = "37" }); - session.Insert(new FoodTable() { Name = "38" }); - session.Insert(new FoodTable() { Name = "39" }); - session.Insert(new FoodTable() { Name = "40" }); - session.Insert(new FoodTable() { Name = "41" }); - session.Insert(new FoodTable() { Name = "42" }); - session.Insert(new FoodTable() { Name = "43" }); - session.Insert(new FoodTable() { Name = "44" }); - session.Insert(new FoodTable() { Name = "45" }); - session.Insert(new FoodTable() { Name = "46" }); - session.Insert(new FoodTable() { Name = "47" }); - session.Insert(new FoodTable() { Name = "48" }); - session.Insert(new FoodTable() { Name = "49" }); - session.Insert(new FoodTable() { Name = "50" }); - session.Insert(new FoodTable() { Name = "51" }); - session.Insert(new FoodTable() { Name = "52" }); - session.Insert(new FoodTable() { Name = "53" }); - session.Insert(new FoodTable() { Name = "54" }); - session.Insert(new FoodTable() { Name = "55" }); - session.Insert(new FoodTable() { Name = "56" }); - session.Insert(new FoodTable() { Name = "57" }); - session.Insert(new FoodTable() { Name = "58" }); - session.Insert(new FoodTable() { Name = "59" }); - session.Insert(new FoodTable() { Name = "60" }); + session.Insert(new FoodTable() { Location = "", Name = "1" }); + session.Insert(new FoodTable() { Location = "", Name = "2" }); + session.Insert(new FoodTable() { Location = "", Name = "3" }); + session.Insert(new FoodTable() { Location = "", Name = "4" }); + session.Insert(new FoodTable() { Location = "", Name = "5" }); + session.Insert(new FoodTable() { Location = "", Name = "6" }); + session.Insert(new FoodTable() { Location = "", Name = "7" }); + session.Insert(new FoodTable() { Location = "", Name = "8" }); + session.Insert(new FoodTable() { Location = "", Name = "9" }); + session.Insert(new FoodTable() { Location = "", Name = "10" }); + session.Insert(new FoodTable() { Location = "", Name = "11" }); + session.Insert(new FoodTable() { Location = "", Name = "12" }); + session.Insert(new FoodTable() { Location = "", Name = "13" }); + session.Insert(new FoodTable() { Location = "", Name = "14" }); + session.Insert(new FoodTable() { Location = "", Name = "15" }); + session.Insert(new FoodTable() { Location = "", Name = "16" }); + session.Insert(new FoodTable() { Location = "", Name = "17" }); + session.Insert(new FoodTable() { Location = "", Name = "18" }); + session.Insert(new FoodTable() { Location = "", Name = "19" }); + session.Insert(new FoodTable() { Location = "", Name = "20" }); + session.Insert(new FoodTable() { Location = "", Name = "21" }); + session.Insert(new FoodTable() { Location = "", Name = "22" }); + session.Insert(new FoodTable() { Location = "", Name = "23" }); + session.Insert(new FoodTable() { Location = "", Name = "24" }); + session.Insert(new FoodTable() { Location = "", Name = "25" }); + session.Insert(new FoodTable() { Location = "", Name = "26" }); + session.Insert(new FoodTable() { Location = "", Name = "27" }); + session.Insert(new FoodTable() { Location = "", Name = "28" }); + session.Insert(new FoodTable() { Location = "", Name = "29" }); + session.Insert(new FoodTable() { Location = "", Name = "30" }); + session.Insert(new FoodTable() { Location = "", Name = "31" }); + session.Insert(new FoodTable() { Location = "", Name = "32" }); + session.Insert(new FoodTable() { Location = "", Name = "33" }); + session.Insert(new FoodTable() { Location = "", Name = "34" }); + session.Insert(new FoodTable() { Location = "", Name = "35" }); + session.Insert(new FoodTable() { Location = "", Name = "36" }); + session.Insert(new FoodTable() { Location = "", Name = "37" }); + session.Insert(new FoodTable() { Location = "", Name = "38" }); + session.Insert(new FoodTable() { Location = "", Name = "39" }); + session.Insert(new FoodTable() { Location = "", Name = "40" }); + session.Insert(new FoodTable() { Location = "", Name = "41" }); + session.Insert(new FoodTable() { Location = "", Name = "42" }); + session.Insert(new FoodTable() { Location = "", Name = "43" }); + session.Insert(new FoodTable() { Location = "", Name = "44" }); + session.Insert(new FoodTable() { Location = "", Name = "45" }); + session.Insert(new FoodTable() { Location = "", Name = "46" }); + session.Insert(new FoodTable() { Location = "", Name = "47" }); + session.Insert(new FoodTable() { Location = "", Name = "48" }); + session.Insert(new FoodTable() { Location = "", Name = "49" }); + session.Insert(new FoodTable() { Location = "", Name = "50" }); + session.Insert(new FoodTable() { Location = "", Name = "51" }); + session.Insert(new FoodTable() { Location = "", Name = "52" }); + session.Insert(new FoodTable() { Location = "", Name = "53" }); + session.Insert(new FoodTable() { Location = "", Name = "54" }); + session.Insert(new FoodTable() { Location = "", Name = "55" }); + session.Insert(new FoodTable() { Location = "", Name = "56" }); + session.Insert(new FoodTable() { Location = "", Name = "57" }); + session.Insert(new FoodTable() { Location = "", Name = "58" }); + session.Insert(new FoodTable() { Location = "", Name = "59" }); + session.Insert(new FoodTable() { Location = "", Name = "60" }); } } #endregion diff --git a/Tanshu.Accounts.SqlDAO/Fluent/NotNullConvention.cs b/Tanshu.Accounts.SqlDAO/Fluent/NotNullConvention.cs index 58dda6e..6bf6dfd 100644 --- a/Tanshu.Accounts.SqlDAO/Fluent/NotNullConvention.cs +++ b/Tanshu.Accounts.SqlDAO/Fluent/NotNullConvention.cs @@ -1,24 +1,20 @@ -using System; -using FluentNHibernate.Conventions; -using System.Reflection; -using FluentNHibernate; -using FluentNHibernate.Conventions.Instances; -using FluentNHibernate.Conventions.Inspections; -using FluentNHibernate.Conventions.AcceptanceCriteria; -using Tanshu.Accounts.Contracts; +//using System; +//using FluentNHibernate.Conventions; +//using System.Reflection; +//using FluentNHibernate; +//using FluentNHibernate.Conventions.Instances; +//using FluentNHibernate.Conventions.Inspections; +//using FluentNHibernate.Conventions.AcceptanceCriteria; +//using Tanshu.Accounts.Contracts; -namespace Tanshu.Accounts.Conventions -{ - public class NotNullConvention : IPropertyConvention - { - public void Apply(IPropertyInstance instance) - { - if (!HasAttribute(instance.Property.MemberInfo)) return; - instance.Not.Nullable(); - } - bool HasAttribute(ICustomAttributeProvider provider) - { - return provider.GetCustomAttributes(typeof(NotNullAttribute), false).Length == 1; - } - } -} +//namespace Tanshu.Accounts.Conventions +//{ +// public class NotNullConvention : IPropertyConvention +// { +// public void Apply(IPropertyInstance instance) +// { +// instance.Not.Nullable(); +// } +// } + +//} diff --git a/Tanshu.Accounts.SqlDAO/Fluent/QueryStore.cs b/Tanshu.Accounts.SqlDAO/Fluent/QueryStore.cs index 58c17c2..caa2cb2 100644 --- a/Tanshu.Accounts.SqlDAO/Fluent/QueryStore.cs +++ b/Tanshu.Accounts.SqlDAO/Fluent/QueryStore.cs @@ -29,9 +29,7 @@ namespace Tanshu.Accounts.SqlDAO public class NHSQLInterceptor : EmptyInterceptor, IInterceptor { - SqlString - IInterceptor.OnPrepareStatement - (SqlString sql) + SqlString IInterceptor.OnPrepareStatement(SqlString sql) { QueryStore.Query = sql.ToString(); return sql; diff --git a/Tanshu.Accounts.SqlDAO/Fluent/SetupStore.cs b/Tanshu.Accounts.SqlDAO/Fluent/SetupStore.cs index 2b90e44..08bc0d7 100644 --- a/Tanshu.Accounts.SqlDAO/Fluent/SetupStore.cs +++ b/Tanshu.Accounts.SqlDAO/Fluent/SetupStore.cs @@ -51,7 +51,8 @@ namespace Tanshu.Accounts.Repository c.Add(); c.Add(); c.Add(); - c.Add(); + //c.Add(); + //c.Add(); //c.Add(DefaultLazy.Never()); //c.Add(); }); diff --git a/Tanshu.Accounts.SqlDAO/Ninject/QueryStore.cs b/Tanshu.Accounts.SqlDAO/Ninject/QueryStore.cs new file mode 100644 index 0000000..a8010ad --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Ninject/QueryStore.cs @@ -0,0 +1,24 @@ +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using FluentNHibernate.Conventions; +//using FluentNHibernate.Conventions.Instances; +//using NHibernate; +//using NHibernate.SqlCommand; +//using System.Diagnostics; +//using Ninject.Modules; + +//namespace Tanshu.Accounts.Repository +//{ +// public class RepositoryModule : NinjectModule +// { +// public override void Load() +// { +// Bind().ToMethod(m => SessionRepository.GetSessionFactory()).InSingletonScope(); +// Bind().ToMethod (m=>m.Kernel. +// Bind().To(); +// Bind().ToSelf(); +// } +// } +//} diff --git a/Tanshu.Accounts.SqlDAO/Ninject/SessionRepository.cs b/Tanshu.Accounts.SqlDAO/Ninject/SessionRepository.cs new file mode 100644 index 0000000..af4b6a0 --- /dev/null +++ b/Tanshu.Accounts.SqlDAO/Ninject/SessionRepository.cs @@ -0,0 +1,48 @@ +//using FluentNHibernate.Automapping; +//using FluentNHibernate.Cfg; +//using FluentNHibernate.Cfg.Db; +//using NHibernate; +//using NHibernate.Cfg; +//using Tanshu.Accounts.Conventions; +//using Tanshu.Accounts.Entities; +//using Tanshu.Accounts.SqlDAO; + +//namespace Tanshu.Accounts.Repository +//{ +// public class SessionRepository +// { +// public static Configuration GetConfiguration() +// { +// var storeConfiguration = new StoreConfiguration(); +// var persistenceModel = AutoMap.AssemblyOf(storeConfiguration) +// .Conventions.Setup(c => +// { +// c.Add(); +// c.Add(); +// c.Add(); +// c.Add(); +// c.Add(); +// //c.Add(DefaultLazy.Never()); +// //c.Add(); +// }); + +// return Fluently.Configure() +// .Database(MsSqlConfiguration.MsSql2005.ConnectionString(p => p.FromConnectionStringWithKey("FluentCon"))) +// .Mappings(m => m.AutoMappings.Add(persistenceModel)) +// .BuildConfiguration() +// .SetInterceptor(new NHSQLInterceptor()); +// } +// public static ISessionFactory GetSessionFactory() +// { +// return GetConfiguration().BuildSessionFactory(); +// } +// public static ISession GetSession(ISessionFactory factory) +// { +// return factory.OpenSession(); +// } +// public static IStatelessSession GetStatelessSession(ISessionFactory factory) +// { +// return factory.OpenStatelessSession(); +// } +// } +//} \ No newline at end of file diff --git a/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.Repository.csproj b/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.Repository.csproj index 23302b2..682d24f 100644 --- a/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.Repository.csproj +++ b/Tanshu.Accounts.SqlDAO/Tanshu.Accounts.Repository.csproj @@ -40,9 +40,9 @@ False ..\Include\Fluent\Castle.Core.dll - + False - ..\Include\Fluent\Castle.DynamicProxy2.dll + ..\Include\Windsor\Castle.Windsor.dll False @@ -52,10 +52,6 @@ False ..\Include\Fluent\Iesi.Collections.dll - - False - ..\Include\Fluent\log4net.dll - False ..\Include\Fluent\NHibernate.dll @@ -64,6 +60,10 @@ False ..\Include\Fluent\NHibernate.ByteCode.Castle.dll + + False + ..\Include\Ninject\Ninject.dll + @@ -96,6 +96,8 @@ + + @@ -121,6 +123,7 @@ +