Пример #1
0
 internal PublishingSubscriptionData(VersionedId id, string dataType, Uri publishingUrl, string remoteFolderName, StoreObjectId localFolderId)
 {
     this.Id               = id;
     this.DataType         = SharingDataType.FromPublishName(dataType);
     this.PublishingUrl    = publishingUrl;
     this.RemoteFolderName = remoteFolderName;
     this.LocalFolderId    = localFolderId;
     this.Key              = new PublishingSubscriptionKey(this.PublishingUrl);
 }
Пример #2
0
        private void ReadFromMessageXProperties(MessageItem messageItem)
        {
            string valueOrDefault = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingFlavor, null);

            if (valueOrDefault == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: XSharingFlavor is missing", messageItem.Session.UserLegacyDN);
                throw new InvalidSharingMessageException("XSharingFlavor");
            }
            try
            {
                this.context.SharingFlavor = (SharingFlavor)int.Parse(valueOrDefault, NumberStyles.HexNumber);
            }
            catch (FormatException)
            {
                ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: XSharingFlavor is invalid: {1}", messageItem.Session.UserLegacyDN, valueOrDefault);
                throw new InvalidSharingMessageException("XSharingFlavor");
            }
            string valueOrDefault2 = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingRemoteType, null);

            if (valueOrDefault2 == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: XSharingRemoteType is missing.", messageItem.Session.UserLegacyDN);
                throw new InvalidSharingMessageException("XSharingRemoteType");
            }
            if (SharingDataType.FromPublishName(valueOrDefault2) == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: XSharingRemoteType is invalid: {1}.", messageItem.Session.UserLegacyDN, valueOrDefault2);
                throw new InvalidSharingMessageException("XSharingRemoteType");
            }
            string valueOrDefault3 = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingLocalType, null);

            if (valueOrDefault3 == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: XSharingLocalType is missing.", messageItem.Session.UserLegacyDN);
                throw new InvalidSharingMessageException("XSharingLocalType");
            }
            if (SharingDataType.FromContainerClass(valueOrDefault3) == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: XSharingLocalType is invalid: {1}.", messageItem.Session.UserLegacyDN, valueOrDefault3);
                throw new InvalidSharingMessageException("XSharingLocalType");
            }
            this.context.FolderClass = valueOrDefault3;
            string valueOrDefault4 = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingRemoteName, null);

            if (valueOrDefault4 == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: XSharingRemoteName is missing.", messageItem.Session.UserLegacyDN);
                throw new InvalidSharingMessageException("XSharingRemoteName");
            }
            this.context.FolderName = valueOrDefault4;
            Uri    uri             = null;
            string valueOrDefault5 = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingBrowseUrl, null);

            if (string.IsNullOrEmpty(valueOrDefault5))
            {
                ExTraceGlobals.SharingTracer.TraceDebug <string>((long)this.GetHashCode(), "{0}: XSharingBrowseUrl is missing or empty.", messageItem.Session.UserLegacyDN);
            }
            else
            {
                if (!PublishingUrl.IsAbsoluteUriString(valueOrDefault5, out uri))
                {
                    ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: XSharingBrowseUrl is not well formed : {1}", messageItem.Session.UserLegacyDN, valueOrDefault5);
                    throw new InvalidSharingMessageException("XSharingBrowseUrl");
                }
                this.context.BrowseUrl = valueOrDefault5;
            }
            string valueOrDefault6 = messageItem.GetValueOrDefault <string>(InternalSchema.XSharingRemotePath, null);

            if (valueOrDefault6 == null)
            {
                ExTraceGlobals.SharingTracer.TraceError <string>((long)this.GetHashCode(), "{0}: XSharingRemotePath is missing.", messageItem.Session.UserLegacyDN);
                throw new InvalidSharingMessageException("XSharingRemotePath");
            }
            if (!PublishingUrl.IsAbsoluteUriString(valueOrDefault6, out uri))
            {
                ExTraceGlobals.SharingTracer.TraceError <string, string>((long)this.GetHashCode(), "{0}: XSharingRemotePath is not well formed : {1}", messageItem.Session.UserLegacyDN, valueOrDefault6);
                throw new InvalidSharingMessageException("XSharingRemotePath");
            }
            this.context.ICalUrl = valueOrDefault6;
        }