/// <summary> /// Attempts to create a new employee in the data store. /// </summary> /// <param name="value">EmployeeDetailViewModel instance reprenting the employee to create</param> /// <returns>Created employee</returns> public EmployeeDetailViewModel Post([FromBody]EmployeeDetailViewModel value) { var cmd = new EmployeeCreateCommand() { Arg = EmployeeDetailViewModel.ToDomainModel(value) }; _commandBus.Execute(cmd); value.Id = cmd.Arg.Id; value.Version = cmd.Arg.Version; return value; }
public void TestBasicCreateCommandHandling() { var target = new EmployeeAggregate(CreateDataModelMock()); var cmd = new EmployeeCreateCommand() { Arg = CreateNewEmployeeModel() }; var results = target.Handle(cmd).ToArray(); Assert.IsNotNull(results); Assert.AreEqual(1, results.Count()); var empCreatedEvent = results.First() as EmployeeCreatedEvent; Assert.IsNotNull(empCreatedEvent); }
public void TestBasicPayCalculation() { var target = new EmployeeAggregate(CreateDataModelMock()); var cmd = new EmployeeCreateCommand() { Arg = CreateNewEmployeeModel() }; var results = target.Handle(cmd).ToArray(); Assert.IsNotNull(results); Assert.AreEqual(1, results.Count()); var empCreatedEvent = results.First() as EmployeeCreatedEvent; Assert.IsNotNull(empCreatedEvent); Assert.AreEqual(2000M, empCreatedEvent.Data.GrossPay); Assert.AreEqual(38M, empCreatedEvent.Data.Benefits); Assert.AreEqual(1962M, empCreatedEvent.Data.NetPay); }
public void TestBasicPayWithDependentCalculation() { var target = new EmployeeAggregate(CreateDataModelMock()); var arg = CreateNewEmployeeModel(); arg.Dependents = new DependentModel[] { new DependentModel() { Name = "OtherGuy" } }; var cmd = new EmployeeCreateCommand() { Arg = arg }; var results = target.Handle(cmd).ToArray(); Assert.IsNotNull(results); Assert.AreEqual(1, results.Count()); var empCreatedEvent = results.First() as EmployeeCreatedEvent; Assert.IsNotNull(empCreatedEvent); Assert.AreEqual(2000M, empCreatedEvent.Data.GrossPay); Assert.AreEqual(57M, empCreatedEvent.Data.Benefits); Assert.AreEqual(1943M, empCreatedEvent.Data.NetPay); }