-
Notifications
You must be signed in to change notification settings - Fork 3
/
AssistantManager.cs
42 lines (34 loc) · 1.18 KB
/
AssistantManager.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
namespace ClassLibrary4
{
public class AssistantManager : Handles<Messages.TotalOrder>
{
private readonly IPublishEvents next;
private static readonly IDictionary<string, decimal> PricesDatabase = new Dictionary<string, decimal>
{
{"Pizza", 15m},
{"Chicharron", 15m},
{"Miguitas", 15m}
};
public AssistantManager(IPublishEvents next)
{
this.next = next;
}
private const decimal TaxRate = 0.825m;
public void Handle(Messages.TotalOrder message)
{
var order = message.Order;
foreach (var item in order.Items)
{
item.Price = PricesDatabase[item.Plate];
}
order.Tax = order.Subtotal * TaxRate;
order.Total = order.Subtotal + order.Tax + order.Tip;
next.Publish(new Messages.OrderTotalled(order, message.CorrelationId, message.MessageId, message.TimeToLive));
}
public void TotalUp(Order order, Guid correlationId, Guid causationId)
{
}
}
}