Beispiel #1
0
        /// <summary>
        /// Sends request.
        /// </summary>
        void SendRequestInternal()
        {
            try
            {
                DeviceEnvironment   env = ContextController.GetDeviceEnvironment();
                CredentialsProvider cp  = new CredentialsProvider();
                cp.Security = ContextController.GetDebugInfo().Security;
                cp.Username = env.Credentials.UserName;
                cp.Password = env.Credentials.Password;

                HttpClient client = new HttpClient(_address, env.Timeouts.Message, _semaphore, cp);
                _requestPending = true;
                string response = client.SendSoapMessage(_request);
                if (!_shutdown)
                {
                    View.DisplayResponse(response);
                }
            }
            catch (Exception exc)
            {
                if (!_shutdown)
                {
                    View.DisplayResponse(exc.Message);
                }
            }
            finally
            {
                _requestPending = false;
                if (!_shutdown)
                {
                    ReportOperationCompleted();
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Adds "wsse:security" element to a message, or replaces existing element.
        /// </summary>
        /// <param name="request">Request string.</param>
        /// <returns>Request string with added (updated) "wsse:security" element.</returns>
        public string ApplySecurity(string request)
        {
            DeviceEnvironment env  = ContextController.GetDeviceEnvironment();
            DebugInfo         info = ContextController.GetDebugInfo();

            string secureRequest = request;

            if (info.Security == HttpTransport.Interfaces.Security.WS)
            {
                if (!string.IsNullOrEmpty(env.Credentials.UserName))
                {
                    SoapHelper soapHelper = new SoapHelper();
                    secureRequest =
                        soapHelper.ApplySecurity(
                            request,
                            env.Credentials.UserName,
                            env.Credentials.Password,
                            env.Credentials.UseUTCTimeStamp,
                            true);
                }
            }
            else
            {
                SoapHelper soapHelper = new SoapHelper();
                secureRequest = soapHelper.RemoveSecurity(request);
            }
            return(secureRequest);
        }
        public override void UpdateContext()
        {
            DoWithAll(controller => controller.UpdateContext());

            DebugInfo info = ContextController.GetDebugInfo();

            info.CapabilitiesExchange = View.CapabilitiesExchange;
            info.Security             = View.Security;
        }
        /// <summary>
        /// Creates client for PTZ service
        /// </summary>
        /// <param name="address">PTZ service address</param>
        void IntializePtzClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _ptzClient = new PTZServiceProvider(address, env.Timeouts.Message);
            _ptzClient.ExceptionThrown             += OnExceptionThrown;
            _ptzClient.OperationCompleted          += OnOperationCompleted;
            _ptzClient.OperationStarted            += OnOperationStarted;
            _ptzClient.Timeout                      = env.Timeouts.Message;
            _ptzClient.ResponseReceived            += OnResponseReceived;
            _ptzClient.OnPTZConfigurationsReceived += OnPTZConfigurationsReceived;
            _ptzClient.Security                     = ContextController.GetDebugInfo().Security;
        }
Beispiel #5
0
        /// <summary>
        /// Creates client for device management service
        /// </summary>
        /// <param name="address">Management service address</param>
        void InitializeDeviceClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _deviceClient = new ManagementServiceProvider(address, env.Timeouts.Message);
            _deviceClient.ExceptionThrown        += OnExceptionThrown;
            _deviceClient.OperationCompleted     += OnOperationCompleted;
            _deviceClient.OperationStarted       += OnOperationStarted;
            _deviceClient.Timeout                 = env.Timeouts.Message;
            _deviceClient.ResponseReceived       += OnResponseReceived;
            _deviceClient.OnServicesInfoReceived += OnServicesInfoReceived;
            _deviceClient.Security                = ContextController.GetDebugInfo().Security;
        }
        /// <summary>
        /// Returns service addresses
        /// </summary>
        public void GetAddress(CapabilityCategory[] categories)
        {
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            _deviceClientWorking = true;
            string address = devices != null ? devices.ServiceAddress : string.Empty;

            InitializeDeviceClient(address);

            DebugInfo info = ContextController.GetDebugInfo();
            bool      capabilitiesStyle = (info.CapabilitiesExchange == CapabilitiesExchangeStyle.GetCapabilities);

            _deviceClient.GetServiceAddresses(capabilitiesStyle, categories);
        }
        /// <summary>
        /// Loads data saved in context.
        /// </summary>
        /// <param name="context"></param>
        public override void LoadSavedContext(SavedContext context)
        {
            base.LoadSavedContext(context);

            if (context.DebugInfo != null)
            {
                DebugInfo info = ContextController.GetDebugInfo();
                info.CapabilitiesExchange = context.DebugInfo.CapabilitiesExchange;
                info.Security             = context.DebugInfo.Security;
            }

            foreach (IController contoller in _controllers)
            {
                contoller.LoadSavedContext(context);
            }
        }
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Application,
                                                                        new System.Security.Policy.Url("www.onvif.org/OnvifTestTool"));
            IsolatedStorageFileStream isoFile = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _conformanceTestController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress    = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress     = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                context.DiscoveryContext.SearchScopes      = devices.SearchScopes.Replace(System.Environment.NewLine, " ");
                context.DiscoveryContext.ShowSearchOptions = devices.ShowSearchOptions;

                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();

            _deviceController.UpdateContext();

            context.RequestsInfo = ContextController.GetRequestsInfo();
            context.MediaInfo    = ContextController.GetMediaInfo();
            context.PTZInfo      = ContextController.GetPTZInfo();
            context.DebugInfo    = ContextController.GetDebugInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }
