private void Init() { _log.Info("Início do processo: SharepointSyncJob"); var listItemListaTelefonicaProperties = new List <ItemListaTelefonicaProperties>(); using (ClientContext tenantContext = new ClientContext(_configuration.TenantUrl)) { SecureString passWord = new SecureString(); foreach (char c in _configuration.Password.ToCharArray()) { passWord.AppendChar(c); } tenantContext.Credentials = new SharePointOnlineCredentials(_configuration.EmailAccount, passWord); PeopleManager peopleManager = new PeopleManager(tenantContext); UserCollection users = tenantContext.Web.SiteUsers; tenantContext.Load(users); tenantContext.ExecuteQuery(); StringBuilder items = new StringBuilder(); string[] userProfileProperties = { UserProfileProperties.FirstName, UserProfileProperties.LastName, UserProfileProperties.PreferredName, UserProfileProperties.WorkEmail, UserProfileProperties.Pager, UserProfileProperties.Department, UserProfileProperties.CellPhone, UserProfileProperties.PictureURL, UserProfileProperties.Office, UserProfileProperties.IpPhone, UserProfileProperties.WorkPhone, UserProfileProperties.IpPhone, UserProfileProperties.AboutMe, UserProfileProperties.StreetAddress, UserProfileProperties.CityAddress, UserProfileProperties.StateAddress, UserProfileProperties.ZIPAddress, UserProfileProperties.CountryAddress, UserProfileProperties.SPS_Location, UserProfileProperties.Title, UserProfileProperties.Fax, UserProfileProperties.AccountName, }; foreach (string propertyKey in userProfileProperties) { items.Append(propertyKey); items.Append(","); } items.AppendLine(); _log.Info("A ler os Users profile: SharepointSyncJob"); foreach (User user in users) { try { if (user.PrincipalType != Microsoft.SharePoint.Client.Utilities.PrincipalType.User) { continue; } UserProfilePropertiesForUser userProfilePropertiesForUser = new UserProfilePropertiesForUser(tenantContext, user.LoginName, userProfileProperties); var profileProperties = peopleManager.GetUserProfilePropertiesFor(userProfilePropertiesForUser); tenantContext.Load(userProfilePropertiesForUser); tenantContext.ExecuteQuery(); var listProfileProperties = profileProperties.ToList(); if (listProfileProperties.Any()) { ItemListaTelefonicaProperties itemListaTelefonicaProperties = new ItemListaTelefonicaProperties(); itemListaTelefonicaProperties.FirstName = listProfileProperties[0]; itemListaTelefonicaProperties.LastName = listProfileProperties[1]; itemListaTelefonicaProperties.PreferredName = listProfileProperties[2]; itemListaTelefonicaProperties.Email = user.Email; itemListaTelefonicaProperties.Pager = listProfileProperties[4]; itemListaTelefonicaProperties.Department = listProfileProperties[5]; itemListaTelefonicaProperties.CellPhone = listProfileProperties[6]; itemListaTelefonicaProperties.Office = listProfileProperties[8]; itemListaTelefonicaProperties.WorkFax = listProfileProperties[9]; itemListaTelefonicaProperties.WorkPhone = listProfileProperties[10]; itemListaTelefonicaProperties.IpPhone = listProfileProperties[11]; itemListaTelefonicaProperties.AboutMe = listProfileProperties[12]; itemListaTelefonicaProperties.WorkAddress = listProfileProperties[13]; itemListaTelefonicaProperties.WorkCity = listProfileProperties[14]; itemListaTelefonicaProperties.WorkState = listProfileProperties[15]; itemListaTelefonicaProperties.WorkZip = listProfileProperties[16]; itemListaTelefonicaProperties.WorkCountry = listProfileProperties[17]; itemListaTelefonicaProperties.Company = listProfileProperties[18]; itemListaTelefonicaProperties.JobTitle = listProfileProperties[19]; itemListaTelefonicaProperties.WorkFax = listProfileProperties[20]; itemListaTelefonicaProperties.PictureURL = $"{this._configuration.TenantUrl}{PICTURE_URL}{ user.Email}"; listItemListaTelefonicaProperties.Add(itemListaTelefonicaProperties); } } catch (Exception ex) { _log.Error($"-> users no processo: SharepointSyncJob: {ex}", ex); } } InsertOrUpdateContactoToListContactos(listItemListaTelefonicaProperties); } _log.Info("Fim do processo: SharepointSyncJob"); }