/// <summary> /// /// </summary> /// <param name="service"></param> /// <param name="webServiceURL"></param> /// <param name="behavior"></param> /// <param name="binding"></param> /// <param name="wsType"></param> private void AddWebService(WebServiceFactory service, string webServiceURL, SessionIdBehavior behavior, BasicHttpBinding binding, Type wsType) { // get the specific web service Url Uri wsUri = new Uri(PolarionUri, webServiceURL); // create a new web service object dynamic ws = Activator.CreateInstance(wsType, new Object[] { binding, new EndpointAddress(wsUri.ToString()) }); // adding a specific client behavior programmatically ws.Endpoint.Behaviors.Add(behavior); WebServices.Add(service, ws); }
/// <summary> /// Connect /// </summary> public void Connect() { // check if the web services are already existing if (WebServices != null) { return; } WebServices = new Dictionary <WebServiceFactory, dynamic>(); // instantiate the behavior class SessionIdBehavior behavior = new SessionIdBehavior(); // distinguish between http:// and https:// BasicHttpBinding binding = new BasicHttpBinding(); if (PolarionUri.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped).StartsWith(Strings.SECUREPROTOCOL)) { binding.Security.Mode = BasicHttpSecurityMode.Transport; // SecurityMode.Transport; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; } binding.MaxBufferPoolSize = long.MaxValue; binding.MaxBufferSize = int.MaxValue; binding.MaxReceivedMessageSize = int.MaxValue; binding.ReaderQuotas.MaxArrayLength = int.MaxValue; binding.ReaderQuotas.MaxBytesPerRead = int.MaxValue; binding.ReaderQuotas.MaxDepth = int.MaxValue; binding.ReaderQuotas.MaxStringContentLength = int.MaxValue; AddWebService(WebServiceFactory.Builder, Strings.BUILDERURL, behavior, binding, typeof(BuilderWebServiceClient)); AddWebService(WebServiceFactory.Project, Strings.PROJECTURL, behavior, binding, typeof(ProjectWebServiceClient)); AddWebService(WebServiceFactory.Security, Strings.SECURITYURL, behavior, binding, typeof(SecurityWebServiceClient)); AddWebService(WebServiceFactory.Session, Strings.SESSIONURL, behavior, binding, typeof(SessionWebServiceClient)); //AddWebService(WebServiceFactory.TestManagement, Strings.TESTMANAGEMENTURL, behavior, binding, typeof(TestManagementWebServiceClient)); AddWebService(WebServiceFactory.Tracker, Strings.TRACKERURL, behavior, binding, typeof(TrackerWebServiceClient)); }