public IWebServiceBinding GetEwsBinding(DirectoryContext directoryContext)
        {
            IClientProxy clientProxy;

            switch (base.TrackingAuthorityKind)
            {
            case TrackingAuthorityKind.RemoteSiteInCurrentOrg:
            {
                ExchangeServiceBinding exchangeServiceBinding = new ExchangeServiceBinding("MessageTracking", WebServiceTrackingAuthority.noValidationCallback);
                this.SetAuthenticationMechanism(exchangeServiceBinding);
                exchangeServiceBinding.Proxy = new WebProxy();
                RemoteSiteInCurrentOrgTrackingAuthority remoteSiteInCurrentOrgTrackingAuthority = (RemoteSiteInCurrentOrgTrackingAuthority)this;
                exchangeServiceBinding.Url       = this.Uri.ToString();
                exchangeServiceBinding.UserAgent = WebServiceTrackingAuthority.EwsUserAgentString;
                exchangeServiceBinding.RequestServerVersionValue         = new RequestServerVersion();
                exchangeServiceBinding.RequestServerVersionValue.Version = VersionConverter.GetExchangeVersionType(remoteSiteInCurrentOrgTrackingAuthority.ServerVersion);
                exchangeServiceBinding.CookieContainer = new CookieContainer();
                clientProxy = new ClientProxyEWS(exchangeServiceBinding, this.Uri, remoteSiteInCurrentOrgTrackingAuthority.ServerVersion);
                break;
            }

            case TrackingAuthorityKind.RemoteForest:
                clientProxy = new ClientProxyRD(directoryContext, this.ProxyRecipient, this.Domain, ExchangeVersion.Exchange2010);
                break;

            case TrackingAuthorityKind.RemoteTrustedOrg:
                clientProxy = new ClientProxyRD(directoryContext, this.ProxyRecipient, this.Domain, ExchangeVersion.Exchange2010_SP1);
                break;

            default:
                throw new NotImplementedException();
            }
            return(new WebServiceBinding(clientProxy, directoryContext, this));
        }
示例#2
0
        public override IService CreateService(WebServiceUri webServiceUri, TargetServerVersion targetVersion, RequestType requestType)
        {
            Service service = new Service(webServiceUri);

            service.RequestServerVersionValue         = new RequestServerVersion();
            service.RequestServerVersionValue.Version = VersionConverter.GetRdExchangeVersionType(service.ServiceVersion);
            return(service);
        }
 public override IAsyncResult BeginProxyWebRequest(IService service, MailboxData[] mailboxArray, AsyncCallback callback, object asyncState)
 {
     TraceWrapper.SearchLibraryTracer.TraceDebug(this.traceId, "Entering FindMessageTrackingApplication.BeginProxyWebRequest", new object[0]);
     if (Testability.WebServiceCredentials != null)
     {
         service.Credentials = Testability.WebServiceCredentials;
         ServicePointManager.ServerCertificateValidationCallback = ((object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) => true);
     }
     service.RequestServerVersionValue.Version = VersionConverter.GetRdExchangeVersionType(service.ServiceVersion);
     return(service.BeginFindMessageTrackingReport(this.request.PrepareRDRequest(service.ServiceVersion), callback, asyncState));
 }
        public static Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.ExchangeVersionType GetRdExchangeVersionType(int serverVersion)
        {
            switch (VersionConverter.GetExchangeVersionType(serverVersion))
            {
            case Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType.Exchange2010:
                return(Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.ExchangeVersionType.Exchange2010);

            case Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType.Exchange2010_SP1:
                return(Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.ExchangeVersionType.Exchange2010_SP1);

            case Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType.Exchange2013:
                return(Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.ExchangeVersionType.Exchange2012);
            }
            throw new InvalidOperationException("Unexpected version type.");
        }
 private RecipientTrackingEvent(string domain, SmtpAddress recipientAddress, string recipientDisplayName, DeliveryStatus status, EventType eventType, EventDescription eventDescription, string[] rawEventData, string serverFqdn, DateTime date, long internalMessageId, string uniquePathId, bool hiddenRecipient, bool?bccRecipient, string rootAddress, bool parseEventData, TrackingExtendedProperties trackingExtendedProperties)
 {
     this.domain               = domain;
     this.recipientAddress     = recipientAddress;
     this.recipientDisplayName = recipientDisplayName;
     this.status               = status;
     this.eventType            = eventType;
     this.eventDescription     = eventDescription;
     this.server               = serverFqdn;
     this.date = date;
     this.internalMessageId  = internalMessageId;
     this.uniquePathId       = uniquePathId;
     this.hiddenRecipient    = hiddenRecipient;
     this.bccRecipient       = bccRecipient;
     this.rootAddress        = rootAddress;
     this.extendedProperties = trackingExtendedProperties;
     if (parseEventData)
     {
         VersionConverter.ConvertRawEventData(rawEventData, this);
         return;
     }
     this.eventData = rawEventData;
 }
 internal Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.FindMessageTrackingReportRequestType PrepareRDRequest(int version)
 {
     VersionConverter.Convert(this.request, version);
     return(MessageConverter.CopyEWSTypeToDispatcherType(this.request));
 }
 internal Microsoft.Exchange.SoapWebClient.EWS.FindMessageTrackingReportRequestType PrepareEWSRequest(int version)
 {
     VersionConverter.Convert(this.request, version);
     return(this.request);
 }
 public static void Convert(Microsoft.Exchange.SoapWebClient.EWS.GetMessageTrackingReportRequestType request, int version)
 {
     Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType exchangeVersionType  = VersionConverter.GetExchangeVersionType(version);
     Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType exchangeVersionType2 = exchangeVersionType;
     if (exchangeVersionType2 == Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType.Exchange2010)
     {
         request.Properties = null;
         return;
     }
     if (request.Properties != null && request.Properties.Length == 0)
     {
         request.Properties = null;
     }
 }
 public static void Convert(Microsoft.Exchange.SoapWebClient.EWS.FindMessageTrackingReportRequestType request, int version)
 {
     Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType exchangeVersionType  = VersionConverter.GetExchangeVersionType(version);
     Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType exchangeVersionType2 = exchangeVersionType;
     if (exchangeVersionType2 == Microsoft.Exchange.SoapWebClient.EWS.ExchangeVersionType.Exchange2010)
     {
         TrackingExtendedProperties trackingExtendedProperties = TrackingExtendedProperties.CreateFromTrackingPropertyArray(request.Properties);
         Options options = new Options(VersionConverter.BasicDiagnostics.Equals(request.DiagnosticsLevel, StringComparison.Ordinal), trackingExtendedProperties.ExpandTree, trackingExtendedProperties.SearchAsRecip, request.ServerHint);
         request.DiagnosticsLevel = options.ToString();
         request.ServerHint       = null;
         request.Properties       = null;
         return;
     }
     if (request.Properties != null && request.Properties.Length == 0)
     {
         request.Properties = null;
     }
 }
示例#10
0
 internal static void ConvertRawEventData(string[] rawEventData, RecipientTrackingEvent eventToConvert)
 {
     VersionConverter.ParseRawEventData(rawEventData, eventToConvert);
 }
示例#11
0
 public static MtrSchemaVersion GetMtrSchemaVersion(ServerInfo server)
 {
     return(VersionConverter.GetMtrSchemaVersion(server.AdminDisplayVersion));
 }