Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 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;
 }
Esempio n. 4
0
        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.")));
        }
Esempio n. 5
0
        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));
        }