示例#1
0
        public void LoadSettingsFromXML(string fileName)
        {
            try
            {
                SerializableTestingParameters userParameters = null;

                if (!File.Exists(fileName))
                {
                    View.ShowError(string.Format("File not found: {0}", fileName));
                    return;
                }

                XmlSerializer serializer = new XmlSerializer(typeof(SerializableTestingParameters));
                FileStream    stream     = null;
                try
                {
                    stream         = new FileStream(fileName, FileMode.Open);
                    userParameters = (SerializableTestingParameters)serializer.Deserialize(stream);
                }
                catch (Exception exc)
                {
                    View.ShowError(exc);
                    View.ShowError(string.Format("Parameters loading failed: {0}", exc.Message));
                    return;
                }
                finally
                {
                    if (stream != null)
                    {
                        stream.Close();
                    }
                }

                // update context
                {
                    DeviceEnvironment devEnv = ContextController.GetDeviceEnvironment();

                    if (userParameters.Advanced != null)
                    {
                        devEnv.TestSettings.AdvancedSettings    = ParseAdvancedSettings(userParameters.Advanced);
                        devEnv.TestSettings.RawAdvancedSettings = new List <XmlElement>(userParameters.Advanced);
                    }

                    if (userParameters.Device != null)
                    {
                        DiscoveredDevices devices = ContextController.GetDiscoveredDevices();
                        devices.ServiceAddress = userParameters.Device.DeviceServiceAddress;
                    }

                    if (userParameters.SessionInfo != null)
                    {
                    }

                    if (userParameters.TestParameters != null)
                    {
                        TestParameters testParameters = userParameters.TestParameters;

                        devEnv.Credentials.UserName = testParameters.UserName;
                        devEnv.Credentials.Password = testParameters.Password;

                        devEnv.EnvironmentSettings.DnsIpv4     = testParameters.DnsIpv4;
                        devEnv.EnvironmentSettings.DnsIpv6     = testParameters.DnsIpv6;
                        devEnv.EnvironmentSettings.GatewayIpv4 = testParameters.DefaultGatewayIpv4;
                        devEnv.EnvironmentSettings.GatewayIpv6 = testParameters.DefaultGatewayIpv6;
                        devEnv.EnvironmentSettings.NtpIpv4     = testParameters.NtpIpv4;
                        devEnv.EnvironmentSettings.NtpIpv6     = testParameters.NtpIpv6;

                        devEnv.TestSettings.EventTopic     = testParameters.EventTopic;
                        devEnv.TestSettings.MetadataFilter = testParameters.MetadataFilter;
                        devEnv.TestSettings.OperationDelay = testParameters.OperationDelay;
                        devEnv.TestSettings.Password1      = testParameters.Password1;
                        devEnv.TestSettings.Password2      = testParameters.Password2;
                        devEnv.TestSettings.PTZNodeToken   = testParameters.PTZNodeToken;
                        devEnv.TestSettings.RecordingToken = testParameters.RecordingToken;
                        devEnv.TestSettings.RecoveryDelay  = testParameters.TimeBetweenRequests;
                        devEnv.TestSettings.RelayOutputDelayTimeMonostable = testParameters.RelayOutputDelayTime;
                        devEnv.TestSettings.SearchTimeout       = testParameters.SearchTimeout;
                        devEnv.TestSettings.SecureMethod        = testParameters.SecureMethod;
                        devEnv.TestSettings.SubscriptionTimeout = testParameters.SubscriptionTimeout;
                        devEnv.TestSettings.TopicNamespaces     = testParameters.TopicNamespaces;
                        devEnv.TestSettings.UseEmbeddedPassword = testParameters.UseEmbeddedPassword;
                        devEnv.TestSettings.VideoSourceToken    = testParameters.VideoSourceToken;

                        devEnv.Timeouts.InterTests = testParameters.TimeBetweenTests;
                        devEnv.Timeouts.Message    = testParameters.MessageTimeout;
                        devEnv.Timeouts.Reboot     = testParameters.RebootTimeout;
                    }

                    UpdateView();
                }


                if (SettingsLoaded != null)
                {
                    SettingsLoaded(this, new EventArgs());
                }
            }
            catch (Exception exc)
            {
                View.ShowError(exc);
            }
        }
