// Update 'Visa Status' field for the current user public async Task UpdateTalentJobSeekingStatusAsync(string userId, JobSeekingStatus jobSeekingStatus) { var user = (await GetTalentByIDAsync(userId)); user.JobSeekingStatus.Status = jobSeekingStatus.Status; user.JobSeekingStatus.AvailableDate = jobSeekingStatus.AvailableDate; await _talentRepository.Update(user); }
public async Task <bool> UpdateTalentProfile(TalentProfileViewModel model, string updaterId) { try { if (model.Id != null) { User existingUser = (await _userRepository.GetByIdAsync(model.Id)); var newSkills = new List <UserSkill>(); foreach (var item in model.Skills) { if (item != null) { var skill = existingUser.Skills.SingleOrDefault(x => x.Id == item.Id); if (skill == null) { skill = new UserSkill { Id = ObjectId.GenerateNewId().ToString(), IsDeleted = false }; } UpdateSkillFromView(item, skill); newSkills.Add(skill); } } var newLanguages = new List <UserLanguage>(); foreach (var item in model.Languages) { if (item != null) { var language = existingUser.Languages.SingleOrDefault(x => x.Id == item.Id); if (language == null) { language = new UserLanguage { Id = ObjectId.GenerateNewId().ToString(), UserId = existingUser.Id, IsDeleted = false }; } UpdateLanguageFromView(item, language); newLanguages.Add(language); } } var newExperiences = new List <UserExperience>(); foreach (var item in model.Experience) { if (item != null) { var experience = existingUser.Experience.SingleOrDefault(x => x.Id == item.Id); if (experience == null) { experience = new UserExperience { Id = ObjectId.GenerateNewId().ToString() }; } UpdateExperienceFromView(item, experience); newExperiences.Add(experience); } } var jobSeekStatus = new JobSeekingStatus(); jobSeekStatus.Status = model.JobSeekingStatus.Status; existingUser.Id = model.Id; existingUser.FirstName = model.FirstName; existingUser.MiddleName = model.MiddleName; existingUser.LastName = model.LastName; existingUser.Gender = model.Gender; existingUser.Phone = model.Phone; existingUser.MobilePhone = model.MobilePhone; existingUser.IsMobilePhoneVerified = model.IsMobilePhoneVerified; existingUser.Email = model.Email; existingUser.Address = model.Address; existingUser.Nationality = model.Nationality; existingUser.VisaStatus = model.VisaStatus; existingUser.VisaExpiryDate = model.VisaExpiryDate; existingUser.Description = model.Description; existingUser.Summary = model.Summary; existingUser.ProfilePhoto = model.ProfilePhoto; existingUser.ProfilePhotoUrl = model.ProfilePhotoUrl; existingUser.JobSeekingStatus = model.JobSeekingStatus; existingUser.LinkedAccounts = model.LinkedAccounts; existingUser.UpdatedBy = updaterId; existingUser.UpdatedOn = DateTime.Now; existingUser.Skills = newSkills; existingUser.Languages = newLanguages; existingUser.Experience = newExperiences; await _userRepository.Update(existingUser); return(true); } return(false); } catch (MongoException e) { return(false); } }