Commit b97df78

mokhan <mokhan@ce5e1baf-6525-42e4-a1b2-857ea38da20a>
2009-03-07 21:00:54
getting the app to run again
git-svn-id: https://svn.xp-dev.com/svn/mokhan-mo.money@56 ce5e1baf-6525-42e4-a1b2-857ea38da20a
1 parent c4f5c2e
trunk/build/project.build
@@ -37,7 +37,7 @@
 				<include name="${build.config.dir}\**\*.cs" />
 				<exclude name="${product.dir}\**\AssemblyInfo.cs" />
 				<exclude name="${product.dir}\**\*Specs.cs" />
-				<exclude name="${product.dir}\MoMoney\Testing\**\*.*" />
+				<exclude name="${product.dir}\MyMoney\Testing\**\*.*" />
 			</sources>			
 			<references>
 				<include name="${build.lib.dir}\app\**\*.dll" />
trunk/product/MyMoney/Infrastructure/Container/Windsor/configuration/ComponentExclusionSpecification.cs
@@ -1,4 +1,5 @@
 using System;
+using MoMoney.Infrastructure.Extensions;
 using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Infrastructure.Container.Windsor.configuration
@@ -7,12 +8,23 @@ namespace MoMoney.Infrastructure.Container.Windsor.configuration
     {
         public bool is_satisfied_by(Type type)
         {
-            return
-                new NoInterfaces()
-                    .or(new SubclassesForm())
-                    .or(new ImplementationOfDependencyRegistry())
-                    .is_satisfied_by(type);
+            var result = new NoInterfaces()
+                .or(new SubclassesForm())
+                .or(new ImplementationOfDependencyRegistry())
+                //.or(new IsASetOfObservations())
+                .is_satisfied_by(type);
+
+            this.log().debug("type: {0} is excluded: {1}", type, result);
+            return result;
             //return type.GetInterfaces().Length == 0 || type.IsSubclassOf(typeof (Form)) || type.IsAssignableFrom(typeof (IDependencyRegistry));
         }
     }
+
+    //public class IsASetOfObservations : IComponentExclusionSpecification
+    //{
+    //    public bool is_satisfied_by(Type item)
+    //    {
+    //        return typeof (IObservations).IsAssignableFrom(item);
+    //    }
+    //}
 }
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Container/Windsor/configuration/ComponentExclusionSpecificationSpecs.cs
@@ -0,0 +1,42 @@
+using System.Windows.Forms;
+using bdddoc.domain;
+using jpboodhoo.bdd.concerns;
+using jpboodhoo.bdd.contexts;
+using MoMoney.Testing.spechelpers.contexts;
+using MoMoney.Testing.spechelpers.core;
+
+namespace MoMoney.Infrastructure.Container.Windsor.configuration
+{
+    public abstract class behaves_like_component_exclusion_specification :
+        concerns_for<IComponentExclusionSpecification, ComponentExclusionSpecification>
+    {
+    }
+
+    public class when_checking_if_a_windows_form_should_be_excluded : behaves_like_component_exclusion_specification
+    {
+        it should_be_excluded = () => result.should_be_true();
+
+        because b = () => { result = sut.is_satisfied_by(typeof (Form)); };
+
+        static bool result;
+    }
+
+    public class when_checking_if_a_dependency_registry_should_be_excluded :
+        behaves_like_component_exclusion_specification
+    {
+        it should_be_excluded = () => result.should_be_true();
+
+        because b = () => { result = sut.is_satisfied_by(typeof (IDependencyRegistry)); };
+
+        static bool result;
+    }
+
+    //public class when_checking_if_a_set_of_observations_should_be_excluded : behaves_like_component_exclusion_specification
+    //{
+    //    it should_be_excluded = () => result.should_be_true();
+
+    //    because b = () => { result = sut.is_satisfied_by(typeof (when_checking_if_a_set_of_observations_should_be_excluded)); };
+
+    //    static bool result;
+    //}
+}
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Container/Windsor/configuration/ComponentRegistrationConfiguration.cs
@@ -15,7 +15,7 @@ namespace MoMoney.Infrastructure.Container.Windsor.configuration
             new RegisterComponentContract()
                 .then(new ConfigureComponentLifestyle())
                 .then(new ApplyLoggingInterceptor())
-                .then(new LogComponent())
+                //.then(new LogComponent())
                 .configure(registration);
         }
     }
