Commit e36697a
Changed files (7)
product
desktop.ui
bootstrappers
handlers
presenters
views
product/desktop.ui/bootstrappers/Bootstrapper.cs
@@ -13,7 +13,7 @@ using utility;
namespace desktop.ui.bootstrappers
{
- public static class ClientBootstrapper
+ public static class Bootstrapper
{
public static ShellWindow create_window()
{
@@ -85,6 +85,8 @@ namespace desktop.ui.bootstrappers
static void register_for_message_to_listen_for(ContainerBuilder builder)
{
builder.RegisterType<PublishEventHandler<AddedNewFamilyMember>>().As<Handles<AddedNewFamilyMember>>();
+ builder.RegisterType<PublishEventHandler<AddIncomeCommandMessage>>().As<Handles<AddIncomeCommandMessage>>();
+
}
static void server_registration(ContainerBuilder builder)
product/desktop.ui/handlers/AddIncomeCommandMessageHandler.cs
@@ -0,0 +1,13 @@
+using System;
+using desktop.ui.presenters;
+
+namespace desktop.ui.handlers
+{
+ public class AddIncomeCommandMessageHandler : Handles<AddIncomeCommandMessage>
+ {
+ public void handle(AddIncomeCommandMessage item)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
product/desktop.ui/presenters/AddNewIncomeViewModel.cs
@@ -1,4 +1,5 @@
using System;
+using desktop.ui.eventing;
namespace desktop.ui.presenters
{
@@ -24,11 +25,23 @@ namespace desktop.ui.presenters
public class AddIncomeCommand : UICommand<AddNewIncomeViewModel>
{
+ ServiceBus bus;
+
+ public AddIncomeCommand(ServiceBus bus)
+ {
+ this.bus = bus;
+ }
+
public override void run(AddNewIncomeViewModel presenter)
{
- Console.Out.WriteLine(presenter.amount);
+ bus.publish<AddIncomeCommandMessage>(x => { x.amount = presenter.amount; });
presenter.close();
}
}
}
+
+ public class AddIncomeCommandMessage : Event
+ {
+ public decimal amount { get; set; }
+ }
}
\ No newline at end of file
product/desktop.ui/presenters/TaxSummaryPresenter.cs
@@ -1,6 +1,9 @@
-namespace desktop.ui.presenters
+using desktop.ui.eventing;
+
+namespace desktop.ui.presenters
{
- public class TaxSummaryPresenter : TabPresenter
+ public class TaxSummaryPresenter : Observable<TaxSummaryPresenter>, TabPresenter,
+ EventSubscriber<AddIncomeCommandMessage>
{
UICommandBuilder builder;
@@ -17,5 +20,30 @@
{
get { return "Taxes"; }
}
+
+ public decimal TotalIncome { get; set; }
+ public decimal Taxes { get; set; }
+
+ public void notify(AddIncomeCommandMessage message)
+ {
+ TotalIncome += message.amount;
+ if(TotalIncome <= 41544.00m)
+ {
+ Taxes = ((TotalIncome - 0m)*0.15m) + 0m;
+ }
+ if (TotalIncome > 41544.00m && TotalIncome <= 83088.00m)
+ {
+ Taxes = ((TotalIncome - 41544m)*0.22m) + 6232m;
+ }
+ if(TotalIncome > 83088.00m && TotalIncome <= 128800.00m)
+ {
+ Taxes = ((TotalIncome - 83088m)*0.26m) + 15371m;
+ }
+ if(TotalIncome > 128800.00m)
+ {
+ Taxes = ((TotalIncome - 128800m)*0.29m) + 27256m;
+ }
+ update(x => x.Taxes, x => x.TotalIncome);
+ }
}
}
\ No newline at end of file
product/desktop.ui/views/TaxSummaryTab.xaml
@@ -14,5 +14,10 @@
* 29% of taxable income over $128,800.
</TextBlock>
<WebBrowser x:Name="browser"></WebBrowser>
+ <Label>Total Income:</Label>
+ <Label Content="{Binding Path=TotalIncome}"></Label>
+
+ <Label>Total Taxes:</Label>
+ <Label Content="{Binding Path=Taxes}"></Label>
</StackPanel>
</UserControl>
product/desktop.ui/desktop.ui.csproj
@@ -73,6 +73,7 @@
<Compile Include="eventing\SynchronizedEventAggregator.cs" />
<Compile Include="events\SelectedFamilyMember.cs" />
<Compile Include="events\UpdateOnLongRunningProcess.cs" />
+ <Compile Include="handlers\AddIncomeCommandMessageHandler.cs" />
<Compile Include="handlers\AddNewFamilyMemberHandler.cs" />
<Compile Include="handlers\domain\Entity.cs" />
<Compile Include="handlers\domain\Person.cs" />
product/desktop.ui/Program.cs
@@ -27,7 +27,7 @@ namespace desktop.ui
new WPFApplication
{
ShutdownMode = ShutdownMode.OnMainWindowClose,
- }.Run(ClientBootstrapper.create_window());
+ }.Run(Bootstrapper.create_window());
}
}
}
\ No newline at end of file