示例#1
0
        public void SetGetProperties()
        {
            TextParameter parameter = new TextParameter();

            Assert.IsNull(parameter.AllowedValues, "AllowedValues is not null");
            Assert.AreEqual(typeof(string), parameter.DataType, "DataType does not match");

            parameter.IsRequired = false;
            Assert.AreEqual(false, parameter.IsRequired, "IsRequired does not match");
            parameter.IsRequired = true;
            Assert.AreEqual(true, parameter.IsRequired, "IsRequired does not match");
            parameter.MaximumLength = 100;
            Assert.AreEqual(100, parameter.MaximumLength, "MaximumLength does not match");
            parameter.MaximumLength = 0;
            Assert.AreEqual(0, parameter.MaximumLength, "MaximumLength does not match");
            parameter.MinimumLength = 100;
            Assert.AreEqual(100, parameter.MinimumLength, "MinimumLength does not match");
            parameter.MinimumLength = 0;
            Assert.AreEqual(0, parameter.MinimumLength, "MinimumLength does not match");
            parameter.Description = "Some description goes here";
            Assert.AreEqual("Some description goes here", parameter.Description, "Description does not match");
            parameter.Name = "Some name";
            Assert.AreEqual("Some name", parameter.Name, "Name does not match");
            Assert.AreEqual("Some name", parameter.DisplayName, "DisplayName does not match");
            parameter.DisplayName = "Another name";
            Assert.AreEqual("Another name", parameter.DisplayName, "DisplayName does not match");
        }
示例#2
0
        public void ConvertReturnsOriginalString()
        {
            var parameter = new TextParameter();
            var value     = parameter.Convert("testValue");

            Assert.AreEqual("testValue", value);
        }
示例#3
0
        public static EnumOpenClose CheckOpenClose(Order order)
        {
            string        text      = order.Text;
            EnumOpenClose OpenClose = EnumOpenClose.OPEN;

            if (text.StartsWith("{") && text.EndsWith("}"))
            {
                TextParameter parameter = JsonConvert.DeserializeObject <TextParameter>(text);
                switch (parameter.Type)
                {
                case EnumGroupType.COMMON:
                {
                    TextCommon t = JsonConvert.DeserializeObject <TextCommon>(text);
                    OpenClose = t.OpenClose;
                }
                break;

                case EnumGroupType.QUOTE:
                {
                    TextQuote t = JsonConvert.DeserializeObject <TextQuote>(text);
                    OpenClose = t.OpenClose;
                }
                break;
                }
            }

            return(OpenClose);
        }
示例#4
0
        public void ValueWithinValueRange()
        {
            TextParameter parameter = new TextParameter();

            parameter.Name          = "Test";
            parameter.MinimumLength = 0;
            parameter.MaximumLength = 20;
            Exception[] results = parameter.Validate("50");
            Assert.AreEqual(0, results.Length, "Number of exceptions does not match");
        }
示例#5
0
        public void IsRequiredWithBlank()
        {
            TextParameter parameter = new TextParameter();

            parameter.Name       = "Test";
            parameter.IsRequired = true;
            Exception[] results = parameter.Validate(string.Empty);
            Assert.AreEqual(1, results.Length, "Number of exceptions does not match");
            Assert.AreEqual("Value of 'Test' is required", results[0].Message, "Exception message does not match");
        }
示例#6
0
        public void ValueAboveLengthRange()
        {
            TextParameter parameter = new TextParameter();

            parameter.Name          = "Test";
            parameter.MinimumLength = 0;
            parameter.MaximumLength = 20;
            Exception[] results = parameter.Validate("123456789012345678901234567890");
            Assert.AreEqual(1, results.Length, "Number of exceptions does not match");
            Assert.AreEqual("Value of 'Test' is more than the maximum length (20)", results[0].Message, "Exception message does not match");
        }
示例#7
0
        public void ValueBelowLengthRange()
        {
            TextParameter parameter = new TextParameter();

            parameter.Name          = "Test";
            parameter.MinimumLength = 15;
            parameter.MaximumLength = 20;
            Exception[] results = parameter.Validate("50");
            Assert.AreEqual(1, results.Length, "Number of exceptions does not match");
            Assert.AreEqual("Value of 'Test' is less than the minimum length (15)", results[0].Message, "Exception message does not match");
        }
        public void TestTextParameter()
        {
            var parameter = new TextParameter();

            Assert.IsNull(parameter.NameResourceName);
            Assert.IsNull(parameter.DescriptionResourceName);

            parameter = new TextParameter("test1", "test2");
            Assert.AreEqual("test1", parameter.NameResourceName);
            Assert.AreEqual("test2", parameter.DescriptionResourceName);
        }
