public Tuple <bool, string> FixMissingUserNames() { bool success = true; string result = String.Empty; var missingProfileNames = _departmentMembersRepository.GetAllUserProfilesWithEmptyNames(); foreach (var missingProfile in missingProfileNames) { try { var profile = _userProfileService.GetUserProfileForEditing(missingProfile.UserId); var user = _usersService.GetUserById(missingProfile.UserId); var webProfile = ProfileBase.Create(user.UserName, true); if (webProfile != null) { var firstName = webProfile.GetPropertyValue("FirstName").ToString(); var lastName = webProfile.GetPropertyValue("LastName").ToString(); if (!String.IsNullOrWhiteSpace(firstName) && !String.IsNullOrWhiteSpace(lastName)) { profile.FirstName = firstName; profile.LastName = lastName; } else { var name = webProfile.GetPropertyValue("Name").ToString(); if (!String.IsNullOrWhiteSpace(name)) { profile.FirstName = name; } } } else { profile.FirstName = "Unknown"; profile.LastName = "User"; } _userProfileService.SaveProfile(missingProfile.DepartmentId, profile); } catch (Exception ex) { success = false; result = ex.ToString(); } } var departmentIds = missingProfileNames.Select(x => x.DepartmentId).Distinct(); foreach (var departmentId in departmentIds) { _userProfileService.ClearAllUserProfilesFromCache(departmentId); var profiles = _userProfileService.GetAllProfilesForDepartment(departmentId); } return(new Tuple <bool, string>(success, result)); }