public string GetCurrentUserEmailAddressOrNull() { try { using (var currentUser = GenericComObjectWrapper.Create(_nameSpace.CurrentUser)) { if (currentUser.Inner != null) { using (var addressEntry = GenericComObjectWrapper.Create(currentUser.Inner.AddressEntry)) { if (addressEntry.Inner != null) { return(OutlookUtility.GetEmailAdressOrNull(addressEntry.Inner, NullEntitySynchronizationLogger.Instance, s_logger) ?? string.Empty); } } } } } catch (COMException ex) { s_logger.Error("Can't access currentuser email adress.", ex); } return(null); }
public Task <DistributionList> Map1To2(IDistListItemWrapper source, DistributionList target, IEntityMappingLogger logger, DistributionListSychronizationContext context) { target.Members.Clear(); target.NonAddressBookMembers.Clear(); target.Name = source.Inner.DLName; target.Description = source.Inner.Body; try { using (var userPropertiesWrapper = GenericComObjectWrapper.Create(source.Inner.UserProperties)) { using (var userProperty = GenericComObjectWrapper.Create(userPropertiesWrapper.Inner.Find("NICKNAME"))) { target.Nickname = userProperty.Inner?.Value.ToString(); } } } catch (COMException ex) { s_logger.Warn("Can't access UserProperty of Distribution List!", ex); logger.LogMappingWarning("Can't access UserProperty of Distribution List!", ex); } for (int i = 1; i <= source.Inner.MemberCount; i++) { try { using (var recipientWrapper = GenericComObjectWrapper.Create(source.Inner.GetMember(i))) { var serverFileName = context.GetServerFileNameByEmailAddress(recipientWrapper.Inner.Address); if (serverFileName != null) { var nameWithoutEmail = OutlookUtility.RemoveEmailFromName(recipientWrapper.Inner); var distributionListMember = new KnownDistributionListMember(recipientWrapper.Inner.Address, nameWithoutEmail, serverFileName); target.Members.Add(distributionListMember); } else { var distributionListMember = new DistributionListMember(recipientWrapper.Inner.Address, recipientWrapper.Inner.Name); target.NonAddressBookMembers.Add(distributionListMember); } } } catch (COMException ex) { s_logger.Warn("Can't access member of Distribution List!", ex); logger.LogMappingWarning("Can't access member of Distribution List!", ex); } } return(Task.FromResult(target)); }
private bool IsServerIdentityOrganizer(AppointmentItem appointment) { using (var organizerWrapper = GenericComObjectWrapper.Create( OutlookUtility.GetEventOrganizerOrNull(appointment, NullEntitySynchronizationLogger.Instance, s_logger, _outlookMajorVersion) )) { var organizerEmail = OutlookUtility.GetEmailAdressOrNull(organizerWrapper.Inner, NullEntitySynchronizationLogger.Instance, s_logger) ?? OutlookUtility.GetSenderEmailAddressOrNull(appointment, NullEntitySynchronizationLogger.Instance, s_logger); return(string.Compare(organizerEmail, _serverEmailAddress, StringComparison.OrdinalIgnoreCase) == 0); } }
public Task <vCard> Map1To2(IDistListItemWrapper source, vCard target, IEntityMappingLogger logger, DistributionListSychronizationContext context) { target.Members.Clear(); target.FormattedName = source.Inner.DLName; target.FamilyName = source.Inner.DLName; target.AccessClassification = CommonEntityMapper.MapPrivacy1To2(source.Inner.Sensitivity); target.Categories.Clear(); if (!string.IsNullOrEmpty(source.Inner.Categories)) { Array.ForEach( source.Inner.Categories.Split(new[] { CultureInfo.CurrentCulture.TextInfo.ListSeparator }, StringSplitOptions.RemoveEmptyEntries), c => target.Categories.Add(c.Trim()) ); } target.Notes.Clear(); if (!string.IsNullOrEmpty(source.Inner.Body)) { target.Notes.Add(new vCardNote(source.Inner.Body)); } for (int i = 1; i <= source.Inner.MemberCount; i++) { try { using (var recipientWrapper = GenericComObjectWrapper.Create(source.Inner.GetMember(i))) { var nameWithoutEmail = OutlookUtility.RemoveEmailFromName(recipientWrapper.Inner); var targetMember = CreateVCardMemberOrNull(recipientWrapper, nameWithoutEmail, context, logger, s_logger); if (targetMember != null) { target.Members.Add(targetMember); } } } catch (COMException ex) { s_logger.Warn("Can't access member of Distribution List!", ex); logger.LogMappingWarning("Can't access member of Distribution List!", ex); } } return(Task.FromResult(target)); }
public SynchronizerFactory( Func <Guid, string> profileDataDirectoryFactory, ITotalProgressFactory totalProgressFactory, NameSpace outlookSession, TimeSpan calDavConnectTimeout, IDaslFilterProvider daslFilterProvider, IOutlookAccountPasswordProvider outlookAccountPasswordProvider) { if (outlookAccountPasswordProvider == null) { throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); } _outlookEmailAddress = string.Empty; try { using (var currentUser = GenericComObjectWrapper.Create(outlookSession.CurrentUser)) { if (currentUser.Inner != null) { using (var addressEntry = GenericComObjectWrapper.Create(currentUser.Inner.AddressEntry)) { if (addressEntry.Inner != null) { _outlookEmailAddress = OutlookUtility.GetEmailAdressOrNull(addressEntry.Inner, NullEntitySynchronizationLogger.Instance, s_logger) ?? string.Empty; } } } } } catch (COMException ex) { s_logger.Error("Can't access currentuser email adress.", ex); } _totalProgressFactory = totalProgressFactory; _outlookSession = outlookSession; _calDavConnectTimeout = calDavConnectTimeout; _daslFilterProvider = daslFilterProvider; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _profileDataDirectoryFactory = profileDataDirectoryFactory; }
private static void GetValidContactsFromXdb(XConnectClient client) { HttpServiceHelper obj = new HttpServiceHelper(); var listOfEmails = OutlookUtility.ReadEmailsFromInbox(); var emailList = JsonConvert.DeserializeObject <List <OutlookEmailModel> >(listOfEmails); if (emailList == null) { return; } bool isvalidUser = false; foreach (var outlookEmailModel in emailList) { isvalidUser = SearchContacts(client, outlookEmailModel.EmailFrom); if (isvalidUser) { string LUISAppUrl = ConfigurationManager.AppSettings[Constants.CognitiveServiceOleChatLUISAppUrl]; string oleAppId = ConfigurationManager.AppSettings[Constants.CognitiveServiceOleChatOleAppId]; string oleAppkey = ConfigurationManager.AppSettings[Constants.CognitiveServiceOleChatOleAppkey]; string apiToTrigger = ConfigurationManager.AppSettings[Constants.APIToTriggerGoals]; var query = String.Concat(LUISAppUrl, oleAppId, "", oleAppkey, "" + outlookEmailModel.EmailBody); var data = obj.GetServiceResponse <LuisResult>(query, false); if (data != null) { outlookEmailModel.Intent = data.TopScoringIntent.Intent.ToLower(); // Call sitecore api controller to trigger call; obj.HttpGet(apiToTrigger); } } } }