public async Task <bool> CreatePosition(CreatePosition createPosition) { var loggedUser = await this.userRepository.GetByName(UserInfo.UserName); var company = this.companiesRepository.GetBydId(loggedUser.Id); try { var position = this.BuildPositionModel(createPosition); company.Positions.Add(position); await userRepository.Update(loggedUser); this.companiesRepository.Save(); var addedPosition = this.positionsReadRepository.GetById(position.PositionID); addedPosition.PositionSkill = createPosition.RequiredSkills.Select(x => new PositionSkill() { PositionId = addedPosition.PositionID, SkillId = x }).ToList(); this.companiesRepository.Save(); return(true); } catch (Exception ex) { this.logger.LogError(ex.InnerException, JsonConvert.SerializeObject(createPosition)); return(false); } }
public async Task <IActionResult> Create(CreatePosition createPosition) { if (ModelState.IsValid) { await this.positionsApplicationService.CreatePosition(createPosition); } return(RedirectToAction("All", "Positions", new { companyId = UserInfo.UserName })); }
private Position BuildPositionModel(CreatePosition createPosition) { return(new Position { Description = createPosition.Description, LookingFor = createPosition.LookingFor, MinimumYearsOfExperience = createPosition.MinimumYearsOfExperience, Responsibilities = createPosition.Responsibilities, WhatWeOffer = createPosition.WhatWeOffer, PositionName = createPosition.PositionName }); }