示例#9
0
        private void Send(NewOrderSingle order)
        {
            if (!_bTdConnected)
            {
                EmitError(-1, -1, "交易服务器没有连接,无法报单");
                tdlog.Error("交易服务器没有连接,无法报单");
                return;
            }

            // 表示特殊的Json格式
            if (order.Text.StartsWith("{") && order.Text.EndsWith("}"))
            {
                TextParameter parameter = JsonConvert.DeserializeObject <TextParameter>(order.Text);
                switch (parameter.Type)
                {
                case EnumGroupType.COMMON:
                {
                    TextCommon      t    = JsonConvert.DeserializeObject <TextCommon>(order.Text);
                    CommonOrderItem item = CommonOrderCombiner.Add(order as SingleOrder, t);
                    Send(item);
                }
                break;

                case EnumGroupType.QUOTE:
                {
                    TextQuote      t    = JsonConvert.DeserializeObject <TextQuote>(order.Text);
                    QuoteOrderItem item = QuoteOrderCombiner.Add(order as SingleOrder, t);
                }
                break;

                case EnumGroupType.SP:
                {
                    TextSP      t    = JsonConvert.DeserializeObject <TextSP>(order.Text);
                    SPOrderItem item = SPOrderCombiner.Add(order as SingleOrder, t);
                    Send(item);
                }
                break;

                case EnumGroupType.SPC:
                {
                    TextSPC      t    = JsonConvert.DeserializeObject <TextSPC>(order.Text);
                    SPCOrderItem item = SPCOrderCombiner.Add(order as SingleOrder, t);
                    Send(item);
                }
                break;

                case EnumGroupType.SPD:
                {
                    TextSPD      t    = JsonConvert.DeserializeObject <TextSPD>(order.Text);
                    SPDOrderItem item = SPDOrderCombiner.Add(order as SingleOrder, t);
                    Send(item);
                }
                break;
                }
            }
            else
            {
                // 无法识别的格式,直接发送报单,只开仓
                TextCommon t = new TextCommon()
                {
                    Type      = EnumGroupType.COMMON,
                    OpenClose = EnumOpenClose.OPEN
                };
                CommonOrderItem item = CommonOrderCombiner.Add(order as SingleOrder, t);
                Send(item);
            }
        }
