static void Main(string[] args) { int userCount = 1; try { if (Convert.ToBoolean(ConfigurationManager.AppSettings["TESTRUN"])) { LogMessage(string.Format("******** RUNNING IN TEST RUN MODE **********"), LogLevel.Debug); } LogMessage(string.Format("Connecting to My Site Host: '{0}'...", ConfigurationManager.AppSettings["MYSITEHOSTURL"]), LogLevel.Info); using (SPSite mySite = new SPSite(ConfigurationManager.AppSettings["MYSITEHOSTURL"])) { LogMessage(string.Format("Connecting to My Site Host: '{0}'...Done!", ConfigurationManager.AppSettings["MYSITEHOSTURL"]), LogLevel.Info); LogMessage(string.Format("getting Service Context..."), LogLevel.Info); SPServiceContext svcContext = SPServiceContext.GetContext(mySite); LogMessage(string.Format("getting Service Context...Done!"), LogLevel.Info); LogMessage(string.Format("Connecting to Profile Manager..."), LogLevel.Info); UserProfileManager profileManager = new UserProfileManager(svcContext); LogMessage(string.Format("Connecting to Profile Manager...Done!"), LogLevel.Info); // Presize List with Number of Profiles... List <UserProfileData> pData = new List <UserProfileData>(Convert.ToInt32(profileManager.Count)); // Initialize Serialization Class... UserProfileCollection ups = new UserProfileCollection(); foreach (UserProfile spUser in profileManager) { // Get Profile Information LogMessage(string.Format("processing user '{0}' of {1}...", userCount, profileManager.Count), LogLevel.Info); UserProfileData userData = new UserProfileData(); userData.UserName = GetSingleValuedProperty(spUser, "WorkEmail"); if (userData.UserName != string.Empty) { userData.AboutMe = GetSingleValuedProperty(spUser, "AboutMe"); userData.AskMeAbout = GetMultiValuedProperty(spUser, "SPS-Responsibility"); pData.Add(userData); // Add to Serilization Class List of Profiles ups.ProfileData = pData; } LogMessage(string.Format("processing user '{0}' of {1}...Done!", userCount++, profileManager.Count), LogLevel.Info); // Only processing the First item if we are in test mode... if (Convert.ToBoolean(ConfigurationManager.AppSettings["TESTRUN"])) { break; } } // Serialize profiles to disk... ups.Save(); } } catch (Exception ex) { LogMessage("Exception trying to get profile properties:\n" + ex.Message, LogLevel.Error); } }
static void Main(string[] args) { int userCount = 1; try { if (Convert.ToBoolean(ConfigurationManager.AppSettings["TESTRUN"])) { LogMessage(string.Format("******** RUNNING IN TEST RUN MODE **********"), LogLevel.Debug); } LogMessage(string.Format("Connecting to My Site Host: '{0}'...", ConfigurationManager.AppSettings["MYSITEHOSTURL"]), LogLevel.Info); using (SPSite mySite = new SPSite(ConfigurationManager.AppSettings["MYSITEHOSTURL"])) { LogMessage(string.Format("Connecting to My Site Host: '{0}'...Done!", ConfigurationManager.AppSettings["MYSITEHOSTURL"]), LogLevel.Info); LogMessage(string.Format("getting Service Context..."), LogLevel.Info); SPServiceContext svcContext = SPServiceContext.GetContext(mySite); LogMessage(string.Format("getting Service Context...Done!"), LogLevel.Info); LogMessage(string.Format("Connecting to Profile Manager..."), LogLevel.Info); UserProfileManager profileManager = new UserProfileManager(svcContext); LogMessage(string.Format("Connecting to Profile Manager...Done!"), LogLevel.Info); // Presize List with Number of Profiles... List<UserProfileData> pData = new List<UserProfileData>(Convert.ToInt32(profileManager.Count)); // Initialize Serialization Class... UserProfileCollection ups = new UserProfileCollection(); foreach (UserProfile spUser in profileManager) { // Get Profile Information LogMessage(string.Format("processing user '{0}' of {1}...", userCount,profileManager.Count),LogLevel.Info); UserProfileData userData = new UserProfileData(); userData.UserName = GetSingleValuedProperty(spUser, "WorkEmail"); if (userData.UserName != string.Empty) { userData.AboutMe = GetSingleValuedProperty(spUser, "AboutMe"); userData.AskMeAbout = GetMultiValuedProperty(spUser, "SPS-Responsibility"); pData.Add(userData); // Add to Serilization Class List of Profiles ups.ProfileData = pData; } LogMessage(string.Format("processing user '{0}' of {1}...Done!", userCount++, profileManager.Count), LogLevel.Info); // Only processing the First item if we are in test mode... if (Convert.ToBoolean(ConfigurationManager.AppSettings["TESTRUN"])) { break; } } // Serialize profiles to disk... ups.Save(); } } catch(Exception ex) { LogMessage("Exception trying to get profile properties:\n" + ex.Message, LogLevel.Error); } }