示例#1
0
        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));
        }