示例#10
0
        public void InitializeParameters(string arma3Path)
        {
            Logger.LogDebug("ParameterService", "Starting parameter initialization");

            BooleanParameter skipIntro = new BooleanParameter
            {
                Name        = "-skipIntro",
                LegacyName  = "skipIntro",
                DisplayName = Resources.Strings.S_PARAMETER_SKIP_INTRO,
                Tooltip     = Resources.Strings.S_PARAMETER_SKIP_INTRO_DESC
            };
            BooleanParameter noSplash = new BooleanParameter
            {
                Name        = "-noSplash",
                LegacyName  = "skipSplashScreen",
                DisplayName = Resources.Strings.S_PARAMETER_NO_SPLASH,
                Tooltip     = Resources.Strings.S_PARAMETER_NO_SPLASH_DESC
            };
            BooleanParameter emptyWorld = new BooleanParameter
            {
                Name        = "-world=empty",
                LegacyName  = "emptyWorld",
                DisplayName = Resources.Strings.S_PARAMETER_EMPTY_WORLD,
                Tooltip     = Resources.Strings.S_PARAMETER_EMPTY_WORLD_DESC
            };
            BooleanParameter window = new BooleanParameter
            {
                Name        = "-window",
                LegacyName  = "windowedMode",
                DisplayName = Resources.Strings.S_PARAMETER_WINDOW,
                Tooltip     = Resources.Strings.S_PARAMETER_WINDOW_DESC
            };
            BooleanParameter filePatching = new BooleanParameter
            {
                Name        = "-filePatching",
                LegacyName  = "noFilePatching",
                DisplayName = Resources.Strings.S_PARAMETER_FILE_PATCHING,
                Tooltip     = Resources.Strings.S_PARAMETER_FILE_PATCHING_DESC
            };
            BooleanParameter noPause = new BooleanParameter
            {
                Name        = "-noPause",
                LegacyName  = "noPause",
                DisplayName = Resources.Strings.S_PARAMETER_NO_PAUSE,
                Tooltip     = Resources.Strings.S_PARAMETER_NO_PAUSE_DESC
            };
            BooleanParameter noCb = new BooleanParameter
            {
                Name        = "-noCB",
                LegacyName  = "noCB",
                DisplayName = Resources.Strings.S_PARAMETER_NO_MULTICORE,
                Tooltip     = Resources.Strings.S_PARAMETER_NO_MULTICORE_DESC
            };
            BooleanParameter showScriptErrors = new BooleanParameter
            {
                Name        = "-showScriptErrors",
                LegacyName  = "showScriptErrors",
                DisplayName = Resources.Strings.S_PARAMETER_SHOW_ERRORS,
                Tooltip     = Resources.Strings.S_PARAMETER_SHOW_ERRORS_DESC
            };
            BooleanParameter noLogs = new BooleanParameter
            {
                Name        = "-noLogs",
                LegacyName  = "noLogs",
                DisplayName = Resources.Strings.S_PARAMETER_NO_LOGS,
                Tooltip     = Resources.Strings.S_PARAMETER_NO_LOGS_DESC
            };
            BooleanParameter enableHt = new BooleanParameter
            {
                Name        = "-enableHT",
                LegacyName  = "hyperthreading",
                DisplayName = Resources.Strings.S_PARAMETER_HYPERTHREADING,
                Tooltip     = Resources.Strings.S_PARAMETER_HYPERTHREADING_DESC
            };
            BooleanParameter hugePages = new BooleanParameter
            {
                Name        = "-hugePages",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_HUGE_PAGES,
                Tooltip     = Resources.Strings.S_PARAMETER_HUGE_PAGES_DESC
            };

            _malloc32 = new SelectionParameter
            {
                Name        = "-malloc=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_MALLOC_32,
                Tooltip     = Resources.Strings.S_PARAMETER_MALLOC_32_DESC,
                Platform    = ParameterPlatform.X86
            };
            _malloc64 = new SelectionParameter
            {
                Name        = "-malloc=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_MALLOC_64,
                Tooltip     = Resources.Strings.S_PARAMETER_MALLOC_64_DESC,
                Platform    = ParameterPlatform.X64
            };
            SelectionParameter memory = new SelectionParameter
            {
                Name        = "-maxMem=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_MAX_MEMORY,
                Tooltip     = Resources.Strings.S_PARAMETER_MAX_MEMORY_DESC,
                Values      = new BindableCollection <ValueItem>
                {
                    new ValueItem("1024", "1024 MiB"),
                    new ValueItem("2048", "2048 MiB"),
                    new ValueItem("4096", "4096 MiB"),
                    new ValueItem("8192", "8192 MiB"),
                }
            };
            SelectionParameter videoMemory = new SelectionParameter
            {
                Name        = "-maxVRAM=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_MAX_VMEMORY,
                Tooltip     = Resources.Strings.S_PARAMETER_MAX_VMEMORY_DESC,
                Values      = new BindableCollection <ValueItem>
                {
                    new ValueItem("512", "512 MiB"),
                    new ValueItem("1024", "1024 MiB"),
                    new ValueItem("2048", "2048 MiB"),
                    new ValueItem("4096", "4096 MiB"),
                    new ValueItem("8192", "8192 MiB"),
                }
            };
            NumericalParameter cpuCount = new NumericalParameter
            {
                Name        = "-cpuCount=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_CPU_COUNT,
                Tooltip     = Resources.Strings.S_PARAMETER_CPU_COUNT_DESC,
                MinValue    = 1,
                MaxValue    = 32
            };
            NumericalParameter exThreads = new NumericalParameter
            {
                Name        = "-exThreads=",
                LegacyName  = string.Empty,
                DisplayName = Resources.Strings.S_PARAMETER_EXTHREADS,
                Tooltip     = Resources.Strings.S_PARAMETER_EX_THREADS_DESC,
                MinValue    = 0,
                MaxValue    = 7
            };
            TextParameter additional = new TextParameter
            {
                Name        = "Additional parameters",
                LegacyName  = "extraParameters",
                DisplayName = Resources.Strings.S_PARAMETER_ADDITIONAL,
                Tooltip     = Resources.Strings.S_PARAMETER_ADDITIONAL_DESC
            };

            Parameters = new BindableCollection <LaunchParameter> {
                skipIntro,
                noSplash,
                emptyWorld,
                window,
                filePatching,
                noPause,
                noCb,
                showScriptErrors,
                noLogs,
                enableHt,
                hugePages,
                _malloc32,
                _malloc64,
                memory,
                videoMemory,
                cpuCount,
                exThreads,
                additional
            };

            Logger.LogDebug("ParameterService", "Finished parameter initialization");

            //Read memory allocators
            if (!string.IsNullOrEmpty(arma3Path))
            {
                ReadMemoryAllocators(arma3Path);
            }
        }