public async Task <IActionResult> PutEmployee(int id, [FromBody] EmployeeForCreationDTO employeeForCreation) { var employee = _mapper.Map <Employee>(employeeForCreation); employee.Id = id; _unitOfWork.Repository <Employee>().Update(employee); try { await _unitOfWork.Complete(); } catch (DbUpdateConcurrencyException) { if (!await _unitOfWork.Repository <Employee>().Contains(d => employee.Id == id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> CreateEmployeeForCompany(Guid companyId, [FromBody] EmployeeForCreationDTO employee) { var employeeEntity = _mapper.Map <Employee>(employee); _repository.Employee.CreateEmployeeForCompany(companyId, employeeEntity); await _repository.SaveAsync(); var employeeToReturn = _mapper.Map <EmployeeDTO>(employeeEntity); return(CreatedAtRoute("GetEmployeeForCompany", new{ companyId, id = employeeToReturn.Id }, employeeToReturn)); }
public async Task <ActionResult <Employee> > PostEmployee([FromBody] EmployeeForCreationDTO employeeForCreation) { var employee = _mapper.Map <Employee>(employeeForCreation); await _unitOfWork.Repository <Employee>().Add(employee); await _unitOfWork.Complete(); // mapp to a returnable obj var employeeToReturn = _mapper.Map <EmployeeForReturnDTO>(employee); return(new CreatedAtRouteResult(nameof(GetEmployee), new { employee.Id }, employeeToReturn)); }
public async Task <IActionResult> CreateEmployeeForCompany(Guid companyId, [FromBody] EmployeeForCreationDTO employee) { var company = await _repo.Company.GetCompanyAsync(companyId, trackChanges : false); if (company == null) { _logger.LogInfo($"Company with id {companyId} does not exist in the database"); return(NotFound()); } var employeeEntity = _mapper.Map <Employee>(employee); _repo.Employee.CreateEmployeeForCompany(companyId, employeeEntity); await _repo.SaveAsync(); var employeeToReturn = _mapper.Map <EmployeeDTO>(employeeEntity); return(CreatedAtRoute("GetEmployeeForCompany", new { companyId, id = employeeToReturn.Id }, employeeToReturn)); }