/// <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(); } } }
/// <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; }
/// <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(); }
/// <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); } }
/// <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(); }