public async Task <ActionResult <EmployeeTaskDto> > CreateNewTask([FromBody] EmployeeTaskAddDto employeeTask) { var entity = _mapper.Map <EmployeeTask>(employeeTask); _employeeTaskRepository.AddTask(entity); await _employeeTaskRepository.SaveAsync(); var employeeTaskDto = _mapper.Map <EmployeeTaskDto>(entity); return(CreatedAtRoute(nameof(GetTaskByTaskId), routeValues: new { //这里必须要给employeeId一个空值,因为路径是api/employees/{employeeId}/employeetask, //ApiController会去找employeeId,如果没有空值路由的{employeeId}段会砍掉就找不到查看的url了 //后来我把ApiController这一层级的route改了,就不用加这个空employeeId了!!! //employeeId = Guid.Empty, taskId = employeeTaskDto.taskId }, value: employeeTaskDto)); }
public async Task <ActionResult <EmployeeTaskDto> > CreateNewTaskForEmployee(Guid employeeId, [FromBody] EmployeeTaskAddDto employeeTask) { //EmployeeExistAsync返回类型是task<bool>,这里是异步的,所以要await if (!await _employeeRepository.EmployeeExistAsync(employeeId)) { return(NotFound()); } var entity = _mapper.Map <EmployeeTask>(employeeTask); _employeeTaskRepository.AddTask(employeeId, entity); await _employeeTaskRepository.SaveAsync(); var employeeTaskDto = _mapper.Map <EmployeeTaskDto>(entity); return(CreatedAtRoute(nameof(GetTaskByTaskId), routeValues: new { //employeeId = employeeId, taskId = employeeTaskDto.taskId }, value: employeeTaskDto)); }