public async Task <IActionResult> PostRootJobs(Guid siteId, [FromBody] RootJobCreateRequestDto model) { var oid = _authService.GetRequestOid(Request); var site = await _appDbContext.Sites.FirstOrDefaultAsync(s => s.Id == siteId && s.IsActive && s.Oid == oid); if (site != null) { var mappedJob = _mapper.Map <Job>(model); var user = await _userManager.GetUserAsync(User); await _resourceService.CreateJobAsync(site, mappedJob, oid, user, true); await _resourceService.FlushCacheForNewRootJobAsync(Request, Url, oid); return(CreatedAtRoute(nameof(JobsController.GetJobsDetail), new { jobId = mappedJob.Id }, _mapper.Map <JobReadResponseDto>(mappedJob))); } return(NotFound()); }
public async Task <IActionResult> PostJobs([FromBody] NonRootJobCreateRequestDto model) { var oid = _authService.GetRequestOid(Request); var parentJob = await _appDbContext.Jobs.FirstOrDefaultAsync(j => j.Oid == oid && j.IsActive && j.Id == model.ParentJobId); if (parentJob != null) { var mappedJob = _mapper.Map <Job>(model); var user = await _userManager.GetUserAsync(User); var site = await _appDbContext.Sites.FirstOrDefaultAsync(s => s.Id == parentJob.SiteId); await _resourceService.CreateJobAsync(site, mappedJob, oid, user, false); // Not a root job, the parentJobId is already mapped in by the IMapper, so IsRoot = false. await _resourceService.FlushCacheForNewNonRootJobAsync(Request, Url, oid, parentJob.Id); return(CreatedAtRoute(nameof(GetJobsDetail), new { jobId = mappedJob.Id }, _mapper.Map <JobReadResponseDto>(mappedJob))); } return(NotFound()); }