Beispiel #9
0
        /// <summary>
        /// Initializes service client, if it's possibly.
        /// </summary>
        /// <returns>True if client has been initialized successfully.</returns>
        bool InitializeClient()
        {
            string            serviceAddress = string.Empty;
            DiscoveredDevices devices        = ContextController.GetDiscoveredDevices();

            if (devices.Current != null)
            {
                serviceAddress = devices.ServiceAddress;
            }

            try
            {
                new Uri(serviceAddress);
            }
            catch (Exception)
            {
                View.ShowError("Device service address is invalid!");
                return(false);
            }

            try
            {
                DeviceEnvironment env = ContextController.GetDeviceEnvironment();

                _client = new ManagementServiceProvider(serviceAddress, env.Timeouts.Message);
                _client.ExceptionThrown             += _client_ExceptionThrown;
                _client.OnDeviceInformationReceived += _client_OnDeviceInformationReceived;
                _client.OperationCompleted          += _client_OperationCompleted;
                _client.OperationStarted            += _client_OperationStarted;
                _client.ResponseReceived            += _client_ResponseReceived;

                _client.Security = ContextController.GetDebugInfo().Security;

                return(true);
            }
            catch (Exception exc)
            {
                View.ShowError(string.Format("Error occurred: {0}", exc.Message));
                return(false);
            }
        }
Beispiel #10
0
        /// <summary>
        /// Creates client for media service
        /// </summary>
        /// <param name="address">Media service address</param>
        void InitializeMediaClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _mediaClient = new MediaServiceProvider(address, env.Timeouts.Message);
            _mediaClient.ExceptionThrown    += OnExceptionThrown;
            _mediaClient.OperationCompleted += OnOperationCompleted;
            _mediaClient.OperationStarted   += OnOperationStarted;
            _mediaClient.OnProfilesReceived += OnProfilesReceived;
            _mediaClient.OnVideoSourceConfigurationsReceived += OnSourceConfigsReceived;
            _mediaClient.OnVideoEncoderConfigurationReceived += OnVideoEncoderConfigsReceived;
            _mediaClient.OnVideoEncoderConfigOptionsReceived += OnVideoEncoderConfigOptionsReceived;
            _mediaClient.OnAudioSourceConfigurationsReceived += OnAudioSourceConfigsReceived;
            _mediaClient.OnAudioEncoderConfigurationReceived += OnAudioEncoderConfigsReceived;
            _mediaClient.OnAudioEncoderConfigOptionsReceived += OnAudioEncoderConfigOptionsReceived;
            _mediaClient.OnMediaUriReceived += OnMediaUriReceived;
            _mediaClient.Timeout             = env.Timeouts.Message;
            _mediaClient.ResponseReceived   += OnResponseReceived;

            _mediaClient.Security = ContextController.GetDebugInfo().Security;
        }
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile       isoStore = IsolatedStorageFile.GetMachineStoreForAssembly();
            IsolatedStorageFileStream isoFile  = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _conformanceTestController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress  = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();

            _deviceController.UpdateContext();

            context.RequestsInfo = ContextController.GetRequestsInfo();
            context.MediaInfo    = ContextController.GetMediaInfo();
            context.PTZInfo      = ContextController.GetPTZInfo();
            context.DebugInfo    = ContextController.GetDebugInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }