public NewEmployeeResponse Add(NewEmployee employee)
        {
            // copies properties from employe (NewEmployee) into an Employee entity from the domain.
            var employeeEntity = Mapper.Map<Employee>(employee);
            employeeEntity.Email = emailFormatter.For(employee.FirstName, employee.LastName);;

            context.Employees.Add(employeeEntity);
            context.SaveChanges();

            var response = Mapper.Map<NewEmployeeResponse>(employeeEntity);
            return response;
        }
        public void GivesTheNewEmployeeToTheEmployeeCommandService()
        {
            // arrange - GIVEN
            var employeeToAdd = new NewEmployee() { FirstName = "Boba", LastName = "Fett", Salary = 180000 };
            var employeeToReturn = new NewEmployeeResponse();

            var fakeEmployeeCommands = MockRepository.GenerateStub<IEmployeeCommands>();
            fakeEmployeeCommands.Stub(f => f.Add(employeeToAdd)).Return(employeeToReturn);

            var controller = new EmployeesController(fakeEmployeeCommands,null);
            Helpers.SetupController(controller);
            // act - WHEN
            var response = controller.Post(employeeToAdd);

            // assert - THEN
            var result = response.Content.ReadAsAsync<NewEmployeeResponse>().Result;

            Assert.AreSame(result, employeeToReturn);
        }
        public HttpResponseMessage Post(NewEmployee employee)
        {
            var response = employeeCommands.Add(employee);

                return Request.CreateResponse(HttpStatusCode.Accepted, response);
        }