Skip to content

Instantly share code, notes, and snippets.

@codescribler
Created October 7, 2014 12:36
Show Gist options
  • Save codescribler/17ae5e2d4778e754a728 to your computer and use it in GitHub Desktop.
Save codescribler/17ae5e2d4778e754a728 to your computer and use it in GitHub Desktop.
public class CustomerSummaryDenormaliser :
IHandle<CustomerCreated>,
IHandle<OrderPlaced>
{
private readonly CustomerSummaryDto _summaryDto;
public CustomerSummaryDenormaliser(CustomerSummaryDto summaryDto)
{
_summaryDto = summaryDto;
}
public void Handle(CustomerCreated evt)
{
// Get from database
// var _summaryDto = repo.GetById(evt.Id);
_summaryDto.Id = evt.Id;
_summaryDto.Name = evt.CustomerName;
}
public void Handle(OrderPlaced orderPlaced)
{
// Get from database
// var _summaryDto = repo.GetById(evt.Id);
_summaryDto.Orders.Add(orderPlaced);
_summaryDto.RunningTotal += orderPlaced.OrderTotal;
if (_summaryDto.Orders.Count > 10)
{
_summaryDto.RunningTotal -= _summaryDto.Orders[0].OrderTotal;
_summaryDto.Orders.RemoveAt(0);
}
// Save the dto to the db
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment