public async Task <ResponseModel <long> > CreateRecruiterProcess(RecruiterProcesses recruiterProcesses, long userId) { var response = new ResponseModel <long>(); if (recruiterProcesses.Technologies == null && recruiterProcesses.Technologies.Count == 0) { throw new BadRequestCustomException("Debe indicar las tecnologias del proceso de reclutamiento", ""); } if (string.IsNullOrEmpty(recruiterProcesses.Description)) { throw new BadRequestCustomException("Debe indicar la descripción del proceso", ""); } if (recruiterProcesses.ParentTechnologyId == 0) { throw new BadRequestCustomException("Debe indicar la tecnologia principal de proceso", ""); } var parentTechnology = await Repositories.TechnologiesRepository.GetSingleByIdAsync(recruiterProcesses.ParentTechnologyId); if (parentTechnology == null) { throw new NotFoundCustomException("No se encontro la tecnologia del proceso", ""); } var process = Mapper.Map <Entities.RecruiterProcesses>(recruiterProcesses); process.UserId = userId; process.State = true; process.RecruiterProcessTechnologies = recruiterProcesses.Technologies.Select(t => new Entities.RecruiterProcessTechnologies { TechnologyId = t.TechnologyId, State = true }).ToList(); Repositories.RecruiterProcessesRepository.Save(process); await UnitOfWork.CommitAsync(); response.Data = process.RecruiterProcessId; response.Success = true; return(response); }
public async Task <IActionResult> Post([FromBody] RecruiterProcesses model) { var response = await Services.RecruiterProcessesService.CreateRecruiterProcess(model, CurrentUserId); return(Ok(response)); }