internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { if (!AddressBookEntryId.IsAddressBookEntryId(context.InitiatorEntryId)) { ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: InitiatorEntryId is invalid.", context.UserLegacyDN); throw new InvalidSharingDataException("InitiatorEntryId", HexConverter.ByteArrayToHexString(context.InitiatorEntryId)); } if (!string.IsNullOrEmpty(sharingMessageProvider.FolderId)) { try { context.FolderId = StoreObjectId.FromHexEntryId(sharingMessageProvider.FolderId, ObjectClass.GetObjectType(context.FolderClass)); } catch (CorruptDataException) { ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: FolderId is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.FolderId); throw new InvalidSharingDataException("FolderId", sharingMessageProvider.FolderId); } } if (!string.IsNullOrEmpty(sharingMessageProvider.MailboxId)) { byte[] array = HexConverter.HexStringToByteArray(sharingMessageProvider.MailboxId); if (StoreEntryId.TryParseStoreEntryIdMailboxDN(array) == null) { ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: MailboxId is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.MailboxId); throw new InvalidSharingDataException("MailboxId", sharingMessageProvider.MailboxId); } context.MailboxId = array; } }
internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { Uri uri = null; if (!PublishingUrl.IsAbsoluteUriString(sharingMessageProvider.BrowseUrl, out uri)) { ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: BrowseUrl is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.BrowseUrl); throw new InvalidSharingDataException("BrowseUrl", sharingMessageProvider.BrowseUrl); } context.BrowseUrl = sharingMessageProvider.BrowseUrl; if (context.DataType == SharingDataType.Calendar) { if (string.IsNullOrEmpty(sharingMessageProvider.ICalUrl)) { ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: ICalUrl is missing: {1}", context.UserLegacyDN, sharingMessageProvider.ICalUrl); throw new InvalidSharingDataException("ICalUrl", string.Empty); } if (!PublishingUrl.IsAbsoluteUriString(sharingMessageProvider.ICalUrl, out uri)) { ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: ICalUrl is invalid: {1}", context.UserLegacyDN, sharingMessageProvider.ICalUrl); throw new InvalidSharingDataException("ICalUrl", sharingMessageProvider.ICalUrl); } context.ICalUrl = sharingMessageProvider.ICalUrl; } }
internal SharingMessageProvider CreateSharingMessageProvider(SharingContext context) { Util.ThrowOnNullArgument(context, "context"); SharingMessageProvider sharingMessageProvider = this.CreateSharingMessageProvider(); this.sharingProviderHandler.FillSharingMessageProvider(context, sharingMessageProvider); return(sharingMessageProvider); }
internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { sharingMessageProvider.BrowseUrl = context.BrowseUrl.ToString(); if (context.ICalUrl != null) { sharingMessageProvider.ICalUrl = context.ICalUrl.ToString(); } }
private SharingMessageAction CreateRequestAction() { List <SharingMessageProvider> list = new List <SharingMessageProvider>(this.context.AvailableSharingProviders.Count); foreach (KeyValuePair <SharingProvider, CheckRecipientsResults> keyValuePair in this.context.AvailableSharingProviders) { SharingProvider key = keyValuePair.Key; CheckRecipientsResults value = keyValuePair.Value; if (key != SharingProvider.SharingProviderPublish && value != null && value.ValidRecipients != null && value.ValidRecipients.Length > 0) { SharingMessageProvider sharingMessageProvider = key.CreateSharingMessageProvider(); sharingMessageProvider.TargetRecipients = value.TargetRecipients; list.Add(sharingMessageProvider); } } return(new SharingMessageAction { Providers = list.ToArray() }); }
private SharingMessageAction CreateInvitationAction() { List <SharingMessageProvider> list = new List <SharingMessageProvider>(this.context.AvailableSharingProviders.Count); foreach (KeyValuePair <SharingProvider, CheckRecipientsResults> keyValuePair in this.context.AvailableSharingProviders) { SharingProvider key = keyValuePair.Key; CheckRecipientsResults value = keyValuePair.Value; if (value != null && value.ValidRecipients != null && value.ValidRecipients.Length > 0) { SharingMessageProvider sharingMessageProvider = key.CreateSharingMessageProvider(this.context); sharingMessageProvider.TargetRecipients = value.TargetRecipients; list.Add(sharingMessageProvider); } } return(new SharingMessageAction { Title = (this.context.IsPrimary ? null : this.context.FolderName), Providers = list.ToArray() }); }
internal abstract void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider);
internal void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { Util.ThrowOnNullArgument(context, "context"); Util.ThrowOnNullArgument(sharingMessageProvider, "sharingMessageProvider"); this.sharingProviderHandler.ParseSharingMessageProvider(context, sharingMessageProvider); }
internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { sharingMessageProvider.FolderId = context.FolderId.ToHexEntryId(); sharingMessageProvider.MailboxId = HexConverter.ByteArrayToHexString(context.MailboxId); }
internal override void ParseSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { context.FolderEwsId = sharingMessageProvider.FolderId; context.EncryptedSharedFolderDataCollection = sharingMessageProvider.EncryptedSharedFolderDataCollection; }
internal override void FillSharingMessageProvider(SharingContext context, SharingMessageProvider sharingMessageProvider) { sharingMessageProvider.FolderId = context.FolderEwsId; sharingMessageProvider.EncryptedSharedFolderDataCollection = context.EncryptedSharedFolderDataCollection; }