trunk/product/MyMoney/Infrastructure/Container/Windsor/configuration/SubclassesForm.cs
@@ -7,7 +7,8 @@ namespace MoMoney.Infrastructure.Container.Windsor.configuration
     {
         public bool is_satisfied_by(Type item)
         {
-            return item.IsSubclassOf(typeof (Form));
+            return typeof(Form).IsAssignableFrom(item);
+            //return item.IsSubclassOf(typeof (Form));
         }
     }
 }
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Container/Windsor/windsor_dependency_registry.cs → trunk/product/MyMoney/Infrastructure/Container/Windsor/WindsorDependencyRegistry.cs
@@ -6,15 +6,15 @@ using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Infrastructure.Container.Windsor
 {
-    public class windsor_dependency_registry : IDependencyRegistry
+    public class WindsorDependencyRegistry : IDependencyRegistry
     {
         readonly IWindsorContainer underlying_container;
 
-        public windsor_dependency_registry() : this(new WindsorContainerFactory())
+        public WindsorDependencyRegistry() : this(new WindsorContainerFactory())
         {
         }
 
-        public windsor_dependency_registry(IWindsorContainerFactory factory)
+        public WindsorDependencyRegistry(IWindsorContainerFactory factory)
         {
             underlying_container = factory.create();
         }
trunk/product/MyMoney/Infrastructure/Container/Windsor/windsor_dependency_registry_specs.cs → trunk/product/MyMoney/Infrastructure/Container/Windsor/WindsorDependencyRegistrySpecs.cs
@@ -7,7 +7,7 @@ using MoMoney.Testing.spechelpers.core;
 
 namespace MoMoney.Infrastructure.Container.Windsor
 {
-    [Concern(typeof (windsor_dependency_registry))]
+    [Concern(typeof (WindsorDependencyRegistry))]
     public class when_registering_a_singleton_component_with_the_windsor_container : concerns_for<IDependencyRegistry>
     {
         it should_return_the_same_instance_each_time_its_resolved =
@@ -17,7 +17,7 @@ namespace MoMoney.Infrastructure.Container.Windsor
 
         public override IDependencyRegistry create_sut()
         {
-            return new windsor_dependency_registry();
+            return new WindsorDependencyRegistry();
         }
 
         because b = () => { result = sut.get_a<IBird>(); };
@@ -25,14 +25,14 @@ namespace MoMoney.Infrastructure.Container.Windsor
         static IBird result;
     }
 
-    [Concern(typeof (windsor_dependency_registry))]
+    [Concern(typeof (WindsorDependencyRegistry))]
     public class when_creating_the_windsor_resolver_ : concerns_for<IDependencyRegistry>
     {
         it should_leverage_the_factory_to_create_the_underlying_container = () => factory.was_told_to(f => f.create());
 
         public override IDependencyRegistry create_sut()
         {
-            return new windsor_dependency_registry(factory);
+            return new WindsorDependencyRegistry(factory);
         }
 
         context c = () =>
trunk/product/MyMoney/Infrastructure/interceptors/Lazy.cs
@@ -6,20 +6,20 @@ using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Infrastructure.interceptors
 {
-    public static class lazy
+    public static class Lazy
     {
-        public static T Load<T>() where T : class
+        public static T load<T>() where T : class
         {
             return create_proxy_for<T>(create_interceptor_for<T>());
         }
 
-        private static IInterceptor create_interceptor_for<T>() where T : class
+        static IInterceptor create_interceptor_for<T>() where T : class
         {
             Func<T> get_the_implementation = resolve.dependency_for<T>;
-            return new lazy_loaded_interceptor<T>(get_the_implementation.memorize());
+            return new LazyLoadedInterceptor<T>(get_the_implementation.memorize());
         }
 
-        private static T create_proxy_for<T>(IInterceptor interceptor)
+        static T create_proxy_for<T>(IInterceptor interceptor)
         {
             return new ProxyGenerator().CreateInterfaceProxyWithoutTarget<T>(interceptor);
         }
trunk/product/MyMoney/Infrastructure/interceptors/lazy_loaded_interceptor.cs → trunk/product/MyMoney/Infrastructure/interceptors/LazyLoadedInterceptor.cs
@@ -3,11 +3,11 @@ using Castle.Core.Interceptor;
 
 namespace MoMoney.Infrastructure.interceptors
 {
-    internal class lazy_loaded_interceptor<T> : IInterceptor
+    internal class LazyLoadedInterceptor<T> : IInterceptor
     {
         private readonly Func<T> get_the_implementation;
 
-        public lazy_loaded_interceptor(Func<T> get_the_implementation)
+        public LazyLoadedInterceptor(Func<T> get_the_implementation)
         {
             this.get_the_implementation = get_the_implementation;
         }
trunk/product/MyMoney/Infrastructure/interceptors/lazy_specs.cs → trunk/product/MyMoney/Infrastructure/interceptors/LazySpecs.cs
@@ -7,7 +7,7 @@ using mocking_extensions=MoMoney.Testing.spechelpers.core.mocking_extensions;
 
 namespace MoMoney.Infrastructure.interceptors
 {
-    [Concern(typeof (lazy))]
+    [Concern(typeof (Lazy))]
     public abstract class behaves_like_a_lazy_loaded_object : concerns_for
     {
         context c = () =>
@@ -33,7 +33,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var result = lazy.Load<ITargetObject>();
+                            var result = Lazy.load<ITargetObject>();
                             result.OneMethod();
                         };
 
@@ -56,7 +56,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<ITargetObject>();
+                            var proxy = Lazy.load<ITargetObject>();
                             result = proxy.FirstValueReturningMethod();
                         };
 
@@ -76,7 +76,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<ITargetObject>();
+                            var proxy = Lazy.load<ITargetObject>();
                             proxy.SecondMethod();
                             proxy.FirstValueReturningMethod();
                         };
@@ -100,7 +100,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<ITargetObject>();
+                            var proxy = Lazy.load<ITargetObject>();
                             result = proxy.ValueReturningMethodWithAnArgument(88);
                         };
 
@@ -122,7 +122,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<ITargetObject>();
+                            var proxy = Lazy.load<ITargetObject>();
                             result = proxy.GetterAndSetterProperty;
                         };
 
@@ -144,7 +144,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<ITargetObject>();
+                            var proxy = Lazy.load<ITargetObject>();
                             proxy.GetterAndSetterProperty = "khan";
                         };
 
@@ -168,7 +168,7 @@ namespace MoMoney.Infrastructure.interceptors
 
         because b = () =>
                         {
-                            var proxy = lazy.Load<IGenericInterface<string>>();
+                            var proxy = Lazy.load<IGenericInterface<string>>();
                             result = proxy.ValueReturningMethodWithAnArgument("blah");
                         };
 
trunk/product/MyMoney/Infrastructure/interceptors/logging_interceptor.cs → trunk/product/MyMoney/Infrastructure/interceptors/LoggingInterceptor.cs
@@ -5,9 +5,10 @@ using MoMoney.Infrastructure.Extensions;
 namespace MoMoney.Infrastructure.interceptors
 {
     public interface ILoggingInterceptor : IInterceptor
-    {}
+    {
+    }
 
-    public class logging_interceptor : ILoggingInterceptor
+    public class LoggingInterceptor : ILoggingInterceptor
     {
         public void Intercept(IInvocation invocation)
         {
trunk/product/MyMoney/Infrastructure/interceptors/raise_event_interceptor.cs → trunk/product/MyMoney/Infrastructure/interceptors/RaiseEventInterceptor.cs
@@ -4,13 +4,14 @@ using MoMoney.Infrastructure.eventing;
 namespace MoMoney.Infrastructure.interceptors
 {
     public interface IRaiseEventInterceptor<Event> : IInterceptor where Event : IEvent, new()
-    {}
+    {
+    }
 
-    public class raise_event_interceptor<Event> : IRaiseEventInterceptor<Event> where Event : IEvent, new()
+    public class RaiseEventInterceptor<Event> : IRaiseEventInterceptor<Event> where Event : IEvent, new()
     {
-        private readonly IEventAggregator broker;
+        readonly IEventAggregator broker;
 
-        public raise_event_interceptor(IEventAggregator broker)
+        public RaiseEventInterceptor(IEventAggregator broker)
         {
             this.broker = broker;
         }
trunk/product/MyMoney/Infrastructure/interceptors/SynchronizedInterceptor.cs
@@ -0,0 +1,25 @@
+using System;
+using System.ComponentModel;
+using Castle.Core.Interceptor;
+using MoMoney.Utility.Extensions;
+
+namespace MoMoney.Infrastructure.interceptors
+{
+    public interface ISynchronizedInterceptor : IInterceptor
+    {
+    }
+
+    public class SynchronizedInterceptor : ISynchronizedInterceptor
+    {
+        public void Intercept(IInvocation invocation)
+        {
+            var target = invocation.InvocationTarget.downcast_to<ISynchronizeInvoke>();
+            target.BeginInvoke(do_it(invocation.Proceed), new object[] {});
+        }
+
+        Delegate do_it(Action action)
+        {
+            return action;
+        }
+    }
+}
\ No newline at end of file
trunk/product/MyMoney/Presentation/Views/billing/add_bill_payment.cs
@@ -1,5 +1,7 @@
 using System.Collections.Generic;
+using Castle.Core;
 using MoMoney.Domain.accounting.billing;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Presenters.billing;
 using MoMoney.Presentation.Presenters.billing.dto;
 using MoMoney.Presentation.Views.core;
@@ -7,6 +9,7 @@ using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Presentation.Views.billing
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class add_bill_payment : ApplicationDockedWindow, IAddBillPaymentView
     {
         public add_bill_payment()
trunk/product/MyMoney/Presentation/Views/billing/view_all_bills.cs
@@ -1,10 +1,13 @@
 using System.Collections.Generic;
 using System.Linq;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Presenters.billing.dto;
 using MoMoney.Presentation.Views.core;
 
 namespace MoMoney.Presentation.Views.billing
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class view_all_bills : ApplicationDockedWindow, IViewAllBills
     {
         public view_all_bills()
trunk/product/MyMoney/Presentation/Views/dialogs/SaveChangesView.cs
@@ -1,6 +1,8 @@
 using System;
 using System.Windows.Forms;
+using Castle.Core;
 using JetBrains.Annotations;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Model.Menu.File.Commands;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
@@ -8,6 +10,7 @@ using MoMoney.Presentation.Views.core;
 namespace MoMoney.Presentation.Views.dialogs
 {
     [UsedImplicitly]
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class SaveChangesView : ApplicationWindow, ISaveChangesView
     {
         bool can_be_closed;
trunk/product/MyMoney/Presentation/Views/income/AddNewIncomeView.cs
@@ -1,7 +1,9 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Windows.Forms;
+using Castle.Core;
 using MoMoney.Domain.accounting.billing;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Model.interaction;
 using MoMoney.Presentation.Presenters.income;
 using MoMoney.Presentation.Presenters.income.dto;
@@ -10,6 +12,7 @@ using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Presentation.Views.income
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class AddNewIncomeView : ApplicationDockedWindow, IAddNewIncomeView
     {
         public AddNewIncomeView()
trunk/product/MyMoney/Presentation/Views/income/ViewAllIncome.cs
@@ -1,10 +1,13 @@
 using System.Collections.Generic;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Presenters.income.dto;
 using MoMoney.Presentation.Views.core;
 using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Presentation.Views.income
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class ViewAllIncome : ApplicationDockedWindow, IViewIncomeHistory
     {
         public ViewAllIncome()
trunk/product/MyMoney/Presentation/Views/Menu/Help/AboutTheApplicationView.cs
@@ -1,11 +1,14 @@
 using System.Linq;
 using System.Reflection;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
 using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Presentation.Views.Menu.Help
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class AboutTheApplicationView : ApplicationWindow, IAboutApplicationView
     {
         public AboutTheApplicationView()
trunk/product/MyMoney/Presentation/Views/Navigation/IMainMenuView.cs
@@ -0,0 +1,11 @@
+using MoMoney.Presentation.Views.core;
+using XPExplorerBar;
+
+namespace MoMoney.Presentation.Views.Navigation
+{
+    public interface IMainMenuView : IDockedContentView
+    {
+        void display();
+        void add(Expando expando);
+    }
+}
\ No newline at end of file
trunk/product/MyMoney/Presentation/Views/Navigation/MainMenuView.cs
@@ -1,3 +1,5 @@
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
 using MoMoney.Presentation.Views.Shell;
@@ -6,12 +8,7 @@ using XPExplorerBar;
 
 namespace MoMoney.Presentation.Views.Navigation
 {
-    public interface IMainMenuView : IDockedContentView
-    {
-        void display();
-        void add(Expando expando);
-    }
-
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class MainMenuView : ApplicationDockedWindow, IMainMenuView
     {
         readonly IShell shell;
trunk/product/MyMoney/Presentation/Views/Navigation/NavigationView.cs
@@ -1,4 +1,6 @@
 using System.Windows.Forms;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Model.Navigation;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
@@ -8,6 +10,7 @@ using WeifenLuo.WinFormsUI.Docking;
 
 namespace MoMoney.Presentation.Views.Navigation
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class NavigationView : ApplicationDockedWindow, INavigationView
     {
         readonly IShell shell;
trunk/product/MyMoney/Presentation/Views/Shell/ApplicationShell.cs
@@ -1,11 +1,14 @@
 using System.ComponentModel.Composition;
 using System.Windows.Forms;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
 
 namespace MoMoney.Presentation.Views.Shell
 {
     [Export(typeof (IShell))]
+    //[Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class ApplicationShell : ApplicationWindow, IShell
     {
         public ApplicationShell()
trunk/product/MyMoney/Presentation/Views/Shell/IStatusBarView.cs
@@ -0,0 +1,9 @@
+using MoMoney.Presentation.Resources;
+
+namespace MoMoney.Presentation.Views.Shell
+{
+    public interface IStatusBarView
+    {
+        void display(HybridIcon icon_to_display, string text_to_display);
+    }
+}
\ No newline at end of file
trunk/product/MyMoney/Presentation/Views/Shell/NotificationIconView.cs
@@ -1,5 +1,6 @@
 using System.Windows.Forms;
 using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Model.Menu;
 using MoMoney.Presentation.Model.Menu.File;
 using MoMoney.Presentation.Model.Menu.Help;
@@ -9,6 +10,7 @@ using MoMoney.Presentation.Resources;
 namespace MoMoney.Presentation.Views.Shell
 {
     [Singleton]
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public class NotificationIconView : INotificationIconView
     {
         private NotifyIcon ux_notification_icon;
trunk/product/MyMoney/Presentation/Views/Shell/StatusBarView.cs
@@ -1,12 +1,10 @@
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Resources;
 
 namespace MoMoney.Presentation.Views.Shell
 {
-    public interface IStatusBarView
-    {
-        void display(HybridIcon icon_to_display, string text_to_display);
-    }
-
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public class StatusBarView : IStatusBarView
     {
         readonly IShell shell;
trunk/product/MyMoney/Presentation/Views/Startup/SplashScreenView.cs
@@ -1,9 +1,12 @@
 using System.Windows.Forms;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Resources;
 using MoMoney.Presentation.Views.core;
 
 namespace MoMoney.Presentation.Views.Startup
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class SplashScreenView : ApplicationWindow, ISplashScreenView
     {
         public SplashScreenView()
trunk/product/MyMoney/Presentation/Views/updates/CheckForUpdatesView.cs
@@ -1,5 +1,7 @@
 using System.Reflection;
 using System.Windows.Forms;
+using Castle.Core;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Model.updates;
 using MoMoney.Presentation.Presenters.updates;
 using MoMoney.Presentation.Resources;
@@ -7,6 +9,7 @@ using MoMoney.Presentation.Views.core;
 
 namespace MoMoney.Presentation.Views.updates
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class CheckForUpdatesView : ApplicationWindow, ICheckForUpdatesView
     {
         ICheckForUpdatesPresenter the_presenter;
trunk/product/MyMoney/Presentation/Views/AddCompanyView.cs
@@ -1,7 +1,9 @@
 using System.Collections.Generic;
 using System.Text;
 using System.Windows.Forms;
+using Castle.Core;
 using MoMoney.Domain.accounting.billing;
+using MoMoney.Infrastructure.interceptors;
 using MoMoney.Presentation.Databindings;
 using MoMoney.Presentation.Model.interaction;
 using MoMoney.Presentation.Presenters;
@@ -11,6 +13,7 @@ using MoMoney.Utility.Extensions;
 
 namespace MoMoney.Presentation.Views
 {
+    [Interceptor(typeof (ISynchronizedInterceptor))]
     public partial class AddCompanyView : ApplicationDockedWindow, IAddCompanyView
     {
         readonly register_new_company dto;
trunk/product/MyMoney/Testing/MetaData/run_in_real_container.cs
@@ -22,7 +22,7 @@ namespace MoMoney.Testing.MetaData
         public override object Execute(object o, IList args)
         {
             try {
-                resolve.initialize_with(new windsor_dependency_registry());
+                resolve.initialize_with(new WindsorDependencyRegistry());
                 return Invoker.Execute(o, args);
             }
             finally {
trunk/product/MyMoney/Utility/Extensions/type_extensions.cs → trunk/product/MyMoney/Utility/Extensions/TypeExtensions.cs
@@ -2,9 +2,9 @@ using System;
 
 namespace MoMoney.Utility.Extensions
 {
-    public static class type_extensions
+    public static class TypeExtensions
     {
-        public static Type get_the_last_interface(this Type type)
+        public static Type last_interface(this Type type)
         {
             return type.GetInterfaces()[type.GetInterfaces().Length - 1];
         }
trunk/product/MyMoney/Utility/Extensions/TypeExtensionsSpecs.cs
@@ -0,0 +1,27 @@
+using jpboodhoo.bdd.contexts;
+using MoMoney.Testing.spechelpers.contexts;
+using MoMoney.Testing.spechelpers.core;
+
+namespace MoMoney.Utility.Extensions
+{
+    public class when_getting_the_last_interface_for_a_type : concerns_for
+    {
+        it should_return_the_correct_one = () => typeof (TestType).last_interface().should_be_equal_to(typeof (ITestType));
+    }
+
+    public interface IBase
+    {
+    }
+
+    public class BaseType : IBase
+    {
+    }
+
+    public interface ITestType
+    {
+    }
+
+    public class TestType : BaseType, ITestType
+    {
+    }
+}
\ No newline at end of file
trunk/product/MyMoney/windows.ui/wire_up_the_container.cs
@@ -12,7 +12,7 @@ namespace MoMoney.windows.ui
         {
             using (new display_the_splash_screen().on_a_background_thread())
             {
-                var registry = new windsor_dependency_registry();
+                var registry = new WindsorDependencyRegistry();
                 new wire_up_the_core_services_into_the(registry)
                     .then(new wire_up_the_mappers_in_to_the(registry))
                     .then(new wire_up_the_views_in_to_the(registry))
trunk/product/MyMoney/windows.ui/wire_up_the_core_services_into_the.cs
@@ -6,9 +6,9 @@ namespace MoMoney.windows.ui
 {
     internal class wire_up_the_core_services_into_the : ICommand
     {
-        private readonly windsor_dependency_registry registry;
+        private readonly WindsorDependencyRegistry registry;
 
-        public wire_up_the_core_services_into_the(windsor_dependency_registry registry)
+        public wire_up_the_core_services_into_the(WindsorDependencyRegistry registry)
         {
             this.registry = registry;
         }
trunk/product/MyMoney/windows.ui/wire_up_the_mappers_in_to_the.cs
@@ -5,9 +5,9 @@ namespace MoMoney.windows.ui
 {
     internal class wire_up_the_mappers_in_to_the : ICommand
     {
-        private readonly windsor_dependency_registry registry;
+        private readonly WindsorDependencyRegistry registry;
 
-        public wire_up_the_mappers_in_to_the(windsor_dependency_registry registry)
+        public wire_up_the_mappers_in_to_the(WindsorDependencyRegistry registry)
         {
             this.registry = registry;
         }
trunk/product/MyMoney/windows.ui/wire_up_the_reports_in_to_the.cs
@@ -7,9 +7,9 @@ namespace MoMoney.windows.ui
 {
     internal class wire_up_the_reports_in_to_the : ICommand
     {
-        private readonly windsor_dependency_registry registry;
+        private readonly WindsorDependencyRegistry registry;
 
-        public wire_up_the_reports_in_to_the(windsor_dependency_registry registry)
+        public wire_up_the_reports_in_to_the(WindsorDependencyRegistry registry)
         {
             this.registry = registry;
         }
trunk/product/MyMoney/windows.ui/wire_up_the_views_in_to_the.cs
@@ -15,9 +15,9 @@ namespace MoMoney.windows.ui
 {
     internal class wire_up_the_views_in_to_the : ICommand
     {
-        readonly windsor_dependency_registry register;
+        readonly WindsorDependencyRegistry register;
 
-        public wire_up_the_views_in_to_the(windsor_dependency_registry registry)
+        public wire_up_the_views_in_to_the(WindsorDependencyRegistry registry)
         {
             register = registry;
         }
trunk/product/MyMoney/MyMoney.csproj
@@ -196,6 +196,7 @@
     <Compile Include="Infrastructure\cloning\Serializer.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\ApplyLoggingInterceptor.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\ComponentExclusionSpecification.cs" />
+    <Compile Include="Infrastructure\Container\Windsor\configuration\ComponentExclusionSpecificationSpecs.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\ConfigureComponentLifestyle.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\IComponentExclusionSpecification.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\ImplementationOfDependencyRegistry.cs" />
@@ -210,10 +211,11 @@
     <Compile Include="Infrastructure\eventing\IEventSubscriber.cs" />
     <Compile Include="Infrastructure\Extensions\threading_extensions.cs" />
     <Compile Include="Infrastructure\interceptors\Lazy.cs" />
-    <Compile Include="Infrastructure\interceptors\lazy_specs.cs" />
-    <Compile Include="Infrastructure\interceptors\lazy_loaded_interceptor.cs" />
-    <Compile Include="Infrastructure\interceptors\logging_interceptor.cs" />
-    <Compile Include="Infrastructure\interceptors\raise_event_interceptor.cs" />
+    <Compile Include="Infrastructure\interceptors\LazySpecs.cs" />
+    <Compile Include="Infrastructure\interceptors\LazyLoadedInterceptor.cs" />
+    <Compile Include="Infrastructure\interceptors\LoggingInterceptor.cs" />
+    <Compile Include="Infrastructure\interceptors\RaiseEventInterceptor.cs" />
+    <Compile Include="Infrastructure\interceptors\SynchronizedInterceptor.cs" />
     <Compile Include="Infrastructure\interceptors\UnitOfWorkInterceptor.cs" />
     <Compile Include="Infrastructure\interceptors\UnitOfWorkInterceptorSpecs.cs" />
     <Compile Include="Infrastructure\Logging\ILoggable.cs" />
@@ -422,6 +424,7 @@
     </Compile>
     <Compile Include="Presentation\Views\listbox_extensions.cs" />
     <Compile Include="Presentation\Views\Menu\ApplicationMenuHost.cs" />
+    <Compile Include="Presentation\Views\Navigation\IMainMenuView.cs" />
     <Compile Include="Presentation\Views\Navigation\MainMenuView.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -451,6 +454,7 @@
     <Compile Include="Presentation\Views\Shell\IGettingStartedView.cs" />
     <Compile Include="Presentation\Views\Shell\INotificationIconView.cs" />
     <Compile Include="Presentation\Views\Shell\IShell.cs" />
+    <Compile Include="Presentation\Views\Shell\IStatusBarView.cs" />
     <Compile Include="Presentation\Views\Shell\IUnhandledErrorView.cs" />
     <Compile Include="Presentation\Views\Shell\NotificationIconView.cs" />
     <Compile Include="Presentation\Views\Shell\StatusBarView.cs" />
@@ -575,7 +579,8 @@
     </Compile>
     <Compile Include="Utility\Core\chained_command.cs" />
     <Compile Include="Utility\Extensions\command_extensions.cs" />
-    <Compile Include="Utility\Extensions\type_extensions.cs" />
+    <Compile Include="Utility\Extensions\TypeExtensions.cs" />
+    <Compile Include="Utility\Extensions\TypeExtensionsSpecs.cs" />
     <Compile Include="Utility\Extensions\visitor_extensions.cs" />
     <Compile Include="windows.ui\check_for_updates.cs" />
     <Compile Include="windows.ui\hookup.cs" />
@@ -584,8 +589,8 @@
     <Compile Include="Infrastructure\Container\dependency_resolution_exception.cs" />
     <Compile Include="Infrastructure\Container\Resolve.cs" />
     <Compile Include="Infrastructure\Container\ResolveSpecs.cs" />
-    <Compile Include="Infrastructure\Container\Windsor\windsor_dependency_registry.cs" />
-    <Compile Include="Infrastructure\Container\Windsor\windsor_dependency_registry_specs.cs" />
+    <Compile Include="Infrastructure\Container\Windsor\WindsorDependencyRegistry.cs" />
+    <Compile Include="Infrastructure\Container\Windsor\WindsorDependencyRegistrySpecs.cs" />
     <Compile Include="Utility\Core\ICommand.cs" />
     <Compile Include="Utility\Core\IMapper.cs" />
     <Compile Include="Utility\Extensions\string_extensions.cs" />