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