public async Task RemoveEmployee(Guid serviceRequestId, AssignEmployeeRequest dto) { var employeeId = new Guid(dto.EmployeeId); var serviceEmployee = await _unitOfWork.ServiceRequestEmployees.Get(serviceRequestId, employeeId); // validate if (serviceEmployee is null) { throw new KeyNotFoundException("Employee is not assigned to this service."); } _unitOfWork.ServiceRequestEmployees.Remove(serviceEmployee); _unitOfWork.Commit(); }
public async Task AssignEmployee(Guid serviceRequestId, AssignEmployeeRequest dto) { var employeeId = new Guid(dto.EmployeeId); var employee = await _unitOfWork.Employees.Get(employeeId); var serviceEmployee = await _unitOfWork.ServiceRequestEmployees.Get(serviceRequestId, employeeId); var serviceRequest = await _unitOfWork.ServiceRequests.Get(serviceRequestId); // validate if (employee is null) { throw new AppException("Employee does not exist."); } if (serviceRequest is null) { throw new AppException("Service request does not exist."); } if (serviceEmployee is not null) { throw new AppException("Employee is already assigned to this service."); } var newServiceEmployee = new ServiceRequestEmployee() { ServiceRequestId = serviceRequestId, EmployeeId = employeeId }; if (serviceRequest.Status == Status.New) { serviceRequest.Status = Status.Assigned; } _unitOfWork.ServiceRequestEmployees.Add(newServiceEmployee); _unitOfWork.Commit(); }
public async Task <ActionResult <GetMaterialResponse> > AssignEmployee(Guid serviceRequestId, [FromBody] AssignEmployeeRequest dto) { await _serviceRequestService.AssignEmployee(serviceRequestId, dto); return(NoContent()); }