示例#2
0
        public void SaveAsXML(string fileName)
        {
            // save;

            SerializableTestingParameters parameters = new SerializableTestingParameters();

            {
                parameters.Advanced = GetAdvancedSettings().ToArray();

                parameters.Device = new DeviceParameters();
                DiscoveredDevices devices = ContextController.GetDiscoveredDevices();
                parameters.Device.DeviceIP             = (null != devices.DeviceAddress) ? devices.DeviceAddress.ToString() : "";
                parameters.Device.DeviceServiceAddress = devices.ServiceAddress;

                DeviceInfo devInfo = ContextController.GetSetupInfo().DevInfo;
                parameters.Device.Model = devInfo != null ? devInfo.Model : string.Empty;

                {
                    parameters.Output = new Output();
                    parameters.Output.CreateNestedFolder   = true;
                    parameters.Output.Directory            = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                    parameters.Output.FeatureDefinitionLog = "FeatureDefinitionLog.xml";
                    parameters.Output.Report  = "TestReport.pdf";
                    parameters.Output.TestLog = "TestLog.xml";
                }

                {
                    SetupInfo info = ContextController.GetSetupInfo();
                    if (info != null)
                    {
                        parameters.SessionInfo                  = new SessionInfo();
                        parameters.SessionInfo.MemberInfo       = info.MemberInfo;
                        parameters.SessionInfo.OtherInformation = info.OtherInfo;
                        parameters.SessionInfo.TesterInfo       = info.TesterInfo;
                    }
                }

                {
                    parameters.TestParameters         = new TestParameters();
                    parameters.TestParameters.Address = devices.NIC.IP.ToString();

                    DeviceEnvironment env = ContextController.GetDeviceEnvironment();

                    if (env.EnvironmentSettings != null)
                    {
                        parameters.TestParameters.DefaultGatewayIpv4 = env.EnvironmentSettings.GatewayIpv4;
                        parameters.TestParameters.DefaultGatewayIpv6 = env.EnvironmentSettings.GatewayIpv6;
                        parameters.TestParameters.DnsIpv4            = env.EnvironmentSettings.DnsIpv4;
                        parameters.TestParameters.DnsIpv6            = env.EnvironmentSettings.DnsIpv6;
                        parameters.TestParameters.NtpIpv4            = env.EnvironmentSettings.NtpIpv4;
                        parameters.TestParameters.NtpIpv6            = env.EnvironmentSettings.NtpIpv6;
                    }

                    if (env.Credentials != null)
                    {
                        parameters.TestParameters.UserName = env.Credentials.UserName;
                        parameters.TestParameters.Password = env.Credentials.Password;
                    }

                    if (env.Timeouts != null)
                    {
                        parameters.TestParameters.MessageTimeout   = env.Timeouts.Message;
                        parameters.TestParameters.RebootTimeout    = env.Timeouts.Reboot;
                        parameters.TestParameters.TimeBetweenTests = env.Timeouts.InterTests;
                    }

                    if (env.TestSettings != null)
                    {
                        parameters.TestParameters.EventTopic      = env.TestSettings.EventTopic;
                        parameters.TestParameters.TopicNamespaces = env.TestSettings.TopicNamespaces;

                        parameters.TestParameters.OperationDelay       = env.TestSettings.OperationDelay;
                        parameters.TestParameters.Password1            = env.TestSettings.Password1;
                        parameters.TestParameters.Password2            = env.TestSettings.Password2;
                        parameters.TestParameters.PTZNodeToken         = env.TestSettings.PTZNodeToken;
                        parameters.TestParameters.RelayOutputDelayTime = env.TestSettings.RelayOutputDelayTimeMonostable;
                        parameters.TestParameters.SecureMethod         = env.TestSettings.SecureMethod;
                        parameters.TestParameters.SubscriptionTimeout  = env.TestSettings.SubscriptionTimeout;
                        parameters.TestParameters.TimeBetweenRequests  = env.TestSettings.RecoveryDelay;
                        parameters.TestParameters.UseEmbeddedPassword  = env.TestSettings.UseEmbeddedPassword;
                        parameters.TestParameters.VideoSourceToken     = env.TestSettings.VideoSourceToken;

                        parameters.TestParameters.SearchTimeout  = env.TestSettings.SearchTimeout;
                        parameters.TestParameters.RecordingToken = env.TestSettings.RecordingToken;
                        parameters.TestParameters.MetadataFilter = env.TestSettings.MetadataFilter;
                    }
                }
            }


            XmlSerializer serializer = new XmlSerializer(typeof(SerializableTestingParameters));
            FileStream    stream     = null;

            try
            {
                stream = new FileStream(fileName, FileMode.OpenOrCreate);
                serializer.Serialize(stream, parameters);
            }
            catch (Exception exc)
            {
                View.ShowError(exc);
                return;
            }
            finally
            {
                if (stream != null)
                {
                    stream.Close();
                }
            }

            // open in NotePad, if needed

            if (View.OpenFileForEditing)
            {
                ProcessStartInfo ProcessInfo;
                Process          Process;

                try
                {
                    ProcessInfo = new ProcessStartInfo("Notepad.exe", fileName);
                    ProcessInfo.CreateNoWindow  = false;
                    ProcessInfo.UseShellExecute = true;
                    Process = Process.Start(ProcessInfo);
                }
                catch (System.Exception ex)
                {
                    View.ShowError(ex);
                }
            }
        }