public List<TflProcess> Create() {
            var shouldThrow = false;
            var cfg = new TflRoot(_resource, _parameters);

            if (cfg.Response.Any()) {
                foreach (var response in cfg.Response.Where(response => response.Status != (short)200)) {
                    _logger.Warn("API at {0} responded with {1} {2}.", _resource, response.Status, response.Message);
                }
            }

            foreach (var warning in cfg.Warnings()) {
                _logger.Warn(warning);
            }

            foreach (var error in cfg.Errors()) {
                shouldThrow = true;
                _logger.Error(error);
            }

            if (shouldThrow) {
                throw new TransformalizeException(_logger, string.Join(Environment.NewLine, cfg.Errors()));
            }

            return cfg.Processes;
        }
        public ActionResult Load(int id) {
            Response.AddHeader("Access-Control-Allow-Origin", "*");
            ConfigurationPart part;
            ApiRequest request;

            foreach (var rejection in _apiService.Rejections(id, out request, out part)) {
                return rejection.ContentResult(_query["format"], _query["flavor"]);
            }

            request.RequestType = ApiRequestType.Execute;
            var root = new TflRoot(part.Configuration, _query);
            
            TransformConfigurationForLoad(root);

            var errors = root.Errors();
            if (errors.Any()) {
                request.Status = 500;
                request.Message = string.Join(Environment.NewLine, errors);
                return new ApiResponse(request, root.ToString(), new TransformalizeResponse()).ContentResult(_query["format"], _query["flavor"]);
            }

            var transformalizeRequest = new TransformalizeRequest(part, _query, null, Logger, root);

            return Run(request, transformalizeRequest)
                .ContentResult(_query["format"], _query["flavor"]);
        }
Ejemplo n.º 3
0
        public void Test2() {

            var xml = @"
<cfg>
    <processes>
        <add name='test'>
            <data-sets>
                <add name='one'>
                    <rows>
                        <add f1='1' f2='1' f3='2001-01-01' />
                        <add f1='2' f2='2' f3='2002-02-02' />
                        <add f1='3' f2='3' f3='2003-03-03' />
                    </rows>
                </add>
            </data-sets>

            <connections>
                <add name='input' provider='internal' />
                <add name='output' provider='internal' />
            </connections>

            <entities>
                <add name='one'>
                    <fields>
                        <add name='f1' primary-key='true' />
                        <add name='f2' type='int' />
                        <add name='f3' type='datetime' />
                    </fields>
                </add>
            </entities>
        </add>
    </processes>
</cfg>
".Replace("'","\"");
            var root = new TflRoot(xml);

            var problems = root.Errors();
            foreach (var problem in problems) {
                Console.WriteLine(problem);
            }

            Assert.AreEqual(0, problems.Length);

            Assert.AreEqual(3, root.Processes.First().DataSets.First().Rows.Count);

            var rows = ProcessFactory.CreateSingle(root.Processes[0], new TestLogger()).Execute().ToList();

            Assert.AreEqual(3, rows.Count());

        }
Ejemplo n.º 4
0
        public TestWithProcess() {
            var cfg = new TflRoot(File.ReadAllText(@"TestFiles\Test.xml"), null);
            foreach (var problem in cfg.Errors()) {
                Console.WriteLine(problem);
            }

            _process = ProcessFactory.CreateSingle(cfg.Processes[0], new TestLogger());

            _entityKeysExtract = new Mock<IOperation>();
            _entityKeysExtract.Setup(foo => foo.Execute(It.IsAny<IEnumerable<Row>>())).Returns(new List<Row> {
                new Row { {"OrderDetailKey", 1} },
                new Row { {"OrderDetailKey", 2} },
                new Row { {"OrderDetailKey", 3} },
                new Row { {"OrderDetailKey", 4} }
            });
        }
 protected override void Updated(UpdateContentContext context) {
     var part = context.ContentItem.As<ConfigurationPart>();
     if (part == null)
         return;
     try {
         //test if configuration works
         var root = new TflRoot(
             part.Configuration,
             null,
             new CfgNetNotifier(_notifier)
         );
         CheckAddress(part.StartAddress);
         CheckAddress(part.EndAddress);
         Logger.Information("Loaded {0} with {1} warnings, and {2} errors.", part.Title(), root.Warnings().Length, root.Errors().Length);
     } catch (Exception ex) {
         _notifier.Add(NotifyType.Warning, T(ex.Message));
         Logger.Warning(ex.Message);
     }
 }
        public void TestError() {
            var cfg = new TflRoot(File.ReadAllText(@"C:\Temp\test.xml"), null);
            Assert.AreEqual(0, cfg.Errors().Length);

            var process = ProcessFactory.CreateSingle(@"C:\Temp\test.xml", new TestLogger());
            Assert.IsNotNull(process);

            process.ExecuteScaler();
        }