public CompensationDb Create(CompensationDb compensationDb) { if (compensationDb != null) { _compensationRepository.Add(compensationDb); _compensationRepository.SaveAsync().Wait(); } return(compensationDb); }
public IActionResult CreateCompensation([FromBody] CompensationDb compensationDb) { _logger.LogDebug($"Received compensation create request for employee id '{compensationDb.EmployeeId}'"); var employee = _employeeService.GetById(compensationDb.EmployeeId); if (employee == null) { _logger.LogDebug($"Could not create compensation record for employee id '{compensationDb.EmployeeId}'. Employee not found in the database."); return(NotFound()); } _logger.LogDebug($"Found employee for compensation request for '{employee.FirstName} {employee.LastName}'"); _compensationService.Create(compensationDb); return(CreatedAtRoute("getCompensationByEmployeeId", new { id = compensationDb.EmployeeId }, compensationDb)); }
public void CreateAndGetCompensationById_Returns_Ok() { // Arrange var employeeId = "16a596ae-edd3-4847-99fe-c4518e82c86f"; var expectedFirstName = "John"; var expectedLastName = "Lennon"; var compensationDbRecord = new CompensationDb() { EmployeeId = "16a596ae-edd3-4847-99fe-c4518e82c86f", Salary = 50000, EffectiveDate = new DateTime(2021, 05, 14) }; var requestContent = new JsonSerialization().ToJson(compensationDbRecord); // Act // First we need to create the compensation record var postRequestTask = _httpClient.PostAsync("api/compensation", new StringContent(requestContent, Encoding.UTF8, "application/json")); var response1 = postRequestTask.Result; // Now we get the compensation record // Compensation object is different than CompensationDb object because Compensation also gives the full // Employee object also var getRequestTask = _httpClient.GetAsync($"api/compensation/{employeeId}"); var response2 = getRequestTask.Result; // Assert Assert.AreEqual(HttpStatusCode.Created, response1.StatusCode); var newCompensation = response1.DeserializeContent <CompensationDb>(); Assert.IsNotNull(newCompensation); Assert.AreEqual(compensationDbRecord.Salary, newCompensation.Salary); Assert.AreEqual(compensationDbRecord.EffectiveDate, newCompensation.EffectiveDate); Assert.AreEqual(HttpStatusCode.OK, response2.StatusCode); var compensation = response2.DeserializeContent <Compensation>(); Assert.IsNotNull(compensation); Assert.IsNotNull(compensation.Employee); Assert.AreEqual(expectedFirstName, compensation.Employee.FirstName); Assert.AreEqual(expectedLastName, compensation.Employee.LastName); }
public CompensationDb Add(CompensationDb compensationDb) { _compensationContext.Compensations.Add(compensationDb); return(compensationDb); }