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));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public CompensationDb Add(CompensationDb compensationDb)
 {
     _compensationContext.Compensations.Add(compensationDb);
     return(compensationDb);
 }