public async Task <ExperienceReadModel> AddExperience(ExperienceWriteModel command) { var user = await userRepository.GetByName(UserInfo.UserName); var userInfo = candidateRepository.GetById(user.Id); var experience = BuildExperienceModel(command); //TODO: Rename var currentPositionCandidates = experienceReadRepository .GetAll() .Where(x => !x.ToDate.HasValue && x.CandidateID == userInfo.Id); if (!currentPositionCandidates.Any()) { userInfo.CurrentPosition = command.Position; command.ShouldUpdateUserInfoPosition = true; } userInfo.Experience.Add(experience); await userRepository.Update(user); candidateRepository.Save(); return(new ExperienceReadModel(command)); }
private Experience BuildExperienceModel(ExperienceWriteModel source) { return(new Experience(source.CompanyName, source.Position, source.FromDate, source.ToDate, DateTime.UtcNow)); }
public ExperienceReadModel(ExperienceWriteModel source) { FromDate = source.FromDate; ToDate = source.ToDate; Position = source.Position; CompanyName = source.CompanyName; ShouldUpdateUserInfoPosition = source.ShouldUpdateUserInfoPosition; }
public async Task <IActionResult> UpdateExperience(ExperienceWriteModel experience) { if (ModelState.IsValid) { var newExperience = await experienceApplicationService.UpdateExperience(experience); return(PartialView("../Experience/_SingleExperiencePartial", newExperience)); } return(Json(new CommandExecutionResult <ExperienceReadModel>(ModelState.IsValid, "Please fill all required fields."))); }
public async Task <ExperienceReadModel> UpdateExperience(ExperienceWriteModel command) { var user = await userRepository.GetByName(UserInfo.UserName); var userInfo = candidateRepository.GetById(user.Id); var experienceEntity = BuildExperienceModel(command); var experience = experienceReadRepository.GetById(command.Id); experience.CompanyName = command.CompanyName; experience.FromDate = command.FromDate.Value; experience.ToDate = command.ToDate; experience.Position = command.Position; experienceUpdateRepository.Update(experience); experienceRepository.Save(); return(new ExperienceReadModel(experienceEntity)); }