Commit bfa369b
Changed files (102)
build
product
client
boot
boot
container
registration
proxy_configuration
database
domain
presentation
Model
Menu
Projects
Reporting
Presenters
presentation.windows
commands
views
presentation.winforms
service
service.contracts
service.infrastructure
commons
tests
unit
client
boot
container
registration
presentation
presenters
winforms
service
application
build/project.build
@@ -11,7 +11,8 @@
<property name="build.config.dir" value="${build.dir}\config" />
<property name="build.compile.dir" value="${build.dir}\compile" />
- <property name="app.output" value="${project.name}.exe" />
+ <!--<property name="app.output" value="${project.name}.exe" />-->
+ <property name="app.output" value="${project.name}.wpf.exe" />
<include buildfile="project.test.build" />
<include buildfile="project.deploy.build" />
@@ -29,7 +30,7 @@
<target name="app.compile" depends="init">
<exec program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"
workingdir="${base.dir}"
- commandline="solution.sln /p:Configuration=Release;OutDir=${build.compile.dir}\ /t:Rebuild /nologo"
+ commandline="solution.sln /p:Configuration=Release;OutDir=${build.compile.dir}\ /t:Rebuild /nologo /m"
/>
</target>
product/client/boot/boot/container/registration/proxy_configuration/UnitOfWorkInterceptor.cs
@@ -23,7 +23,7 @@ namespace MoMoney.boot.container.registration.proxy_configuration
using (var unit_of_work = factory.create())
{
invocation.Proceed();
- broker.publish<Callback<IUnitOfWork>>(x => x.run(unit_of_work));
+ broker.publish<Callback<IUnitOfWork>>(x => x.run_against(unit_of_work));
unit_of_work.commit();
}
}
product/client/boot/boot/container/registration/AutoWireComponentsInToThe.cs
@@ -21,7 +21,7 @@ namespace MoMoney.boot.container.registration
this.exclusion_policy = exclusion_policy;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
item
.all_types(exclusion_policy.not())
product/client/boot/boot/container/registration/IContainerStartup.cs
@@ -1,7 +1,7 @@
using gorilla.commons.infrastructure.thirdparty;
-using gorilla.commons.utility;
-
+using gorilla.commons.utility;
+
namespace MoMoney.boot.container.registration
{
- public interface IContainerStartup : ParameterizedCommand<DependencyRegistration> { }
+ public interface IContainerStartup : ArgCommand<DependencyRegistration> { }
}
\ No newline at end of file
product/client/boot/boot/container/registration/IStartupCommand.cs
@@ -3,5 +3,5 @@ using gorilla.commons.utility;
namespace MoMoney.boot.container.registration
{
- public interface IStartupCommand : ParameterizedCommand<Assembly> {}
+ public interface IStartupCommand : ArgCommand<Assembly> {}
}
\ No newline at end of file
product/client/boot/boot/container/registration/WireUpTheDataAccessComponentsIntoThe.cs
@@ -21,7 +21,7 @@ namespace MoMoney.boot.container.registration
register = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
register.singleton<IDatabase, ObjectDatabase>();
register.singleton(() => Resolve.the<IDatabase>().downcast_to<IDatabaseConfiguration>());
product/client/boot/boot/container/registration/WireUpTheDomainServicesInToThe.cs
@@ -13,7 +13,7 @@ namespace MoMoney.boot.container.registration
this.registry = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
registry.transient<ICompanyFactory, CompanyFactory>();
}
product/client/boot/boot/container/registration/WireUpTheEssentialServicesIntoThe.cs
@@ -14,7 +14,7 @@ namespace MoMoney.boot.container.registration
this.registration = registration;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
registration.singleton(() => registration);
registration.singleton(() => registration.build());
product/client/boot/boot/container/registration/WireUpTheInfrastructureInToThe.cs
@@ -24,7 +24,7 @@ namespace MoMoney.boot.container.registration
this.registry = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
registry.singleton<EventAggregator, SynchronizedEventAggregator>();
registry.singleton<ITimer, IntervalTimer>();
product/client/boot/boot/container/registration/WireUpTheMappersInToThe.cs
@@ -16,7 +16,7 @@ namespace MoMoney.boot.container.registration
this.registry = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
registry.transient(typeof (Mapper<,>), typeof (AnonymousMapper<,>));
//registry.singleton(()=> Mappers.bill_mapper);
product/client/boot/boot/container/registration/WireUpThePresentationModules.cs
@@ -26,7 +26,7 @@ namespace MoMoney.boot.container.registration
this.registry = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
Func<IApplicationController> target = () => new ApplicationController(Lazy.load<Shell>(), Lazy.load<PresenterFactory>(), Lazy.load<EventAggregator>(), Lazy.load<ViewFactory>());
registry.proxy<IApplicationController, SynchronizedConfiguration<IApplicationController>>(target.memorize());
product/client/boot/boot/container/registration/WireUpTheReportsInToThe.cs
@@ -19,7 +19,7 @@ namespace MoMoney.boot.container.registration
this.registry = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
registry.singleton<IReportViewer, ReportViewer>();
registry.transient(typeof (Presenter), typeof (ReportPresenter<IViewAllBillsReport, IEnumerable<BillInformationDTO>, IGetAllBillsQuery>));
product/client/boot/boot/container/registration/WireUpTheServicesInToThe.cs
@@ -51,7 +51,7 @@ namespace MoMoney.boot.container.registration
Lazy.load<IIncomeRepository>(), Lazy.load<ICompanyRepository>()));
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
wire_up_queries();
wire_up_the_commands();
product/client/boot/boot/container/registration/WireUpTheViewsInToThe.cs
@@ -17,7 +17,7 @@ namespace MoMoney.boot.container.registration
register = registry;
}
- public void run(Assembly item)
+ public void run_against(Assembly item)
{
var shell = new ApplicationShell();
register.singleton<Shell>(() => shell);
product/client/boot/boot/container/WireUpTheContainer.cs
@@ -29,7 +29,7 @@ namespace MoMoney.boot.container
.then(new WireUpThePresentationModules(registry))
.then(new WireUpTheViewsInToThe(registry))
.then(new WireUpTheReportsInToThe(registry))
- .run(new ApplicationAssembly(
+ .run_against(new ApplicationAssembly(
System.Reflection.Assembly.GetExecutingAssembly(),
typeof (DatabaseAssembly).Assembly,
typeof (PresentationAssembly).Assembly,
product/client/database/transactions/DatabaseCommand.cs
@@ -1,8 +1,6 @@
-using gorilla.commons.utility;
-
-namespace momoney.database.transactions
-{
- public interface DatabaseCommand : ParameterizedCommand<DatabaseConnection>
- {
- }
+using gorilla.commons.utility;
+
+namespace momoney.database.transactions
+{
+ public interface DatabaseCommand : ArgCommand<DatabaseConnection> {}
}
\ No newline at end of file
product/client/database/transactions/DeleteFromDatabase.cs
@@ -9,7 +9,7 @@ namespace momoney.database.transactions
this.entity = entity;
}
- public void run(DatabaseConnection connection)
+ public void run_against(DatabaseConnection connection)
{
connection.delete(entity);
}
product/client/database/transactions/SaveOrUpdateFromDatabase.cs
@@ -12,7 +12,7 @@ namespace momoney.database.transactions
this.entity = entity;
}
- public void run(DatabaseConnection connection)
+ public void run_against(DatabaseConnection connection)
{
connection.store(entity);
}
product/client/database/database.csproj
@@ -39,10 +39,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\build\lib\app\gorilla\gorilla.commons.infrastructure.dll</HintPath>
</Reference>
- <Reference Include="gorilla.commons.utility, Version=2009.5.5.1633, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
product/client/database/ObjectDatabase.cs
@@ -32,7 +32,7 @@ namespace momoney.database
{
using (var connection = factory.open_connection_to(path_to_database()))
{
- command.run(connection);
+ command.run_against(connection);
connection.commit();
}
}
product/client/domain/Domain.csproj
@@ -31,10 +31,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="gorilla.commons.utility, Version=2009.5.5.1633, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
product/client/presentation/Model/Menu/File/CloseProjectCommand.cs
@@ -22,7 +22,7 @@ namespace momoney.presentation.model.menu.file
public void run()
{
- command.run(this);
+ command.run_against(this);
}
public void saved()
product/client/presentation/Model/Menu/File/ExitCommand.cs
@@ -25,7 +25,7 @@ namespace momoney.presentation.model.menu.file
public void run()
{
- command.run(this);
+ command.run_against(this);
}
public void saved()
product/client/presentation/Model/Menu/File/ISaveChangesCommand.cs
@@ -1,6 +1,6 @@
-using gorilla.commons.utility;
-
+using gorilla.commons.utility;
+
namespace MoMoney.Presentation.Model.Menu.File
{
- public interface ISaveChangesCommand : ParameterizedCommand<ISaveChangesCallback> {}
+ public interface ISaveChangesCommand : ArgCommand<ISaveChangesCallback> {}
}
\ No newline at end of file
product/client/presentation/Model/Menu/File/NewCommand.cs
@@ -21,7 +21,7 @@ namespace momoney.presentation.model.menu.file
public void run()
{
- save_changes_command.run(this);
+ save_changes_command.run_against(this);
}
public void saved()
product/client/presentation/Model/Menu/File/OpenCommand.cs
@@ -24,7 +24,7 @@ namespace momoney.presentation.model.menu.file
public void run()
{
- save_changes_command.run(this);
+ save_changes_command.run_against(this);
}
public void saved()
product/client/presentation/Model/Menu/File/SaveChangesPresenter.cs
@@ -28,7 +28,7 @@ namespace MoMoney.Presentation.Model.Menu.File
throw new NotImplementedException();
}
- public virtual void run(ISaveChangesCallback item)
+ public virtual void run_against(ISaveChangesCallback item)
{
callback = item;
if (current_project.has_unsaved_changes())
product/client/presentation/Model/Projects/ProjectController.cs
@@ -87,7 +87,7 @@ namespace MoMoney.Presentation.Model.Projects
if (!has_been_saved_at_least_once()) throw new FileNotSpecifiedException();
}
- public void run(IUnitOfWork item)
+ public void run_against(IUnitOfWork item)
{
unsaved_changes = item.is_dirty();
if (unsaved_changes)
product/client/presentation/Model/Reporting/IBindReportTo.cs
@@ -2,5 +2,5 @@ using gorilla.commons.utility;
namespace MoMoney.Presentation.Model.reporting
{
- public interface IBindReportTo<T, TQuery> : IReport, ParameterizedCommand<T> where TQuery : Query<T> {}
+ public interface IBindReportTo<T, TQuery> : IReport, ArgCommand<T> where TQuery : Query<T> {}
}
\ No newline at end of file
product/client/presentation/Presenters/CheckForUpdatesPresenter.cs
@@ -46,7 +46,7 @@ namespace momoney.presentation.presenters
close();
}
- public void run(Percent completed)
+ public void run_against(Percent completed)
{
if (completed.Equals(new Percent(100)))
{
product/client/presentation/Presenters/CommandPump.cs
@@ -1,6 +1,6 @@
using Gorilla.Commons.Infrastructure.Container;
using Gorilla.Commons.Infrastructure.Logging;
-using gorilla.commons.utility;
+using gorilla.commons.utility;
using MoMoney.Service.Infrastructure.Threading;
namespace MoMoney.Presentation.Presenters
@@ -8,7 +8,7 @@ namespace MoMoney.Presentation.Presenters
public interface ICommandPump
{
ICommandPump run<Command>() where Command : gorilla.commons.utility.Command;
- ICommandPump run<Command, T>(T input) where Command : ParameterizedCommand<T>;
+ ICommandPump run<Command, T>(T input) where Command : ArgCommand<T>;
ICommandPump run<Output, Query>(Callback<Output> item) where Query : Query<Output>;
}
@@ -36,12 +36,12 @@ namespace MoMoney.Presentation.Presenters
return this;
}
- public ICommandPump run<Command, T>(T input) where Command : ParameterizedCommand<T>
+ public ICommandPump run<Command, T>(T input) where Command : ArgCommand<T>
{
var cached = input;
var command = registry.get_a<Command>();
this.log().debug("found: {0}", command);
- processor.add(() => command.run(cached));
+ processor.add(() => command.run_against(cached));
return this;
}
product/client/presentation/Presenters/LogFilePresenter.cs
@@ -16,7 +16,7 @@ namespace momoney.presentation.presenters
protected override void present()
{
view.display(tasks.get_the_path_to_the_log_file());
- view.run(tasks.get_the_contents_of_the_log_file());
+ view.run_against(tasks.get_the_contents_of_the_log_file());
}
}
}
\ No newline at end of file
product/client/presentation/Presenters/ProcessQueryCommand.cs
@@ -1,10 +1,10 @@
using System;
-using gorilla.commons.utility;
+using gorilla.commons.utility;
using momoney.service.infrastructure.threading;
namespace MoMoney.Presentation.Presenters
{
- public interface IProcessQueryCommand<T> : ParameterizedCommand<Callback<T>> {}
+ public interface IProcessQueryCommand<T> : ArgCommand<Callback<T>> {}
public class ProcessQueryCommand<T> : IProcessQueryCommand<T>
{
@@ -17,10 +17,10 @@ namespace MoMoney.Presentation.Presenters
this.factory = factory;
}
- public void run(Callback<T> callback)
+ public void run_against(Callback<T> callback)
{
var dto = query.fetch();
- factory.create().run(new AnonymousCommand((Action) (() => callback.run(dto))));
+ factory.create().run_against(new AnonymousCommand((Action) (() => callback.run_against(dto))));
}
}
}
\ No newline at end of file
product/client/presentation/Presenters/ReportPresenter.cs
@@ -20,7 +20,7 @@ namespace MoMoney.Presentation.Presenters
protected override void present()
{
var report = registry.get_a<Report>();
- report.run(registry.get_a<Query>().fetch());
+ report.run_against(registry.get_a<Query>().fetch());
view.display(report);
}
}
product/client/presentation/Presenters/RunQueryCommand.cs
@@ -16,7 +16,7 @@ namespace momoney.presentation.presenters
public void run()
{
- command.run(callback);
+ command.run_against(callback);
}
}
}
\ No newline at end of file
product/client/presentation/Presentation.csproj
@@ -47,14 +47,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\build\lib\app\component.factory\ComponentFactory.Krypton.Toolkit.dll</HintPath>
</Reference>
- <Reference Include="gorilla.commons.infrastructure, Version=2009.5.5.1633, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\build\lib\app\gorilla\gorilla.commons.infrastructure.dll</HintPath>
- </Reference>
- <Reference Include="gorilla.commons.utility, Version=2009.5.5.1633, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
product/client/presentation.windows/commands/dto/FamilyMemberToAdd.cs
@@ -0,0 +1,13 @@
+using System;
+
+namespace presentation.windows.commands.dto
+{
+ public class FamilyMemberToAdd
+ {
+ public string first_name { get; set; }
+
+ public string last_name { get; set; }
+
+ public DateTime date_of_birth { get; set; }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/commands/AddMemberToFamily.cs
@@ -0,0 +1,14 @@
+using Gorilla.Commons.Infrastructure.Logging;
+using gorilla.commons.utility;
+using presentation.windows.commands.dto;
+
+namespace presentation.windows.commands
+{
+ public class AddMemberToFamily : ArgCommand<FamilyMemberToAdd>
+ {
+ public void run_against(FamilyMemberToAdd item)
+ {
+ this.log().debug("adding family member");
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/commands/CommandBuilder.cs
@@ -0,0 +1,11 @@
+using gorilla.commons.utility;
+
+namespace presentation.windows.commands
+{
+ public interface CommandBuilder
+ {
+ ParameterizedCommandBuilder<TData> prepare<TData>(TData data);
+ Command build<TCommand>(string message) where TCommand : Command;
+ }
+
+}
\ No newline at end of file
product/client/presentation.windows/commands/ContainerAwareParameterizedCommandBuilder.cs
@@ -0,0 +1,38 @@
+using System;
+using Gorilla.Commons.Infrastructure.Container;
+using gorilla.commons.utility;
+
+namespace presentation.windows.commands
+{
+ public class ContainerAwareParameterizedCommandBuilder<T> : ParameterizedCommandBuilder<T>, Command
+ {
+ readonly T data;
+ Action action;
+ string message;
+ public ContainerAwareParameterizedCommandBuilder(T data)
+ {
+ this.data = data;
+ }
+
+ public Command build<TCommand>(string message) where TCommand : ArgCommand<T>
+ {
+ this.message = message;
+ action = () =>
+ {
+ Resolve.the<TCommand>().run_against(data);
+ };
+
+ return this;
+ }
+
+ public void run()
+ {
+ action();
+ }
+
+ public override string ToString()
+ {
+ return message;
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/commands/ContainerCommandBuilder.cs
@@ -0,0 +1,18 @@
+using Gorilla.Commons.Infrastructure.Container;
+using gorilla.commons.utility;
+
+namespace presentation.windows.commands
+{
+ public class ContainerCommandBuilder : CommandBuilder
+ {
+ public ParameterizedCommandBuilder<T> prepare<T>(T data)
+ {
+ return new ContainerAwareParameterizedCommandBuilder<T>(data);
+ }
+
+ public Command build<T>(string message) where T : Command
+ {
+ return new NamedCommand<T>(message, Resolve.the<T>());
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/commands/NamedCommand.cs
@@ -0,0 +1,26 @@
+using gorilla.commons.utility;
+
+namespace presentation.windows.commands
+{
+ public class NamedCommand<T> : Command where T : Command
+ {
+ readonly string message;
+ readonly T command;
+
+ public NamedCommand(string message, T command)
+ {
+ this.message = message;
+ this.command = command;
+ }
+
+ public void run()
+ {
+ command.run();
+ }
+
+ public override string ToString()
+ {
+ return message;
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/commands/ParameterizedCommandBuilder.cs
@@ -0,0 +1,9 @@
+using gorilla.commons.utility;
+
+namespace presentation.windows.commands
+{
+ public interface ParameterizedCommandBuilder<T>
+ {
+ Command build<TCommand>(string message) where TCommand : ArgCommand<T>;
+ }
+}
\ No newline at end of file
product/client/presentation.windows/presenters/AddFamilyMemberPresenter.cs
@@ -0,0 +1,49 @@
+using System;
+using MoMoney.Service.Infrastructure.Threading;
+using presentation.windows.commands;
+using presentation.windows.commands.dto;
+using presentation.windows.views;
+
+namespace presentation.windows.presenters
+{
+ public class AddFamilyMemberPresenter : DialogPresenter
+ {
+ CommandBuilder command_builder;
+ CommandProcessor processor;
+
+ public AddFamilyMemberPresenter(CommandBuilder command_builder, CommandProcessor processor)
+ {
+ this.command_builder = command_builder;
+ this.processor = processor;
+ }
+
+ public void present()
+ {
+ Save = new SimpleCommand(() =>
+ {
+ processor.add(command_builder
+ .prepare(new FamilyMemberToAdd
+ {
+ first_name = first_name,
+ last_name = last_name,
+ date_of_birth = date_of_birth
+ })
+ .build<AddMemberToFamily>("Adding Family Member")
+ );
+ close();
+ });
+ Cancel = new SimpleCommand(() =>
+ {
+ close();
+ });
+ }
+
+ public string first_name { get; set; }
+ public string last_name { get; set; }
+ public DateTime date_of_birth { get; set; }
+ public IObservableCommand Save { get; set; }
+ public IObservableCommand Cancel { get; set; }
+
+ public Action close { get; set; }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/presenters/IObservableCommand.cs
@@ -0,0 +1,9 @@
+using System.Windows.Input;
+
+namespace presentation.windows.presenters
+{
+ public interface IObservableCommand : ICommand
+ {
+ void notify_observers();
+ }
+}
\ No newline at end of file
product/client/presentation.windows/presenters/SimpleCommand.cs
@@ -0,0 +1,35 @@
+using System;
+
+namespace presentation.windows.presenters
+{
+ public class SimpleCommand : IObservableCommand
+ {
+ Action action = () => {};
+ Func<bool> predicate;
+
+ public SimpleCommand(Action action) : this(action, () => true) {}
+
+ public SimpleCommand(Action action, Func<bool> predicate)
+ {
+ this.action = action ?? (() => {});
+ this.predicate = predicate ?? (() => true);
+ }
+
+ public event EventHandler CanExecuteChanged = (o, e) => {};
+
+ public void Execute(object parameter)
+ {
+ action();
+ }
+
+ public bool CanExecute(object parameter)
+ {
+ return predicate();
+ }
+
+ public void notify_observers()
+ {
+ CanExecuteChanged(this, EventArgs.Empty);
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/views/AddFamilyMemberDialog.xaml
@@ -0,0 +1,21 @@
+<Window x:Class="presentation.windows.views.AddFamilyMemberDialog"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" Title="Add A Family Member" ShowInTaskbar="False" WindowStartupLocation="CenterScreen">
+ <DockPanel>
+ <StackPanel>
+ <Label>Add A Family Member</Label>
+ <DockPanel>
+ <UniformGrid Rows="3">
+ <Label>first name</Label>
+ <TextBox Text="{Binding first_name}"></TextBox>
+ <Label>last name</Label>
+ <TextBox Text="{Binding last_name}"></TextBox>
+ <Label>date of birth</Label>
+ <Controls:DatePicker SelectedDate="{Binding date_of_birth}"></Controls:DatePicker>
+ </UniformGrid>
+ </DockPanel>
+ <Button Command="{Binding Save}">_Save</Button>
+ <Button Command="{Binding Cancel}">_Cancel</Button>
+ </StackPanel>
+ </DockPanel>
+</Window>
product/client/presentation.windows/views/AddFamilyMemberDialog.xaml.cs
@@ -0,0 +1,19 @@
+using System.Windows;
+using presentation.windows.presenters;
+
+namespace presentation.windows.views
+{
+ public partial class AddFamilyMemberDialog : Dialog<AddFamilyMemberPresenter>
+ {
+ public AddFamilyMemberDialog()
+ {
+ InitializeComponent();
+ }
+
+ public void show_dialog(Window parent)
+ {
+ Owner = parent;
+ ShowDialog();
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/views/MainMenu.cs
@@ -0,0 +1,14 @@
+using System.Windows.Controls;
+
+namespace presentation.windows.views
+{
+ public class MainMenu : Menu
+ {
+ public MenuItem add(string header)
+ {
+ var menu_item = new MenuItem {Header = header};
+ Items.Add(menu_item);
+ return menu_item;
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/views/MenuItemExtensions.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Windows.Controls;
+using presentation.windows.presenters;
+
+namespace presentation.windows.views
+{
+ static public class MenuItemExtensions
+ {
+ static public MenuItem add(this MenuItem item, string header, Action action)
+ {
+ var menu_item = new MenuItem {Header = header, Command = new SimpleCommand(action)};
+ item.Items.Add(menu_item);
+ return menu_item;
+ }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/views/ShellWIndow.xaml
@@ -1,10 +1,9 @@
<Window x:Class="presentation.windows.views.ShellWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MoMoney - (ALPHA)" MinHeight="600" MinWidth="800" WindowStartupLocation="CenterScreen" WindowState="Maximized">
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ui="clr-namespace:presentation.windows.views" Title="MoMoney - (ALPHA)" MinHeight="600" MinWidth="800" WindowStartupLocation="CenterScreen" WindowState="Maximized">
<DockPanel VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
- <Menu Name="Menu" DockPanel.Dock="Top">
- <MenuItem Header="File"></MenuItem>
- </Menu>
+ <ui:MainMenu x:Name="Menu" DockPanel.Dock="Top">
+ </ui:MainMenu>
<StatusBar Name="StatusBar" HorizontalAlignment="Right" DockPanel.Dock="Bottom">
<Label>Test</Label>
</StatusBar>
product/client/presentation.windows/ApplicationController.cs
@@ -4,6 +4,7 @@ namespace presentation.windows
{
public interface ApplicationController
{
- void add_tab<Presenter, View>() where Presenter : TabPresenter where View : FrameworkElement, Tab<Presenter>, new();
+ void add_tab<Presenter, Tab>() where Presenter : TabPresenter where Tab : FrameworkElement, Tab<Presenter>, new();
+ void launch_dialog<Presenter, Dialog>() where Presenter : DialogPresenter where Dialog : FrameworkElement, Dialog<Presenter>, new();
}
}
\ No newline at end of file
product/client/presentation.windows/ComposeShell.cs
@@ -1,4 +1,5 @@
using System.Threading;
+using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using presentation.windows.presenters;
@@ -29,6 +30,19 @@ namespace presentation.windows
region_manager.region<StatusBar>(x => x.Items.Add(new Label {Content = Thread.CurrentPrincipal.Identity.Name}));
region_manager.region<StatusBar>(x => x.Items.Add(new Label {Content = "Software Developer"}));
+
+ region_manager.region<MainMenu>(x =>
+ {
+ x.add("_File").add("E_xit", () =>
+ {
+ Application.Current.Shutdown();
+ });
+ x.add("F_amily").add("_Add Member", () =>
+ {
+ controller.launch_dialog<AddFamilyMemberPresenter, AddFamilyMemberDialog>();
+ MessageBox.Show("Add Family");
+ });
+ });
}
}
}
\ No newline at end of file
product/client/presentation.windows/Dialog.cs
@@ -0,0 +1,10 @@
+using System.Windows;
+
+namespace presentation.windows
+{
+ public interface Dialog<TPresenter> : View<TPresenter> where TPresenter : DialogPresenter
+ {
+ void show_dialog(Window parent);
+ void Close();
+ }
+}
\ No newline at end of file
product/client/presentation.windows/DialogPresenter.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace presentation.windows
+{
+ public interface DialogPresenter : Presenter
+ {
+ Action close { set; }
+ }
+}
\ No newline at end of file
product/client/presentation.windows/presentation.windows.csproj
@@ -9,7 +9,7 @@
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>presentation.windows</RootNamespace>
- <AssemblyName>presentation.windows</AssemblyName>
+ <AssemblyName>momoney.wpf</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@@ -61,8 +61,13 @@
<Reference Include="PresentationFramework">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>
+ <Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
</ItemGroup>
<ItemGroup>
+ <Page Include="views\AddFamilyMemberDialog.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
<Page Include="views\CompensationTab.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -78,7 +83,21 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationController.cs" />
+ <Compile Include="commands\ParameterizedCommandBuilder.cs" />
+ <Compile Include="Dialog.cs" />
+ <Compile Include="DialogPresenter.cs" />
+ <Compile Include="presenters\AddFamilyMemberPresenter.cs" />
+ <Compile Include="commands\CommandBuilder.cs" />
+ <Compile Include="commands\AddMemberToFamily.cs" />
<Compile Include="presenters\CompensationPresenter.cs" />
+ <Compile Include="commands\dto\FamilyMemberToAdd.cs" />
+ <Compile Include="commands\ContainerCommandBuilder.cs" />
+ <Compile Include="commands\NamedCommand.cs" />
+ <Compile Include="commands\ContainerAwareParameterizedCommandBuilder.cs" />
+ <Compile Include="View.cs" />
+ <Compile Include="views\AddFamilyMemberDialog.xaml.cs">
+ <DependentUpon>AddFamilyMemberDialog.xaml</DependentUpon>
+ </Compile>
<Compile Include="views\CompensationTab.xaml.cs">
<DependentUpon>CompensationTab.xaml</DependentUpon>
</Compile>
@@ -104,6 +123,10 @@
</Compile>
<Compile Include="Tab.cs" />
<Compile Include="TabPresenter.cs" />
+ <Compile Include="presenters\IObservableCommand.cs" />
+ <Compile Include="views\MainMenu.cs" />
+ <Compile Include="views\MenuItemExtensions.cs" />
+ <Compile Include="presenters\SimpleCommand.cs" />
<Compile Include="WpfApplicationController.cs" />
<Compile Include="WpfPresenterFactory.cs" />
<EmbeddedResource Include="Properties\Resources.resx">
@@ -129,6 +152,10 @@
<Project>{DD8FD29E-7424-415C-9BA3-7D9F6ECBA161}</Project>
<Name>utility</Name>
</ProjectReference>
+ <ProjectReference Include="..\service.infrastructure\service.infrastructure.csproj">
+ <Project>{81412692-F3EE-4FBF-A7C7-69454DD1BD46}</Project>
+ <Name>service.infrastructure</Name>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
product/client/presentation.windows/Program.cs
@@ -6,6 +6,8 @@ using Autofac.Builder;
using Gorilla.Commons.Infrastructure.Container;
using gorilla.commons.infrastructure.thirdparty.Autofac;
using gorilla.commons.utility;
+using MoMoney.Service.Infrastructure.Threading;
+using presentation.windows.commands;
using presentation.windows.presenters;
using presentation.windows.views;
@@ -18,7 +20,10 @@ namespace presentation.windows
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
var application = new Application();
- application.DispatcherUnhandledException += (o, e) => {};
+ application.DispatcherUnhandledException += (o, e) =>
+ {
+ MessageBox.Show(e.to_string());
+ };
application.ShutdownMode = ShutdownMode.OnMainWindowClose;
application.Run(create_window());
}
@@ -28,10 +33,17 @@ namespace presentation.windows
var builder = new ContainerBuilder();
var shell_window = new ShellWindow();
builder.Register(x => shell_window).As<RegionManager>();
+
builder.Register<ComposeShell>().As<NeedStartup>();
builder.Register<WpfApplicationController>().As<ApplicationController>();
builder.Register<WpfPresenterFactory>().As<PresenterFactory>();
+
builder.Register<CompensationPresenter>();
+ builder.Register<AddFamilyMemberPresenter>();
+
+ builder.Register<ContainerCommandBuilder>().As<CommandBuilder>();
+ builder.Register<SynchronousCommandProcessor>().As<CommandProcessor>();
+
Resolve.initialize_with(new AutofacDependencyRegistryBuilder(builder).build());
Resolve.the<IEnumerable<NeedStartup>>().each(x => x.run());
product/client/presentation.windows/Tab.cs
@@ -1,4 +1,4 @@
namespace presentation.windows
{
- public interface Tab<Presenter> where Presenter : TabPresenter {}
+ public interface Tab<Presenter> : View<Presenter> where Presenter : TabPresenter {}
}
\ No newline at end of file
product/client/presentation.windows/View.cs
@@ -0,0 +1,4 @@
+namespace presentation.windows
+{
+ public interface View<TPresenter> where TPresenter : Presenter {}
+}
\ No newline at end of file
product/client/presentation.windows/WpfApplicationController.cs
@@ -1,5 +1,6 @@
using System.Windows;
using System.Windows.Controls;
+using presentation.windows.views;
namespace presentation.windows
{
@@ -24,5 +25,20 @@ namespace presentation.windows
Content = new View {DataContext = presenter}
}));
}
+
+ public void launch_dialog<Presenter, Dialog>() where Presenter : DialogPresenter where Dialog : FrameworkElement, Dialog<Presenter>, new()
+ {
+ var presenter = factory.create<Presenter>();
+ var dialog = new Dialog {DataContext = presenter};
+ presenter.close = () =>
+ {
+ dialog.Close();
+ };
+ presenter.present();
+ region_manager.region<ShellWindow>(x =>
+ {
+ dialog.show_dialog(x);
+ });
+ }
}
}
\ No newline at end of file
product/client/presentation.winforms/helpers/BindableTextBoxExtensions.cs
@@ -21,7 +21,7 @@ namespace MoMoney.Presentation.Winforms.Helpers
static public IBindableTextBox<ItemToBindTo> apply<ItemToBindTo>(this IBindableTextBox<ItemToBindTo> textbox,
params ITextBoxCommand<ItemToBindTo>[] commands)
{
- commands.each(x => textbox.on_leave(y => x.run(y)));
+ commands.each(x => textbox.on_leave(y => x.run_against(y)));
return textbox;
}
}
product/client/presentation.winforms/helpers/ITextBoxCommand.cs
@@ -1,6 +1,6 @@
-using gorilla.commons.utility;
-
+using gorilla.commons.utility;
+
namespace MoMoney.Presentation.Winforms.Helpers
{
- public interface ITextBoxCommand<T> : ParameterizedCommand<IBindableTextBox<T>> {}
+ public interface ITextBoxCommand<T> : ArgCommand<IBindableTextBox<T>> {}
}
\ No newline at end of file
product/client/presentation.winforms/helpers/RebindTextBoxCommand.cs
@@ -12,7 +12,7 @@ namespace MoMoney.Presentation.Winforms.Helpers
this.binder = binder;
}
- public void run(IBindableTextBox<T> item)
+ public void run_against(IBindableTextBox<T> item)
{
item.bind_to(binder.Compile()(item.text()));
}
product/client/presentation.winforms/views/AddBillPaymentView.cs
@@ -28,12 +28,12 @@ namespace MoMoney.Presentation.Winforms.Views
submit_clicked = x => presenter.submit_bill_payment(create_dto());
}
- public void run(IEnumerable<CompanyDTO> companys)
+ public void run_against(IEnumerable<CompanyDTO> companys)
{
companies_list.bind_to(companys);
}
- public void run(IEnumerable<BillInformationDTO> bills)
+ public void run_against(IEnumerable<BillInformationDTO> bills)
{
ux_bill_payments_grid.DataSource = bills.databind();
}
product/client/presentation.winforms/views/AddCompanyView.cs
@@ -42,7 +42,7 @@ namespace MoMoney.Presentation.Winforms.Views
};
}
- public void run(IEnumerable<CompanyDTO> companies)
+ public void run_against(IEnumerable<CompanyDTO> companies)
{
companiesListView.Items.Clear();
companiesListView.Items.AddRange(companies.Select(x => new ListViewItem(x.name, 0)).ToArray());
product/client/presentation.winforms/views/AddNewIncomeView.cs
@@ -31,12 +31,12 @@ namespace MoMoney.Presentation.Winforms.Views
submit_button = x => presenter.submit_new(create_income());
}
- public void run(IEnumerable<CompanyDTO> companies)
+ public void run_against(IEnumerable<CompanyDTO> companies)
{
companies_list.bind_to(companies);
}
- public void run(IEnumerable<IncomeInformationDTO> incomes)
+ public void run_against(IEnumerable<IncomeInformationDTO> incomes)
{
ux_income_received_grid.DataSource = incomes.databind();
}
product/client/presentation.winforms/views/CheckForUpdatesView.cs
@@ -64,7 +64,7 @@ namespace MoMoney.Presentation.Winforms.Views
downloaded(100);
}
- public void run(ApplicationVersion information)
+ public void run_against(ApplicationVersion information)
{
if (information.updates_available)
{
product/client/presentation.winforms/views/LogFileView.cs
@@ -17,7 +17,7 @@ namespace MoMoney.Presentation.Winforms.Views
.icon(ApplicationIcons.ViewLog);
}
- public void run(string file_contents)
+ public void run_against(string file_contents)
{
ux_log_file.Text = file_contents;
}
product/client/presentation.winforms/views/ViewAllBills.cs
@@ -19,7 +19,7 @@ namespace MoMoney.Presentation.Winforms.Views
{
}
- public void run(IEnumerable<BillInformationDTO> bills)
+ public void run_against(IEnumerable<BillInformationDTO> bills)
{
ux_bills.DataSource = bills.ToList();
}
product/client/presentation.winforms/views/ViewAllBillsReport.cs
@@ -18,7 +18,7 @@ namespace MoMoney.Presentation.Winforms.Views
public string name { get; private set; }
- public void run(IEnumerable<BillInformationDTO> bills)
+ public void run_against(IEnumerable<BillInformationDTO> bills)
{
ux_company_name.bind_to<BillInformationDTO, string>(x => x.company_name);
ux_amount.bind_to<BillInformationDTO, string>(x => x.the_amount_owed);
product/client/presentation.winforms/views/ViewAllIncome.cs
@@ -17,7 +17,7 @@ namespace MoMoney.Presentation.Winforms.Views
public void attach_to(ViewIncomeHistoryPresenter presenter) {}
- public void run(IEnumerable<IncomeInformationDTO> summary)
+ public void run_against(IEnumerable<IncomeInformationDTO> summary)
{
ux_view_all_income.DataSource = summary.databind();
}
product/client/presentation.winforms/views/ViewAllIncomesReport.cs
@@ -17,7 +17,7 @@ namespace MoMoney.Presentation.Winforms.Views
public string name { get; private set; }
- public void run(IEnumerable<IncomeInformationDTO> income)
+ public void run_against(IEnumerable<IncomeInformationDTO> income)
{
ux_company_name.bind_to<IncomeInformationDTO, string>(x => x.company);
ux_amount.bind_to<IncomeInformationDTO, string>(x => x.amount);
product/client/service/Application/AddNewIncomeCommand.cs
@@ -22,7 +22,7 @@ namespace MoMoney.Service.Application
this.companys = companys;
}
- public void run(IncomeSubmissionDTO item)
+ public void run_against(IncomeSubmissionDTO item)
{
if (similar_income_has_been_submitted(item))
{
product/client/service/Application/RegisterNewCompanyCommand.cs
@@ -20,7 +20,7 @@ namespace MoMoney.Service.Application
this.companies = companies;
}
- public void run(RegisterNewCompany item)
+ public void run_against(RegisterNewCompany item)
{
if (is_there_a_company_registered_with(item.company_name))
notification.notify(create_error_message_from(item));
product/client/service/Application/SaveNewBillCommand.cs
@@ -15,7 +15,7 @@ namespace MoMoney.Service.Application
this.tasks = tasks;
}
- public void run(AddNewBillDTO item)
+ public void run_against(AddNewBillDTO item)
{
companys
.find_company_by(item.company_id)
product/client/service/Service.csproj
@@ -31,10 +31,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="gorilla.commons.utility, Version=2009.5.5.1633, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
product/client/service.contracts/Application/IAddNewIncomeCommand.cs
@@ -1,9 +1,9 @@
using System.ServiceModel;
-using gorilla.commons.utility;
+using gorilla.commons.utility;
using MoMoney.DTO;
namespace MoMoney.Service.Contracts.Application
{
[ServiceContract]
- public interface IAddNewIncomeCommand : ParameterizedCommand<IncomeSubmissionDTO> {}
+ public interface IAddNewIncomeCommand : ArgCommand<IncomeSubmissionDTO> {}
}
\ No newline at end of file
product/client/service.contracts/Application/IRegisterNewCompanyCommand.cs
@@ -1,9 +1,9 @@
using System.ServiceModel;
-using gorilla.commons.utility;
+using gorilla.commons.utility;
using MoMoney.DTO;
namespace MoMoney.Service.Contracts.Application
{
[ServiceContract]
- public interface IRegisterNewCompanyCommand : ParameterizedCommand<RegisterNewCompany> {}
+ public interface IRegisterNewCompanyCommand : ArgCommand<RegisterNewCompany> {}
}
\ No newline at end of file
product/client/service.contracts/Application/ISaveNewBillCommand.cs
@@ -1,9 +1,9 @@
using System.ServiceModel;
-using gorilla.commons.utility;
+using gorilla.commons.utility;
using MoMoney.DTO;
namespace MoMoney.Service.Contracts.Application
{
[ServiceContract]
- public interface ISaveNewBillCommand : ParameterizedCommand<AddNewBillDTO> {}
+ public interface ISaveNewBillCommand : ArgCommand<AddNewBillDTO> {}
}
\ No newline at end of file
product/client/service.contracts/Service.Contracts.csproj
@@ -31,10 +31,6 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
- <Reference Include="gorilla.commons.utility, Version=2009.9.4.1823, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
product/client/service.infrastructure/threading/RunOnUIThread.cs
@@ -17,7 +17,7 @@ namespace momoney.service.infrastructure.threading
public void Intercept(IInvocation invocation)
{
- factory.create().run(new AnonymousCommand(invocation.Proceed));
+ factory.create().run_against(new AnonymousCommand(invocation.Proceed));
}
}
}
\ No newline at end of file
product/client/service.infrastructure/threading/SynchronizedCommand.cs
@@ -1,10 +1,10 @@
using System;
using System.Threading;
-using gorilla.commons.utility;
-
+using gorilla.commons.utility;
+
namespace momoney.service.infrastructure.threading
{
- public interface ISynchronizedCommand : ParameterizedCommand<Action>, ParameterizedCommand<Command> {}
+ public interface ISynchronizedCommand : ArgCommand<Action>, ArgCommand<Command> {}
public class SynchronizedCommand : ISynchronizedCommand
{
@@ -15,14 +15,14 @@ namespace momoney.service.infrastructure.threading
this.context = context;
}
- public void run(Action item)
+ public void run_against(Action item)
{
context.Post(x => item(), new object());
}
- public void run(Command item)
+ public void run_against(Command item)
{
- run(item.run);
+ run_against(item.run);
}
}
}
\ No newline at end of file
product/client/service.infrastructure/threading/SynchronizedContext.cs
@@ -1,9 +1,9 @@
using System.Threading;
-using gorilla.commons.utility;
-
+using gorilla.commons.utility;
+
namespace momoney.service.infrastructure.threading
{
- public interface ISynchronizationContext : ParameterizedCommand<Command> {}
+ public interface ISynchronizationContext : ArgCommand<Command> {}
public class SynchronizedContext : ISynchronizationContext
{
@@ -14,7 +14,7 @@ namespace momoney.service.infrastructure.threading
this.context = context;
}
- public void run(Command item)
+ public void run_against(Command item)
{
context.Post(x => item.run(), new object());
//context.Send(x => item.run(), new object());
product/client/service.infrastructure/updating/DownloadTheLatestVersion.cs
@@ -13,10 +13,10 @@ namespace MoMoney.Service.Infrastructure.Updating
this.deployment = deployment;
}
- public void run(Callback<Percent> callback)
+ public void run_against(Callback<Percent> callback)
{
- deployment.UpdateProgressChanged += (o, e) => callback.run(new Percent(e.BytesCompleted, e.BytesTotal));
- deployment.UpdateCompleted += (sender, args) => callback.run(100);
+ deployment.UpdateProgressChanged += (o, e) => callback.run_against(new Percent(e.BytesCompleted, e.BytesTotal));
+ deployment.UpdateCompleted += (sender, args) => callback.run_against(100);
deployment.UpdateAsync();
}
}
product/client/service.infrastructure/service.infrastructure.csproj
@@ -35,22 +35,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\build\lib\app\castle\Castle.Core.dll</HintPath>
</Reference>
- <Reference Include="gorilla.commons.infrastructure, Version=2009.10.21.739, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.infrastructure.dll</HintPath>
- </Reference>
- <Reference Include="gorilla.commons.infrastructure.thirdparty, Version=2009.10.21.739, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.infrastructure.thirdparty.dll</HintPath>
- </Reference>
- <Reference Include="gorilla.commons.utility, Version=2009.10.21.739, Culture=neutral, PublicKeyToken=687787ccb6c36c9f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\build\lib\app\gorilla\gorilla.commons.utility.dll</HintPath>
- </Reference>
- <Reference Include="Rhino.Mocks, Version=3.5.0.1337, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\..\build\lib\test\rhino.mocks\Rhino.Mocks.dll</HintPath>
- </Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
product/commons/utility/ArgCommand.cs
@@ -0,0 +1,7 @@
+namespace gorilla.commons.utility
+{
+ public interface ArgCommand<T>
+ {
+ void run_against(T item);
+ }
+}
\ No newline at end of file
product/commons/utility/Callback.cs
@@ -4,7 +4,7 @@ namespace gorilla.commons.utility
{
}
- public interface Callback<T> : ParameterizedCommand<T>
+ public interface Callback<T> : ArgCommand<T>
{
}
}
\ No newline at end of file
product/commons/utility/CallbackCommand.cs
@@ -1,6 +1,6 @@
namespace gorilla.commons.utility
{
- public interface CallbackCommand<T> : ParameterizedCommand<Callback<T>>
+ public interface CallbackCommand<T> : ArgCommand<Callback<T>>
{
}
}
\ No newline at end of file
product/commons/utility/ChainedParameterizedCommand.cs
@@ -1,20 +1,20 @@
namespace gorilla.commons.utility
{
- public class ChainedParameterizedCommand<T> : ParameterizedCommand<T>
+ public class ChainedCommand<T> : ArgCommand<T>
{
- ParameterizedCommand<T> left;
- ParameterizedCommand<T> right;
+ ArgCommand<T> left;
+ ArgCommand<T> right;
- public ChainedParameterizedCommand(ParameterizedCommand<T> left, ParameterizedCommand<T> right)
+ public ChainedCommand(ArgCommand<T> left, ArgCommand<T> right)
{
this.left = left;
this.right = right;
}
- public void run(T item)
+ public void run_against(T item)
{
- left.run(item);
- right.run(item);
+ left.run_against(item);
+ right.run_against(item);
}
}
}
\ No newline at end of file
product/commons/utility/Command.cs
@@ -1,7 +1,7 @@
-namespace gorilla.commons.utility
-{
- public interface Command
- {
- void run();
- }
+namespace gorilla.commons.utility
+{
+ public interface Command
+ {
+ void run();
+ }
}
\ No newline at end of file
product/commons/utility/CommandExtensions.cs
@@ -1,5 +1,5 @@
-using System;
-
+using System;
+
namespace gorilla.commons.utility
{
static public class CommandExtensions
@@ -19,9 +19,9 @@ namespace gorilla.commons.utility
return new ChainedCommand(left, new AnonymousCommand(right));
}
- static public ParameterizedCommand<T> then<T>(this ParameterizedCommand<T> left, ParameterizedCommand<T> right)
+ static public ArgCommand<T> then<T>(this ArgCommand<T> left, ArgCommand<T> right)
{
- return new ChainedParameterizedCommand<T>(left, right);
+ return new ChainedCommand<T>(left, right);
}
}
}
\ No newline at end of file
product/commons/utility/EmptyCallback.cs
@@ -2,7 +2,7 @@ namespace gorilla.commons.utility
{
public class EmptyCallback<T> : Callback<T>, Callback
{
- public void run(T item) {}
+ public void run_against(T item) {}
public void run() {}
}
product/commons/utility/ParameterizedCommand.cs
@@ -1,7 +0,0 @@
-namespace gorilla.commons.utility
-{
- public interface ParameterizedCommand<T>
- {
- void run(T item);
- }
-}
\ No newline at end of file
product/commons/utility/utility.csproj
@@ -54,6 +54,7 @@
<Compile Include="ChainedCommand.cs" />
<Compile Include="ChainedConfiguration.cs" />
<Compile Include="ChainedMapper.cs" />
+ <Compile Include="Command.cs" />
<Compile Include="EmptyCallback.cs" />
<Compile Include="EmptyCommand.cs" />
<Compile Include="DefaultConstructorFactory.cs" />
@@ -63,7 +64,7 @@
<Compile Include="Builder.cs" />
<Compile Include="Callback.cs" />
<Compile Include="CallbackCommand.cs" />
- <Compile Include="Command.cs" />
+ <Compile Include="ArgCommand.cs" />
<Compile Include="Configuration.cs" />
<Compile Include="ComponentFactory.cs" />
<Compile Include="Id.cs" />
@@ -73,7 +74,6 @@
<Compile Include="Import.cs" />
<Compile Include="Mapper.cs" />
<Compile Include="Notification.cs" />
- <Compile Include="ParameterizedCommand.cs" />
<Compile Include="Parser.cs" />
<Compile Include="Query.cs" />
<Compile Include="Registry.cs" />
product/tests/unit/client/boot/container/registration/AutoWiteComponentsInToTheSpecs.cs
@@ -52,7 +52,7 @@ namespace tests.unit.client.boot.container.registration
.it_will_return(false);
};
- because b = () => sut.run(assembly);
+ because b = () => sut.run_against(assembly);
static Assembly assembly;
product/tests/unit/client/presentation/model/NewCommandSpecs.cs
@@ -20,7 +20,7 @@ namespace tests.unit.client.presentation.model
public class before_starting_a_new_project : behaves_like_new_command
{
it should_check_to_see_if_there_were_any_unsaved_changes_to_a_previous_project =
- () => save_changes_command.was_told_to(x => x.run(sut));
+ () => save_changes_command.was_told_to(x => x.run_against(sut));
because b = () => sut.run();
}
product/tests/unit/client/presentation/model/OpenCommandSpecs.cs
@@ -24,7 +24,7 @@ namespace tests.unit.client.presentation.model
public class before_opening_a_new_project : behaves_like_command_to_open_a_project
{
it should_check_to_see_if_you_want_to_save_the_previously_opened_project =
- () => save_changes_command.was_told_to(x => x.run(sut));
+ () => save_changes_command.was_told_to(x => x.run_against(sut));
because b = () => sut.run();
}
product/tests/unit/client/presentation/model/ProjectControllerSpecs.cs
@@ -154,7 +154,7 @@ namespace tests.unit.client.presentation.model
because b = () =>
{
- sut.downcast_to<ProjectController>().run(unit_of_work);
+ sut.downcast_to<ProjectController>().run_against(unit_of_work);
result = sut.has_unsaved_changes();
};
product/tests/unit/client/presentation/presenters/CheckForUpdatesPresenterSpecs.cs
@@ -58,14 +58,14 @@ namespace tests.unit.client.presentation.presenters
{
it should_notify_you_of_the_progress_of_the_update = () => view.was_told_to(x => x.downloaded(50));
- because b = () => sut.run(50);
+ because b = () => sut.run_against(50);
}
public class when_an_update_is_completed : concern
{
it should_notify_the_view_that_the_update_is_complete = () => view.was_told_to(x => x.update_complete());
- because b = () => sut.run(100);
+ because b = () => sut.run_against(100);
}
public class when_an_update_is_cancelled : concern
product/tests/unit/client/presentation/winforms/helpers/BindableTextBoxExtensionsSpecs.cs
@@ -9,7 +9,7 @@ namespace tests.unit.client.presentation.winforms.helpers
[Concern(typeof (BindableTextBoxExtensions))]
public class when_binding_a_text_control_to_a_command : concerns
{
- it should_run_each_command_when_the_text_changes_in_the_text_control = () => command.was_told_to(x => x.run(result));
+ it should_run_each_command_when_the_text_changes_in_the_text_control = () => command.was_told_to(x => x.run_against(result));
context c = () =>
{
product/tests/unit/client/presentation/winforms/helpers/RebindTextBoxCommandSpecs.cs
@@ -36,6 +36,6 @@ namespace tests.unit.client.presentation.winforms.helpers
textbox.is_told_to(x => x.text()).it_will_return("kitty");
};
- because b = () => sut.run(textbox);
+ because b = () => sut.run_against(textbox);
}
}
\ No newline at end of file
product/tests/unit/client/service/application/AddNewIncomeCommandSpecs.cs
@@ -54,7 +54,7 @@ namespace tests.unit.client.service.application
all_income.is_told_to(x => x.all()).it_will_return(matching_income);
};
- because b = () => sut.run(income);
+ because b = () => sut.run_against(income);
static IncomeSubmissionDTO income;
}