Exemplo n.º 1
0
        public void TemplateExecution_StringComparison_ShouldSucceed()
        {
            var templateRepositoryMock = new Mock <ITemplateRepository>();

            templateRepositoryMock.Setup(tr => tr.Get(It.IsAny <Guid>()))
            .Returns(Task.FromResult(
                         new Template.Entities.Template(
                             Guid.NewGuid(),
                             Guid.NewGuid(),
                             "user",
                             "pie",
                             "bar",
                             DateTime.Now,
                             "template",
                             new UserDefinedReturnQueryStatement(
                                 "shiporder.items.item.title"),
                             new UserDefinedWhereQueryStatement(
                                 "shiporder.items.item.country.name", "=", "Norway"),
                             new UserDefinedReturnQueryStatement(
                                 "shiporder.items.item.price")
                             )));

            var xmlFile = File.ReadAllBytes("resources/test.xml");

            var dataSource = new DataSource.Entities.DataSource(
                Guid.NewGuid(),
                "dataSource",
                DateTime.Now,
                "user",
                new List <DataTypeDefinition>(),
                xmlFile);

            var dataSourceSchemaGenerator = new DataSourceSchemaGenerator();

            dataSource.Schema = dataSourceSchemaGenerator.Generate(dataSource);

            var dataSourceRepositoryMock = new Mock <IDataSourceRepository>();

            dataSourceRepositoryMock.Setup(ds => ds.FindAsync(It.IsAny <Guid>(),
                                                              It.IsAny <bool>()))
            .Returns(Task.FromResult(dataSource));

            var templateService = new TemplateService(
                templateRepositoryMock.Object,
                dataSourceRepositoryMock.Object);

            var result = templateService.Execute("user", Guid.NewGuid())
                         .GetAwaiter()
                         .GetResult();

            result.Value.Count.Should().Be(2);

            result.Value.Should().BeEquivalentTo(
                new List <Tuple <string, string> >()
            {
                new Tuple <string, string>("Hide your heart", "9.90"),
                new Tuple <string, string>("Item3", "15.00")
            });
        }
        public List <DataTypeDefinition> Generate(DataSource.Entities.DataSource dataSource)
        {
            var schemaSet = GetSchemaSet(dataSource.Value);
            var en        = schemaSet.GetEnumerator();

            en.MoveNext();
            var schema = (XmlSchema)en.Current;

            var list = new List <DataTypeDefinition>();

            TraverseSchema(schema, list);

            return(list);
        }
        public async Task Process(DataSource.Entities.DataSource dataSource)
        {
            var uploadProcess = DataSourceUploadProcess.Create(dataSource.Id);

            uploadProcess.Id = await _uploadProcessRepository.Create(uploadProcess);

            await _dataSourceRepository.Create(dataSource);

            await _dataSourceRepository.Save(dataSource.Id, dataSource.Value);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.FileStored;
            await _uploadProcessRepository.Update(uploadProcess);

            dataSource.Schema = _schemaGenerator.Generate(dataSource);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.SchemaGenerated;
            await _uploadProcessRepository.Update(uploadProcess);

            await _dataSourceRepository.Update(dataSource);

            uploadProcess.State = DataSourceUploadProcess.DataSourceUploadProcessState.Done;
            await _uploadProcessRepository.Update(uploadProcess);
        }