public void SymbolsPreprocessTest()
        {
            /*
             * The parameters json format:
             * {
             *        "Product": {
             *                "Name": "product name",
             *                "Id": 1
             *        },
             *        "Index": 109,
             *        "Page": {
             *                "PageIndex": 0,
             *                "PageSize": 20
             *        },
             *        "ProductItems": ["ProductItem0", "ProductItem1", "ProductItem2"]
             * }
             */

            var parameters    = "{\"Product\":{\"Name\":\"product name\",\"Id\":1},\"Index\":109,\"Page\":{ \"PageIndex\":0,\"PageSize\":20},\"ProductItems\":[\"ProductItem0\",\"ProductItem1\",\"ProductItem2\"]}";
            var configuration = new ConfigurationBuilder().AddJsonStream(new MemoryStream(Encoding.UTF8.GetBytes(parameters))).Build();

            Assert.Equal("ProductName=product name", SymbolsEngine.SymbolsPreprocess("ProductName={{Product:Name}}", configuration));
            Assert.Equal("ProductItems[1]=ProductItem1", SymbolsEngine.SymbolsPreprocess("ProductItems[1]={{ProductItems:1}}", configuration));
            Assert.Equal("PageIndex={0}", SymbolsEngine.SymbolsPreprocess("PageIndex={{{Page:PageIndex}}}", configuration));
            Assert.Equal("Foo=", SymbolsEngine.SymbolsPreprocess("Foo={{Foo:Foo}}", configuration));
            Assert.Equal("PageNumber=", SymbolsEngine.SymbolsPreprocess("PageNumber={{Page:PageNumber}}", configuration));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Generate task
        /// </summary>
        /// <param name="task"></param>
        /// <param name="template"></param>
        /// <returns></returns>
        public TaskModel GenerateTask(Task task, Template template)
        {
            if (template == null || task == null)
            {
                throw new ArgumentNullException(template == null ? nameof(template) : nameof(task));
            }
            var configuration = new ConfigurationBuilder().AddJsonStream(new MemoryStream(Encoding.UTF8.GetBytes(task.parameters))).Build();

            Enum.TryParse(task.http_method.ToPascalCase(), out RequestMethodEnum requestMethod);
            var taskExecuteModel = new TaskModel {
                RequestMethod        = requestMethod,
                PropertyParsingRules = JsonConvert.DeserializeObject <IDictionary <string, PropertyParsingRuleModel> >(SymbolsEngine.SymbolsPreprocess(template.property_parsing_rule, configuration)),
                TaskId = task.id,
                Uri    = SymbolsEngine.SymbolsPreprocess(template.uri, configuration)
            };

            return(taskExecuteModel);
        }