├── bower_components └── jquery │ ├── src │ ├── outro.js │ ├── var │ │ ├── arr.js │ │ ├── deletedIds.js │ │ ├── rnotwhite.js │ │ ├── document.js │ │ ├── push.js │ │ ├── concat.js │ │ ├── indexOf.js │ │ ├── slice.js │ │ ├── class2type.js │ │ ├── pnum.js │ │ ├── toString.js │ │ ├── hasOwn.js │ │ ├── documentElement.js │ │ ├── support.js │ │ └── rcssNum.js │ ├── selector.js │ ├── ajax │ │ ├── var │ │ │ ├── rquery.js │ │ │ ├── location.js │ │ │ └── nonce.js │ │ ├── parseJSON.js │ │ ├── parseXML.js │ │ └── script.js │ ├── css │ │ ├── var │ │ │ ├── rmargin.js │ │ │ ├── cssExpand.js │ │ │ ├── rnumnonpx.js │ │ │ ├── isHidden.js │ │ │ ├── getStyles.js │ │ │ └── swap.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── addGetHookIf.js │ │ └── showHide.js │ ├── manipulation │ │ ├── var │ │ │ ├── rtagName.js │ │ │ ├── rleadingWhitespace.js │ │ │ ├── rcheckableType.js │ │ │ ├── rscriptType.js │ │ │ └── nodeNames.js │ │ ├── _evalUrl.js │ │ ├── createSafeFragment.js │ │ ├── setGlobalEval.js │ │ ├── getAll.js │ │ ├── wrapMap.js │ │ └── support.js │ ├── data │ │ ├── var │ │ │ ├── dataPriv.js │ │ │ ├── dataUser.js │ │ │ └── acceptData.js │ │ ├── support.js │ │ └── accepts.js │ ├── core │ │ ├── var │ │ │ └── rsingleTag.js │ │ ├── DOMEval.js │ │ ├── support.js │ │ ├── parseHTML.js │ │ └── access.js │ ├── traversing │ │ └── var │ │ │ ├── rneedsContext.js │ │ │ ├── siblings.js │ │ │ └── dir.js │ ├── event │ │ ├── support.js │ │ ├── ajax.js │ │ ├── alias.js │ │ └── focusin.js │ ├── attributes.js │ ├── effects │ │ ├── animatedSelector.js │ │ └── support.js │ ├── selector-sizzle.js │ ├── .jshintrc │ ├── exports │ │ ├── global.js │ │ └── amd.js │ ├── deferred │ │ └── exceptionHook.js │ ├── queue │ │ └── delay.js │ ├── jquery.js │ ├── deprecated.js │ ├── attributes │ │ └── support.js │ └── intro.js │ ├── bower.json │ ├── .bower.json │ └── LICENSE.txt ├── .DS_Store ├── src ├── .DS_Store ├── dexih.transforms │ ├── .DS_Store │ ├── Exceptions │ │ ├── InvalidJoinStrategyException.cs │ │ ├── JoinNotFoundException.cs │ │ ├── DuplicateJoinKeyException.cs │ │ ├── TransformExceptions.cs │ │ ├── TransformWriterExceptions.cs │ │ └── ConnectionExceptions.cs │ ├── Connections │ │ └── ConnectionsExceptions.cs │ ├── Transforms │ │ ├── TransformsExceptions.cs │ │ ├── TransformAttribute.cs │ │ └── TransformReference.cs │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Table │ │ ├── TableIndex.cs │ │ ├── TableIndexColumn.cs │ │ └── TableExceptions.cs │ ├── Query │ │ ├── QueryExceptions.cs │ │ ├── InputParameter.cs │ │ ├── InsertQuery.cs │ │ ├── DeleteQuery.cs │ │ ├── Joins.cs │ │ ├── QueryColumns.cs │ │ ├── UpdateQuery.cs │ │ ├── Sorts.cs │ │ ├── Join.cs │ │ ├── SelectColumns.cs │ │ └── QueryColumn.cs │ ├── View │ │ ├── AnimateConfig.cs │ │ └── ViewConfig.cs │ ├── Poco │ │ ├── IPocoEnumerator.cs │ │ ├── PocoTableMapping.cs │ │ └── PocoExceptions.cs │ ├── File │ │ ├── FileProperties.cs │ │ ├── FileHandlerBase.cs │ │ ├── FileConfiguration.cs │ │ ├── FileHandlerExceptions.cs │ │ └── WebService.cs │ ├── DataPack │ │ ├── DataPack.cs │ │ └── DataPackColumn.cs │ ├── Mapping │ │ └── MapGroup.cs │ ├── TransformPerformance.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TransformProperties.cs │ ├── AsyncHelper.cs │ ├── Parameter │ │ └── ParameterValue.cs │ └── DeltaValues.cs ├── dexih.connections.azure │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── dexih.connections.azure.csproj ├── dexih.connections.flatfile │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── dexih.connections.flatfile.csproj ├── dexih.connections.webservice.restful │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── dexih.connections.webservice.restful.csproj ├── dexih.functions.ml │ ├── runtimes │ │ ├── linux-x64 │ │ │ └── native │ │ │ │ └── libiomp5.so │ │ └── osx-x64 │ │ │ └── native │ │ │ └── libiomp5.dylib │ └── DynamicTypeProperty.cs ├── dexih.functions.maths │ ├── Matrix.cs │ └── dexih.functions.maths.csproj ├── dexih.functions │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Extensions │ │ ├── DictionaryExtensions.cs │ │ ├── JsonTimeSpanConverter.cs │ │ └── JsonDateTimeConverter.cs │ ├── DownloadUrl.cs │ ├── Functions │ │ ├── FunctionVariables.cs │ │ ├── GlobalSettings.cs │ │ └── FunctionParameter.cs │ └── TaskTimer.cs ├── dexih.functions.external │ ├── dexih.functions.external.csproj.DotSettings │ └── dexih.functions.external.csproj ├── dexih.connections.dynamodb │ └── dexih.connections.dynamodb.csproj ├── dexih.functions.builtIn │ └── dexih.functions.builtIn.csproj ├── dexih.connections.webservice.soap │ └── dexih.connections.webservice.soap.csproj ├── dexih.connections.ftp │ └── dexih.connections.ftp.csproj ├── dexih.connections.dexih │ └── dexih.connections.dexih.csproj ├── dexih.connections.mysql │ └── dexih.connections.mysql.csproj ├── dexih.connections.github │ └── dexih.connections.github.csproj ├── dexih.connections.postgressql │ └── dexih.connections.postgressql.csproj ├── dexih.connections.oracle │ └── dexih.connections.oracle.csproj ├── dexih.connections.sqlite │ └── dexih.connections.sqlite.csproj ├── dexih.functions.financial │ └── dexih.functions.financial.csproj ├── dexih.connections.db2 │ └── dexih.connections.db2.csproj ├── dexih.connections.sqlserver │ └── dexih.connections.sqlserver.csproj ├── dexih.connections.mongo │ └── dexih.connections.mongo.csproj ├── dexih.connections.sftp │ └── dexih.connections.sftp.csproj └── dexih.connections.excel │ └── dexih.connections.excel.csproj ├── test ├── .DS_Store ├── dexih.connections.test │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Data │ │ └── transactions.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── ParentChildNavigate.cs ├── dexih.functions.tests │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── dexih.functions.initialize.cs ├── dexih.transforms.tests │ ├── .DS_Store │ ├── Data │ │ ├── array.json │ │ └── weather.json │ ├── DataReaderAdapterTests.cs │ ├── TransformWriterBulk.cs │ ├── dataadapter.cs │ ├── lookup.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── TransformConcatinateTests.cs │ ├── MockReader.cs │ └── StreamActionTests.cs ├── dexih.connections.sql.tests │ ├── .DS_Store │ ├── .vscode │ │ ├── tasks.json │ │ └── launch.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── appsettings.json ├── dexih.connections.azure.tests │ ├── .DS_Store │ ├── appsettings.json │ └── Properties │ │ └── AssemblyInfo.cs ├── dexih.connections.excel.tests │ ├── .DS_Store │ └── appsettings.json ├── dexih.connections.flatfile.tests │ ├── .DS_Store │ ├── appsettings.json │ ├── Properties │ │ └── AssemblyInfo.cs │ └── dexih.connections.flatfile.tests.cs ├── dexih.connections.webservice.restful.tests │ ├── .DS_Store │ ├── Properties │ │ └── AssemblyInfo.cs │ └── appsettings.json ├── dexih.transforms.tests.async │ └── dexih.transforms.tests.async.csproj ├── dexih.connections.ftp.tests │ ├── appsettings.json │ ├── dexih.connections.ftp.tests.csproj │ └── dexih.connections.ftp.tests.cs ├── dexih.connections.sftp.tests │ ├── appsettings.json │ ├── dexih.connections.sftp.tests.csproj │ └── dexih.connections.sftp.test.cs ├── dexih.connectinos.db2.tests │ ├── appsettings.json │ └── dexih.connectinos.db2.tests.csproj ├── dexih.connections.mongo.tests │ ├── appsettings.json │ └── dexih.connections.mongo.tests.csproj ├── dexih.functions.ml.tests │ ├── dexih.functions.ml.tests.csproj │ └── recommendation.cs ├── dexih.connections.oracle.tests │ ├── appsettings.json │ └── dexih.connections.oracle.tests.csproj ├── dexih.connections.sqlite.tests │ ├── appsettings.json │ └── dexih.connections.sqlite.tests.csproj ├── dexih.connections.mysql.tests │ ├── appsettings.json │ └── dexih.connections.mysql.tests.csproj ├── dexih.connections.sqlserver.tests │ ├── appsettings.json │ └── dexih.connections.sqlserver.tests.csproj ├── dexih.connections.postgressql.tests │ ├── appsettings.json │ └── dexih.connections.postgressql.tests.csproj ├── dexih.functions.financial.tests │ ├── Financial.cs │ └── dexih.functions.financial.tests.csproj ├── dexih.functions.builtIn.tests │ └── dexih.functions.builtIn.tests.csproj ├── dexih.connections.github.tests │ └── dexih.connections.github.tests.csproj └── dexih.functions.tests.async │ └── dexih.functions.tests.async.csproj ├── samples ├── .DS_Store └── FunctionExamples │ ├── BookClass.cs │ ├── Program.cs │ ├── Properties │ └── AssemblyInfo.cs │ ├── ReaderExamples.csproj │ └── CreatePocoReader.cs ├── global.json ├── scripts ├── start_postgres.sh ├── start_mysql.sh ├── start_sql_server.sh └── start_oracle.sh └── archived └── dexih.connections.webservice.soap ├── .DS_Store ├── .vscode ├── tasks.json └── launch.json └── Properties └── AssemblyInfo.cs /bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | return jQuery; 2 | })); 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return []; 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define( [ "./selector-sizzle" ], function() {} ); 2 | -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/.DS_Store -------------------------------------------------------------------------------- /test/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/deletedIds.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return []; 3 | } ); 4 | -------------------------------------------------------------------------------- /samples/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/samples/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /\?/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /\S+/g ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^margin/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/document.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return window.document; 3 | } ); 4 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "projects": [ "src", "test" ], 3 | "sdk": { 4 | "version": "6.0.101" 5 | } 6 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/location.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return window.location; 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rtagName.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /<([\w:-]+)/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rleadingWhitespace.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^\s+/ ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | } ); 6 | -------------------------------------------------------------------------------- /src/dexih.transforms/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.transforms/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // [[Class]] -> type pairs 4 | return {}; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/dataPriv.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/dataUser.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^(?:checkbox|radio)$/i ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/rscriptType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /^$|\/(?:java|ecma)script/i ); 3 | } ); 4 | -------------------------------------------------------------------------------- /bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 3 | } ); 4 | -------------------------------------------------------------------------------- /scripts/start_postgres.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | docker run --name postgres -p 5433:5432 -e POSTGRES_PASSWORD=password -d postgres -------------------------------------------------------------------------------- /src/dexih.connections.azure/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.connections.azure/.DS_Store -------------------------------------------------------------------------------- /test/dexih.connections.test/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.test/.DS_Store -------------------------------------------------------------------------------- /test/dexih.functions.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.functions.tests/.DS_Store -------------------------------------------------------------------------------- /test/dexih.transforms.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.transforms.tests/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | } ); 6 | -------------------------------------------------------------------------------- /src/dexih.connections.flatfile/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.connections.flatfile/.DS_Store -------------------------------------------------------------------------------- /test/dexih.connections.sql.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.sql.tests/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | } ); 6 | -------------------------------------------------------------------------------- /test/dexih.connections.azure.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.azure.tests/.DS_Store -------------------------------------------------------------------------------- /test/dexih.connections.excel.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.excel.tests/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | } ); 6 | -------------------------------------------------------------------------------- /scripts/start_mysql.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | docker run -d --name mysql -p 3306:3306 -p 33060:33060 -p 8080:8080 -e MYSQL_ROOT_PASSWORD=password mysql -------------------------------------------------------------------------------- /test/dexih.connections.flatfile.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.flatfile.tests/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/documentElement.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./document" 3 | ], function( document ) { 4 | return document.documentElement; 5 | } ); 6 | -------------------------------------------------------------------------------- /archived/dexih.connections.webservice.soap/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/archived/dexih.connections.webservice.soap/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // All support tests are defined in their respective modules. 4 | return {}; 5 | } ); 6 | -------------------------------------------------------------------------------- /src/dexih.connections.webservice.restful/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.connections.webservice.restful/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // Match a standalone tag 4 | return ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ); 5 | } ); 6 | -------------------------------------------------------------------------------- /scripts/start_sql_server.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | docker run --name=sqlserver -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password12!' -p 1433:1433 -d microsoft/mssql-server-linux -------------------------------------------------------------------------------- /test/dexih.connections.webservice.restful.tests/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/test/dexih.connections.webservice.restful.tests/.DS_Store -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | } ); 6 | -------------------------------------------------------------------------------- /scripts/start_oracle.sh: -------------------------------------------------------------------------------- 1 | docker run --name oracle -d -it -P -p 1521:1521 -p 5500:5500 -e ORACLE_SID=ORCLCDB -e ORACLE_PDB=ORCLPDB1 store/oracle/database-enterprise:12.2.0.1 2 | 3 | -------------------------------------------------------------------------------- /src/dexih.functions.ml/runtimes/linux-x64/native/libiomp5.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.functions.ml/runtimes/linux-x64/native/libiomp5.so -------------------------------------------------------------------------------- /src/dexih.functions.ml/runtimes/osx-x64/native/libiomp5.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataExperts/dexih.transforms/HEAD/src/dexih.functions.ml/runtimes/osx-x64/native/libiomp5.dylib -------------------------------------------------------------------------------- /bower_components/jquery/src/var/rcssNum.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/pnum" 3 | ], function( pnum ) { 4 | 5 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 6 | 7 | } ); 8 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | } ); 7 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusin = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | } ); 10 | -------------------------------------------------------------------------------- /src/dexih.functions.maths/Matrix.cs: -------------------------------------------------------------------------------- 1 | namespace dexih.functions.maths 2 | { 3 | public class Matrix 4 | { 5 | // public object[,] MatrixAdd(object[,] m1, object[,] m2) 6 | // { 7 | // 8 | // } 9 | } 10 | } -------------------------------------------------------------------------------- /test/dexih.transforms.tests.async/dexih.transforms.tests.async.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netcoreapp2.1 4 | false 5 | 6 | -------------------------------------------------------------------------------- /bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | } ); 12 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/var/nodeNames.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return "abbr|article|aside|audio|bdi|canvas|data|datalist|" + 3 | "details|dialog|figcaption|figure|footer|header|hgroup|main|" + 4 | "mark|meter|nav|output|picture|progress|section|summary|template|time|video"; 5 | } ); 6 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/siblings.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | return function( n, elem ) { 4 | var matched = []; 5 | 6 | for ( ; n; n = n.nextSibling ) { 7 | if ( n.nodeType === 1 && n !== elem ) { 8 | matched.push( n ); 9 | } 10 | } 11 | 12 | return matched; 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/Data/array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Harry", 4 | "age": 10, 5 | "numbers": [1,2,3] 6 | }, 7 | { 8 | "name": "Ron", 9 | "age": 11, 10 | "numbers": [1,2,3] 11 | }, 12 | { 13 | "name": "Hermione", 14 | "age": 10, 15 | "numbers": [1,2,3] 16 | } 17 | ] -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/InvalidJoinStrategyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Exceptions 4 | { 5 | public class InvalidJoinStrategyException : Exception 6 | { 7 | public InvalidJoinStrategyException(string message) : base(message) 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep( jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | } ).length; 11 | }; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /test/dexih.connections.test/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [], 10 | "isBuildCommand": true, 11 | "problemMatcher": "$msCompile" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/dexih.functions.tests/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [], 10 | "isBuildCommand": true, 11 | "problemMatcher": "$msCompile" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/core/DOMEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document" 3 | ], function( document ) { 4 | function DOMEval( code, doc ) { 5 | doc = doc || document; 6 | 7 | var script = doc.createElement( "script" ); 8 | 9 | script.text = code; 10 | doc.head.appendChild( script ).parentNode.removeChild( script ); 11 | } 12 | 13 | return DOMEval; 14 | } ); 15 | -------------------------------------------------------------------------------- /src/dexih.transforms/Connections/ConnectionsExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms 4 | { 5 | public class ConnectionNotFoundException : Exception 6 | { 7 | public ConnectionNotFoundException() 8 | { 9 | } 10 | 11 | public ConnectionNotFoundException(string message) : base(message) 12 | { 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Transforms/TransformsExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms 4 | { 5 | public class TransformnNotFoundException : Exception 6 | { 7 | public TransformnNotFoundException() 8 | { 9 | } 10 | 11 | public TransformnNotFoundException(string message) : base(message) 12 | { 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /archived/dexih.connections.webservice.soap/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ "-f", "netcoreapp1.1"], 10 | "isBuildCommand": true, 11 | "problemMatcher": "$msCompile" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /src/dexih.functions/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/dexih.transforms/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/dexih.connections.azure/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/dexih.connections.flatfile/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /test/dexih.connections.sql.tests/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/dexih.connections.webservice.restful/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | "command": "dotnet", 4 | "isShellCommand": true, 5 | "args": [], 6 | "tasks": [ 7 | { 8 | "taskName": "build", 9 | "args": [ 10 | "" 11 | ], 12 | "isBuildCommand": true, 13 | "problemMatcher": "$msCompile" 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Table/TableIndex.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Runtime.Serialization; 3 | 4 | namespace dexih.functions 5 | { 6 | [DataContract] 7 | public class TableIndex 8 | { 9 | [DataMember(Order = 0)] 10 | public string Name { get; set; } 11 | 12 | [DataMember(Order = 1)] 13 | public List Columns { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "../external/sizzle/dist/sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[ ":" ] = jQuery.expr.pseudos; 9 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | } ); 15 | -------------------------------------------------------------------------------- /bower_components/jquery/src/data/var/acceptData.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | /** 4 | * Determines whether an object can have data 5 | */ 6 | return function( owner ) { 7 | 8 | // Accepts only: 9 | // - Node 10 | // - Node.ELEMENT_NODE 11 | // - Node.DOCUMENT_NODE 12 | // - Object 13 | // - Any 14 | /* jshint -W018 */ 15 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 16 | }; 17 | 18 | } ); 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ 8 | "ajaxStart", 9 | "ajaxStop", 10 | "ajaxComplete", 11 | "ajaxError", 12 | "ajaxSuccess", 13 | "ajaxSend" 14 | ], function( i, type ) { 15 | jQuery.fn[ type ] = function( fn ) { 16 | return this.on( type, fn ); 17 | }; 18 | } ); 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax( { 7 | url: url, 8 | 9 | // Make this explicit, since user can override this through ajaxSetup (#11264) 10 | type: "GET", 11 | dataType: "script", 12 | async: false, 13 | global: false, 14 | "throws": true 15 | } ); 16 | }; 17 | 18 | return jQuery._evalUrl; 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/QueryExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.functions.Query 4 | { 5 | public class QueryException: Exception 6 | { 7 | public QueryException() 8 | { 9 | } 10 | public QueryException(string message) : base(message) 11 | { 12 | } 13 | public QueryException(string message, Exception innerException): base(message, innerException) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | 5 | // css is assumed 6 | ], function( jQuery ) { 7 | 8 | return function( elem, el ) { 9 | 10 | // isHidden might be called from jQuery#filter function; 11 | // in that case, element will be second argument 12 | elem = el || elem; 13 | return jQuery.css( elem, "display" ) === "none" || 14 | !jQuery.contains( elem.ownerDocument, elem ); 15 | }; 16 | } ); 17 | -------------------------------------------------------------------------------- /src/dexih.functions.external/dexih.functions.external.csproj.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | Experimental -------------------------------------------------------------------------------- /src/dexih.transforms/Query/InputParameter.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | 3 | 4 | namespace dexih.functions.Query 5 | { 6 | [DataContract] 7 | public class InputParameter 8 | { 9 | [DataMember(Order = 0)] 10 | public string Name { get; set; } 11 | 12 | [DataMember(Order = 1)] 13 | public object Value { get; set; } 14 | 15 | [DataMember(Order = 2)] 16 | public int Rank { get; set; } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | return function( elem ) { 3 | 4 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 5 | // IE throws on elements created in popups 6 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 7 | var view = elem.ownerDocument.defaultView; 8 | 9 | if ( !view || !view.opener ) { 10 | view = window; 11 | } 12 | 13 | return view.getComputedStyle( elem ); 14 | }; 15 | } ); 16 | -------------------------------------------------------------------------------- /bower_components/jquery/src/traversing/var/dir.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | 5 | return function( elem, dir, until ) { 6 | var matched = [], 7 | truncate = until !== undefined; 8 | 9 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 10 | if ( elem.nodeType === 1 ) { 11 | if ( truncate && jQuery( elem ).is( until ) ) { 12 | break; 13 | } 14 | matched.push( elem ); 15 | } 16 | } 17 | return matched; 18 | }; 19 | 20 | } ); 21 | -------------------------------------------------------------------------------- /src/dexih.functions/Extensions/DictionaryExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace dexih.functions 4 | { 5 | public static class DictionaryExtensions 6 | { 7 | public static U GetOrDefault(this Dictionary dictionary, T key) 8 | { 9 | if (dictionary.TryGetValue(key, out var value)) 10 | { 11 | return value; 12 | } 13 | 14 | return default; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/data/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var div = document.createElement( "div" ); 8 | 9 | // Support: IE<9 10 | support.deleteExpando = true; 11 | try { 12 | delete div.test; 13 | } catch ( e ) { 14 | support.deleteExpando = false; 15 | } 16 | 17 | // Null elements to avoid leaks in IE. 18 | div = null; 19 | } )(); 20 | 21 | return support; 22 | 23 | } ); 24 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/createSafeFragment.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./var/nodeNames" 3 | ], function( nodeNames ) { 4 | 5 | function createSafeFragment( document ) { 6 | var list = nodeNames.split( "|" ), 7 | safeFrag = document.createDocumentFragment(); 8 | 9 | if ( safeFrag.createElement ) { 10 | while ( list.length ) { 11 | safeFrag.createElement( 12 | list.pop() 13 | ); 14 | } 15 | } 16 | return safeFrag; 17 | } 18 | 19 | return createSafeFragment; 20 | } ); 21 | -------------------------------------------------------------------------------- /src/dexih.transforms/View/AnimateConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | 3 | namespace dexih.repository.Properties 4 | { 5 | [DataContract] 6 | public class AnimateConfig 7 | { 8 | [DataMember(Order = 0)] 9 | public string SeriesColumn { get; set; } 10 | 11 | [DataMember(Order = 1)] 12 | public bool Automatic { get; set; } = true; 13 | 14 | [DataMember(Order = 2)] 15 | public int Delay { get; set; } = 500; 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/setGlobalEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | // Mark scripts as having already been evaluated 6 | function setGlobalEval( elems, refElements ) { 7 | var i = 0, 8 | l = elems.length; 9 | 10 | for ( ; i < l; i++ ) { 11 | dataPriv.set( 12 | elems[ i ], 13 | "globalEval", 14 | !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 15 | ); 16 | } 17 | } 18 | 19 | return setGlobalEval; 20 | } ); 21 | -------------------------------------------------------------------------------- /src/dexih.transforms/Poco/IPocoEnumerator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | 5 | namespace dexih.transforms.Poco 6 | { 7 | public interface IPocoEnumerator: IEnumerator 8 | { 9 | Task MoveNextAsync(CancellationToken cancellationToken = default); 10 | T this[int index] { get; } 11 | int Count { get; } 12 | Task CountAsync(CancellationToken cancellationToken = default); 13 | } 14 | } -------------------------------------------------------------------------------- /src/dexih.functions.maths/dexih.functions.maths.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.1 5 | 7.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/dexih.connections.dynamodb/dexih.connections.dynamodb.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 8 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/JoinNotFoundException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Exceptions 4 | { 5 | public class JoinNotFoundException : Exception 6 | { 7 | public JoinNotFoundException(string message, string joinTableAlias, object[] keyValue) : base(message) 8 | { 9 | JoinTableAlias = joinTableAlias; 10 | KeyValue = keyValue; 11 | } 12 | 13 | public string JoinTableAlias { get; set; } 14 | public object[] KeyValue { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/DuplicateJoinKeyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Exceptions 4 | { 5 | public class DuplicateJoinKeyException : Exception 6 | { 7 | public DuplicateJoinKeyException(string message, string joinTableAlias, object[] keyValue) : base(message) 8 | { 9 | JoinTableAlias = joinTableAlias; 10 | KeyValue = keyValue; 11 | } 12 | 13 | public string JoinTableAlias { get; set; } 14 | public object[] KeyValue { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/dexih.connections.azure.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "Azure": { 7 | "NtAuthentication": false, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "" 11 | } 12 | }, 13 | "Logging": { 14 | "IncludeScopes": false, 15 | "LogLevel": { 16 | "Default": "Verbose", 17 | "System": "Information", 18 | "Microsoft": "Information" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/dexih.transforms/Poco/PocoTableMapping.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | namespace dexih.transforms.Poco 4 | { 5 | public class PocoTableMapping 6 | { 7 | public PropertyInfo PropertyInfo { get; set; } 8 | public int Position { get; set; } 9 | public bool IsKey { get; set; } 10 | 11 | public PocoTableMapping(PropertyInfo propertyInfo, int position, bool isKey) 12 | { 13 | PropertyInfo = propertyInfo; 14 | Position = position; 15 | IsKey = isKey; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /samples/FunctionExamples/BookClass.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using dexih.functions; 3 | using dexih.transforms.Poco; 4 | 5 | namespace FunctionExamples 6 | { 7 | public class BookClass 8 | { 9 | [PocoColumn("code", DeltaType = EDeltaType.NaturalKey)] 10 | public string Code { get; set; } 11 | 12 | [PocoColumn("name")] 13 | public string Name { get; set; } 14 | 15 | [PocoColumn("name")] 16 | public int Cost { get; set; } 17 | 18 | [PocoColumn("date_published")] 19 | public DateTime Published { get; set; } 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /src/dexih.functions.builtIn/dexih.functions.builtIn.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.1 5 | 7.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/InsertQuery.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections.Generic; 3 | using System.Runtime.Serialization; 4 | 5 | namespace dexih.functions.Query 6 | { 7 | [DataContract] 8 | public class InsertQuery 9 | { 10 | public InsertQuery() 11 | { 12 | InsertColumns = new List(); 13 | } 14 | 15 | public InsertQuery(List insertColumns) 16 | { 17 | InsertColumns = insertColumns; 18 | } 19 | 20 | [DataMember(Order = 0)] 21 | public List InsertColumns { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "boss": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "eqnull": true, 6 | "expr": true, 7 | "immed": true, 8 | "noarg": true, 9 | "quotmark": "double", 10 | "undef": true, 11 | "unused": true, 12 | 13 | "sub": true, 14 | 15 | // Support: IE < 10, Android < 4.1 16 | // The above browsers are failing a lot of tests in the ES5 17 | // test suite at http://test262.ecmascript.org. 18 | "es3": true, 19 | 20 | "globals": { 21 | "window": true, 22 | "JSON": false, 23 | 24 | "jQuery": true, 25 | "define": true, 26 | "module": true, 27 | "noGlobal": true 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 15 | } catch ( e ) { 16 | xml = undefined; 17 | } 18 | 19 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 20 | jQuery.error( "Invalid XML: " + data ); 21 | } 22 | return xml; 23 | }; 24 | 25 | return jQuery.parseXML; 26 | 27 | } ); 28 | -------------------------------------------------------------------------------- /test/dexih.connections.ftp.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "FlatFileFtp": { 7 | "NtAuthentication": "", 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Logging": { 17 | "IncludeScopes": false, 18 | "LogLevel": { 19 | "Default": "Verbose", 20 | "System": "Information", 21 | "Microsoft": "Information" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /test/dexih.connections.sftp.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "FlatFileSFtp": { 7 | "NtAuthentication": "", 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Logging": { 17 | "IncludeScopes": false, 18 | "LogLevel": { 19 | "Default": "Verbose", 20 | "System": "Information", 21 | "Microsoft": "Information" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/DeleteQuery.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | 3 | namespace dexih.functions.Query 4 | { 5 | [DataContract] 6 | public class DeleteQuery 7 | { 8 | public DeleteQuery(string table, Filters filters) 9 | { 10 | Table = table; 11 | Filters = filters; 12 | } 13 | public DeleteQuery() 14 | { 15 | Filters = new Filters(); 16 | } 17 | 18 | [DataMember(Order = 0)] 19 | public string Table { get; set; } 20 | 21 | [DataMember(Order = 1)] 22 | public Filters Filters { get; set; } 23 | } 24 | } -------------------------------------------------------------------------------- /test/dexih.connections.excel.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "Excel": { 7 | "NtAuthentication": true, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "/tests" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Logging": { 17 | "IncludeScopes": false, 18 | "LogLevel": { 19 | "Default": "Verbose", 20 | "System": "Information", 21 | "Microsoft": "Information" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/var/swap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // A method for quickly swapping in/out CSS properties to get correct calculations. 4 | return function( elem, options, callback, args ) { 5 | var ret, name, 6 | old = {}; 7 | 8 | // Remember the old values, and insert the new ones 9 | for ( name in options ) { 10 | old[ name ] = elem.style[ name ]; 11 | elem.style[ name ] = options[ name ]; 12 | } 13 | 14 | ret = callback.apply( elem, args || [] ); 15 | 16 | // Revert the old values 17 | for ( name in options ) { 18 | elem.style[ name ] = old[ name ]; 19 | } 20 | 21 | return ret; 22 | }; 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /test/dexih.connections.flatfile.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "FlatFileLocal": { 7 | "NtAuthentication": true, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "c:\\" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Logging": { 17 | "IncludeScopes": false, 18 | "LogLevel": { 19 | "Default": "Verbose", 20 | "System": "Information", 21 | "Microsoft": "Information" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | return !jQuery.expr.filters.visible( elem ); 8 | }; 9 | jQuery.expr.filters.visible = function( elem ) { 10 | 11 | // Support: Opera <= 12.12 12 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 13 | // Use OR instead of AND as the element is not visible if either is true 14 | // See tickets #10406 and #13132 15 | return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0; 16 | }; 17 | 18 | } ); 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | 5 | // Define the hook, we'll check on the first run if it's really needed. 6 | return { 7 | get: function() { 8 | if ( conditionFn() ) { 9 | 10 | // Hook not needed (or it's not possible to use it due 11 | // to missing dependency), remove it. 12 | delete this.get; 13 | return; 14 | } 15 | 16 | // Hook needed; redefine it so that the support test is not executed again. 17 | return ( this.get = hookFn ).apply( this, arguments ); 18 | } 19 | }; 20 | } 21 | 22 | return addGetHookIf; 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/getAll.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | function getAll( context, tag ) { 6 | 7 | // Support: IE9-11+ 8 | // Use typeof to avoid zero-argument method invocation on host objects (#15151) 9 | var ret = typeof context.getElementsByTagName !== "undefined" ? 10 | context.getElementsByTagName( tag || "*" ) : 11 | typeof context.querySelectorAll !== "undefined" ? 12 | context.querySelectorAll( tag || "*" ) : 13 | []; 14 | 15 | return tag === undefined || tag && jQuery.nodeName( context, tag ) ? 16 | jQuery.merge( [ context ], ret ) : 17 | ret; 18 | } 19 | 20 | return getAll; 21 | } ); 22 | -------------------------------------------------------------------------------- /bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "2.2.3", 16 | "_release": "2.2.3", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "2.2.3", 20 | "commit": "af22a351b2ea5801ffb1695abb3bb34d5bed9198" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": "2.2.3", 24 | "_originalSource": "jquery", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | var 2 | 3 | // Map over jQuery in case of overwrite 4 | _jQuery = window.jQuery, 5 | 6 | // Map over the $ in case of overwrite 7 | _$ = window.$; 8 | 9 | jQuery.noConflict = function( deep ) { 10 | if ( window.$ === jQuery ) { 11 | window.$ = _$; 12 | } 13 | 14 | if ( deep && window.jQuery === jQuery ) { 15 | window.jQuery = _jQuery; 16 | } 17 | 18 | return jQuery; 19 | }; 20 | 21 | // Expose jQuery and $ identifiers, even in AMD 22 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 23 | // and CommonJS for browser emulators (#13566) 24 | if ( !noGlobal ) { 25 | window.jQuery = window.$ = jQuery; 26 | } 27 | -------------------------------------------------------------------------------- /src/dexih.transforms/Table/TableIndexColumn.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | 3 | namespace dexih.functions 4 | { 5 | [DataContract] 6 | public class TableIndexColumn 7 | { 8 | [DataMember(Order = 0)] 9 | public string ColumnName { get; set; } 10 | 11 | [DataMember(Order = 1)] 12 | public ESortDirection Direction { get; set; } = ESortDirection.Ascending; 13 | 14 | public TableIndexColumn() {} 15 | 16 | public TableIndexColumn(string columnName, ESortDirection direction = ESortDirection.Ascending) 17 | { 18 | ColumnName = columnName; 19 | Direction = direction; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/dexih.transforms/File/FileProperties.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | 4 | namespace dexih.transforms.File 5 | { 6 | public class FileProperties 7 | { 8 | public string FileName { get; set; } 9 | public virtual DateTime LastModified { get; set; } 10 | public virtual long Length { get; set; } 11 | public virtual string ContentType { get; set; } 12 | public string Owner { get; set; } 13 | 14 | /// 15 | /// Loads attributes for file connections which require additional lookups 16 | /// 17 | public Func LoadAttributes { get; set; } = () => Task.CompletedTask; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/dexih.transforms/View/ViewConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using dexih.repository; 3 | using dexih.repository.Properties; 4 | 5 | namespace dexih.transforms.View 6 | { 7 | // [JsonConverter(typeof(StringEnumConverter))] 8 | public enum EViewType 9 | { 10 | Table = 1, Chart 11 | } 12 | 13 | [DataContract] 14 | public class ViewConfig 15 | { 16 | [DataMember(Order = 0)] 17 | public EViewType ViewType { get; set; } 18 | 19 | [DataMember(Order = 1)] 20 | public ChartConfig ChartConfig { get; set; } 21 | 22 | [DataMember(Order = 2)] 23 | public AnimateConfig AnimateConfig { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/core/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | // Support: Safari 8+ 7 | // In Safari 8 documents created via document.implementation.createHTMLDocument 8 | // collapse sibling forms: the second one becomes a child of the first one. 9 | // Because of that, this security measure has to be disabled in Safari 8. 10 | // https://bugs.webkit.org/show_bug.cgi?id=137337 11 | support.createHTMLDocument = ( function() { 12 | var body = document.implementation.createHTMLDocument( "" ).body; 13 | body.innerHTML = "
"; 14 | return body.childNodes.length === 2; 15 | } )(); 16 | 17 | return support; 18 | } ); 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/deferred/exceptionHook.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../deferred" 4 | ], function( jQuery ) { 5 | 6 | // These usually indicate a programmer mistake during development, 7 | // warn about them ASAP rather than swallowing them by default. 8 | var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 9 | 10 | jQuery.Deferred.exceptionHook = function( error, stack ) { 11 | 12 | // Support: IE9 13 | // Console exists when dev tools are open, which can happen at any time 14 | if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 15 | window.console.warn( "jQuery.Deferred exception: " + error.message, stack ); 16 | } 17 | }; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /test/dexih.connectinos.db2.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "DB2": { 7 | "NtAuthentication": false, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/dexih.connections.test/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false 14 | }, 15 | { 16 | "name": ".NET Core Attach", 17 | "type": "coreclr", 18 | "request": "attach", 19 | "processId": 0 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Query/Joins.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace dexih.functions.Query 4 | { 5 | public class Joins: List 6 | { 7 | public Joins() {} 8 | 9 | public Joins(IEnumerable joins) 10 | { 11 | if (joins == null) return; 12 | 13 | AddRange(joins); 14 | } 15 | 16 | public Joins(EJoinType joinType, Table table, Filters joinFilters) 17 | { 18 | Add(new Join(joinType, table, joinFilters)); 19 | } 20 | 21 | public Joins(EJoinType joinType, Table table, string alias, Filters joinFilters) 22 | { 23 | Add(new Join(joinType, table, alias, joinFilters)); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = window.setTimeout( next, time ); 15 | hooks.stop = function() { 16 | window.clearTimeout( timeout ); 17 | }; 18 | } ); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | } ); 23 | -------------------------------------------------------------------------------- /src/dexih.transforms/DataPack/DataPack.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Runtime.Serialization; 3 | 4 | 5 | namespace dexih.transforms 6 | { 7 | /// 8 | /// Used to transmit data previews 9 | /// 10 | [DataContract] 11 | public class DataPack 12 | { 13 | [DataMember(Order = 0)] 14 | public string Name { get; set; } 15 | 16 | [DataMember(Order = 1)] 17 | public DataPackColumn[] Columns { get; set; } 18 | 19 | [DataMember(Order = 2)] 20 | public List Data { get; set; } = new List(); 21 | 22 | [DataMember(Order = 3)] 23 | public TransformProperties TransformProperties { get; set; } 24 | } 25 | } -------------------------------------------------------------------------------- /test/dexih.transforms.tests/DataReaderAdapterTests.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Xunit; 3 | 4 | namespace dexih.transforms.tests 5 | { 6 | public class DataReaderAdapterTests 7 | { 8 | [Fact] 9 | public async Task DataReaderAdapterAdapter_Tests() 10 | { 11 | var Table = Helpers.CreateSortedTestData(); 12 | 13 | Assert.Equal(6, Table.FieldCount); 14 | 15 | var count = 0; 16 | while (await Table.ReadAsync()) 17 | { 18 | count = count + 1; 19 | Assert.Equal(Table[1], count); 20 | Assert.Equal(Table["IntColumn"], count); 21 | } 22 | 23 | Assert.Equal(10, count); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/dexih.connections.mongo.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "Mongo": { 7 | "UserName": "", 8 | "Password": "", 9 | "ServerName": "localhost:27017" 10 | } 11 | }, 12 | "ApplicationInsights": { 13 | "InstrumentationKey": "" 14 | }, 15 | "Data": { 16 | "DefaultConnection": { 17 | "ConnectionString": "Server=localhost:27017:;Database=master;User ID=root;Password=password" 18 | } 19 | }, 20 | "Logging": { 21 | "IncludeScopes": false, 22 | "LogLevel": { 23 | "Default": "Verbose", 24 | "System": "Information", 25 | "Microsoft": "Information" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/TransformWriterBulk.cs: -------------------------------------------------------------------------------- 1 | namespace dexih.transforms.tests 2 | { 3 | public class TransformWriterBulk 4 | { 5 | // [Fact] 6 | // public async Task WriteSingleTarget() 7 | // { 8 | // var reader = Helpers.CreateSortedTestData(); 9 | // 10 | // var targetConnection = new ConnectionMemory(); 11 | // var targetTable = reader.CacheTable.Copy(); 12 | // targetTable.Name = "target"; 13 | // 14 | // var target = new TransformWriterTarget(TransformWriterTarget.ETransformWriterMethod.Bulk, ); 15 | // 16 | // var writer = new TransformWriter(); 17 | // writer.WriteRecordsAsync(reader,) 18 | // 19 | // } 20 | } 21 | } -------------------------------------------------------------------------------- /test/dexih.functions.ml.tests/dexih.functions.ml.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bower_components/jquery/src/event/alias.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | 4 | "../event", 5 | "./trigger" 6 | ], function( jQuery ) { 7 | 8 | jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " + 9 | "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 10 | "change select submit keydown keypress keyup error contextmenu" ).split( " " ), 11 | function( i, name ) { 12 | 13 | // Handle event binding 14 | jQuery.fn[ name ] = function( data, fn ) { 15 | return arguments.length > 0 ? 16 | this.on( name, null, data, fn ) : 17 | this.trigger( name ); 18 | }; 19 | } ); 20 | 21 | jQuery.fn.extend( { 22 | hover: function( fnOver, fnOut ) { 23 | return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 24 | } 25 | } ); 26 | 27 | } ); 28 | -------------------------------------------------------------------------------- /bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./event/focusin", 15 | "./manipulation", 16 | "./manipulation/_evalUrl", 17 | "./wrap", 18 | "./css", 19 | "./css/hiddenVisibleSelectors", 20 | "./serialize", 21 | "./ajax", 22 | "./ajax/xhr", 23 | "./ajax/script", 24 | "./ajax/jsonp", 25 | "./ajax/load", 26 | "./event/ajax", 27 | "./effects", 28 | "./effects/animatedSelector", 29 | "./offset", 30 | "./dimensions", 31 | "./deprecated", 32 | "./exports/amd" 33 | ], function( jQuery ) { 34 | 35 | return ( window.jQuery = window.$ = jQuery ); 36 | 37 | } ); 38 | -------------------------------------------------------------------------------- /src/dexih.functions/DownloadUrl.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | 3 | namespace dexih.functions 4 | { 5 | [DataContract] 6 | public class DownloadUrl 7 | { 8 | public DownloadUrl() 9 | { 10 | 11 | } 12 | public DownloadUrl(string url, EDownloadUrlType downloadUrlType, bool isEncrypted) 13 | { 14 | Url = url; 15 | DownloadUrlType = downloadUrlType; 16 | IsEncrypted = isEncrypted; 17 | } 18 | 19 | [DataMember(Order = 0)] 20 | public string Url { get; set; } 21 | 22 | [DataMember(Order = 1)] 23 | public EDownloadUrlType DownloadUrlType { get; set; } 24 | 25 | [DataMember(Order = 2)] 26 | public bool IsEncrypted { get; set; } 27 | } 28 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core" 3 | ], function( jQuery ) { 4 | 5 | jQuery.fn.extend( { 6 | 7 | bind: function( types, data, fn ) { 8 | return this.on( types, null, data, fn ); 9 | }, 10 | unbind: function( types, fn ) { 11 | return this.off( types, null, fn ); 12 | }, 13 | 14 | delegate: function( selector, types, data, fn ) { 15 | return this.on( types, selector, data, fn ); 16 | }, 17 | undelegate: function( selector, types, fn ) { 18 | 19 | // ( namespace ) or ( selector, types [, fn] ) 20 | return arguments.length === 1 ? 21 | this.off( selector, "**" ) : 22 | this.off( types, selector || "**", fn ); 23 | }, 24 | size: function() { 25 | return this.length; 26 | } 27 | } ); 28 | 29 | jQuery.fn.andSelf = jQuery.fn.addBack; 30 | 31 | } ); 32 | 33 | -------------------------------------------------------------------------------- /test/dexih.connections.oracle.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "Oracle": { 7 | "NtAuthentication": false, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/dexih.connections.sqlite.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "Sqlite": { 7 | "NtAuthentication": true, 8 | "UserName": "", 9 | "Password": "", 10 | "ServerName": "./" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/dexih.functions/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/dexih.transforms/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/dexih.connections.azure/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/dexih.connections.flatfile/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /test/dexih.connections.sql.tests/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/TransformExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using dexih.functions.Exceptions; 3 | 4 | namespace dexih.transforms.Exceptions 5 | { 6 | public class TransformException : FunctionException 7 | { 8 | 9 | public TransformException() 10 | { 11 | } 12 | public TransformException(string message) : base(message) 13 | { 14 | } 15 | public TransformException(string message, Exception innerException, params object[] values) : base(message, innerException) 16 | { 17 | #if DEBUG 18 | Values = values; 19 | #endif 20 | } 21 | 22 | public TransformException(string message, params object[] values) : base(message) 23 | { 24 | #if DEBUG 25 | Values = values; 26 | #endif 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /archived/dexih.connections.webservice.soap/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/dexih.connections.webservice.restful/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": ".NET Core Launch (console)", 6 | "type": "coreclr", 7 | "request": "launch", 8 | "preLaunchTask": "build", 9 | "program": "${workspaceRoot}/bin/Debug//", 10 | "args": [], 11 | "cwd": "${workspaceRoot}", 12 | "externalConsole": false, 13 | "stopAtEntry": false, 14 | "internalConsoleOptions": "openOnSessionStart" 15 | }, 16 | { 17 | "name": ".NET Core Attach", 18 | "type": "coreclr", 19 | "request": "attach", 20 | "processId": "${command.pickProcess}" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /test/dexih.connections.mysql.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "MySql": { 7 | "NtAuthentication": false, 8 | "UserName": "root", 9 | "Password": "Password12!", 10 | "ServerName": "localhost:3306" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/dataadapter.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Xunit; 3 | 4 | namespace dexih.transforms.tests 5 | { 6 | public class Dataadapter 7 | { 8 | /// 9 | /// This test should take about 450ms 10 | /// 11 | [Fact] 12 | public async Task TestDataAdapter() 13 | { 14 | var tableAdapter = Helpers.CreateLargeTable(100000); 15 | 16 | var count = 0; 17 | while(await tableAdapter.ReadAsync()) 18 | { 19 | for (var j = 0; j < 10; j++) 20 | { 21 | Assert.Equal( j, tableAdapter.GetValue(j)); 22 | } 23 | count++; 24 | } 25 | 26 | Assert.Equal(100000, count); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/dexih.connectinos.db2.tests/dexih.connectinos.db2.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /test/dexih.connections.ftp.tests/dexih.connections.ftp.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.connections.sqlserver.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "SqlServer": { 7 | "NTAuthentication": false, 8 | "UserName": "sa", 9 | "Password": "Password12!", 10 | "ServerName": "(local)\\SQL2017" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /samples/FunctionExamples/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FunctionExamples 4 | { 5 | public class Program 6 | { 7 | public static void Main(string[] args) 8 | { 9 | while (true) 10 | { 11 | Console.WriteLine(); 12 | Console.WriteLine("1. Create a reader. "); 13 | Console.WriteLine("q. Quit. "); 14 | 15 | var key = Console.ReadKey(); 16 | 17 | switch (key.KeyChar) 18 | { 19 | case '1': 20 | var poco = new CreatePocoReader(); 21 | poco.Create(); 22 | break; 23 | case 'q': 24 | return; 25 | 26 | } 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/dexih.connections.postgressql.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "PostgreSql": { 7 | "NtAuthentication": false, 8 | "UserName": "postgres", 9 | "Password": "Password12!", 10 | "ServerName": "localhost:5432" 11 | } 12 | }, 13 | "ApplicationInsights": { 14 | "InstrumentationKey": "" 15 | }, 16 | "Data": { 17 | "DefaultConnection": { 18 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 19 | } 20 | }, 21 | "Logging": { 22 | "IncludeScopes": false, 23 | "LogLevel": { 24 | "Default": "Verbose", 25 | "System": "Information", 26 | "Microsoft": "Information" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /test/dexih.connections.sftp.tests/dexih.connections.sftp.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.connections.mysql.tests/dexih.connections.mysql.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/dexih.transforms/Transforms/TransformAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | 5 | namespace dexih.transforms.Transforms 6 | { 7 | [DataContract] 8 | // [Union(0, typeof(TransformReference))] 9 | public class TransformAttribute: Attribute 10 | { 11 | // This is overridden as it causes the json serializer to 12 | // Method may only be called on a Type for which Type.IsGenericParameter is true error 13 | [IgnoreDataMember] 14 | public override object TypeId { get; } 15 | 16 | [DataMember(Order = 0)] 17 | public ETransformType TransformType { get; set; } 18 | 19 | [DataMember(Order = 1)] 20 | public string Name { get; set; } 21 | 22 | [DataMember(Order = 2)] 23 | public string Description { get; set; } 24 | 25 | } 26 | } -------------------------------------------------------------------------------- /test/dexih.connections.oracle.tests/dexih.connections.oracle.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.connections.sqlite.tests/dexih.connections.sqlite.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.functions.financial.tests/Financial.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xunit; 3 | 4 | namespace dexih.functions.financial.tests 5 | { 6 | /// 7 | /// Note, only testing the financial functions which are hand coded, not ones from the ExcelFinancialFunctions library. 8 | /// 9 | public class FinancialTests 10 | { 11 | 12 | [Fact] 13 | public void IIR_Test() 14 | { 15 | var function = new FinancialFunctions(); 16 | 17 | Assert.Null(function.RRI(5, 0, 0)); 18 | Assert.Equal(0, function.RRI(5, 10, 10)); 19 | Assert.Equal(1, function.RRI(2, 2, 8)); 20 | Assert.Equal(-0.5, function.RRI(2, 8, 2)); 21 | Assert.Equal(-1, function.RRI(2, 8, 0)); 22 | Assert.Null(function.RRI(2, 0, 10)); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /test/dexih.connections.sqlserver.tests/dexih.connections.sqlserver.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.connections.test/Data/transactions.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "transactionId": 1, 4 | "desc": "product 1", 5 | "items": [ 6 | { 7 | "itemId": 11, 8 | "desc": "component 11" 9 | }, 10 | { 11 | "itemId": 12, 12 | "desc": "component 12" 13 | }, 14 | { 15 | "itemId": 13, 16 | "desc": "component 13" 17 | } 18 | ] 19 | }, 20 | { 21 | "transactionId": 2, 22 | "desc": "product 2", 23 | "items": [ 24 | { 25 | "itemId": 21, 26 | "desc": "component 21" 27 | }, 28 | { 29 | "itemId": 22, 30 | "desc": "component 22" 31 | }, 32 | { 33 | "itemId": 23, 34 | "desc": "component 23" 35 | } 36 | ] 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /test/dexih.connections.postgressql.tests/dexih.connections.postgressql.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.functions.builtIn.tests/dexih.functions.builtIn.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | false 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/Data/weather.json: -------------------------------------------------------------------------------- 1 | { 2 | "coord": { 3 | "lon": -0.13, 4 | "lat": 51.51 5 | }, 6 | "weather": [ 7 | { 8 | "id": 300, 9 | "main": "Drizzle", 10 | "description": "light intensity drizzle", 11 | "icon": "09d" 12 | } 13 | ], 14 | "base": "stations", 15 | "main": { 16 | "temp": 280.32, 17 | "pressure": 1012, 18 | "humidity": 81, 19 | "temp_min": 279.15, 20 | "temp_max": 281.15 21 | }, 22 | "visibility": 10000, 23 | "wind": { 24 | "speed": 4.1, 25 | "deg": 80 26 | }, 27 | "clouds": { 28 | "all": 90 29 | }, 30 | "dt": 1485789600, 31 | "sys": { 32 | "type": 1, 33 | "id": 5091, 34 | "message": 0.0103, 35 | "country": "GB", 36 | "sunrise": 1485762037, 37 | "sunset": 1485794875 38 | }, 39 | "id": 2643743, 40 | "name": "London", 41 | "cod": 200 42 | } -------------------------------------------------------------------------------- /samples/FunctionExamples/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("FunctionExamples")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | [assembly: Guid("1da0d318-64eb-4151-ad0b-4062b7a862a6")] 19 | -------------------------------------------------------------------------------- /test/dexih.connections.github.tests/dexih.connections.github.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | dexih.connections.github.tests 6 | dexih.connections.github.tests 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/dexih.connections.azure/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.azure")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | [assembly: Guid("7f9a835e-7ad1-401a-93bc-e9fde586366f")] 19 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/lookup.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using System.Threading; 4 | using System.Threading.Tasks; 5 | using dexih.functions.Query; 6 | using Dexih.Utils.DataType; 7 | using Xunit; 8 | 9 | namespace dexih.transforms.tests 10 | { 11 | public class lookup 12 | { 13 | [Fact] 14 | public async Task Lookup_With_PreloadCache() 15 | { 16 | var testTransform = Helpers.CreateSortedTestData(); 17 | 18 | var query = new SelectQuery 19 | { 20 | Filters = new Filters() { new Filter("StringColumn", ECompare.IsEqual, "value04") } 21 | }; 22 | var row = await testTransform.Lookup(query, EDuplicateStrategy.Abend, CancellationToken.None); 23 | Assert.True((string)row.First()[0] == "value04", "Correct row not found"); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/dexih.connections.flatfile/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.flatfile")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | //[assembly: Guid("e9470918-7d49-4ad4-b015-60e4f1e02457")] 19 | -------------------------------------------------------------------------------- /test/dexih.connections.azure.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.azure.tests")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | [assembly: Guid("770f19c5-bd62-4af5-9c2d-d02212e0081f")] 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/wrapMap.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | // We have to close these tags to support XHTML (#13200) 4 | var wrapMap = { 5 | 6 | // Support: IE9 7 | option: [ 1, "" ], 8 | 9 | // XHTML parsers do not magically insert elements in the 10 | // same way that tag soup parsers do. So we cannot shorten 11 | // this by omitting or other required elements. 12 | thead: [ 1, "", "
" ], 13 | col: [ 2, "", "
" ], 14 | tr: [ 2, "", "
" ], 15 | td: [ 3, "", "
" ], 16 | 17 | _default: [ 0, "", "" ] 18 | }; 19 | 20 | // Support: IE9 21 | wrapMap.optgroup = wrapMap.option; 22 | 23 | wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 24 | wrapMap.th = wrapMap.td; 25 | 26 | return wrapMap; 27 | } ); 28 | -------------------------------------------------------------------------------- /test/dexih.connections.flatfile.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.flatfile.tests")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | [assembly: Guid("c4b351aa-98f8-419e-ab09-f718074571d4")] 19 | -------------------------------------------------------------------------------- /src/dexih.connections.webservice.restful/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.webservice.restful")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | //[assembly: Guid("c692e99d-b2b1-4a8e-8378-20f937110e72")] 19 | -------------------------------------------------------------------------------- /test/dexih.connections.webservice.restful.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("dexih.connections.webservice.restful.tests")] 10 | [assembly: AssemblyTrademark("")] 11 | 12 | // Setting ComVisible to false makes the types in this assembly not visible 13 | // to COM components. If you need to access a type in this assembly from 14 | // COM, set the ComVisible attribute to true on that type. 15 | [assembly: ComVisible(false)] 16 | 17 | // The following GUID is for the ID of the typelib if this project is exposed to COM 18 | [assembly: Guid("d9ee40a9-e8d4-4740-8e65-2319a262c909")] 19 | -------------------------------------------------------------------------------- /test/dexih.functions.tests.async/dexih.functions.tests.async.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netcoreapp3.1 4 | false 5 | dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/dexih.connections.sql.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("dexih.connections.sql.tests")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | [assembly: Guid("bead44b8-9796-42f6-b6d0-1b75abda5085")] 20 | -------------------------------------------------------------------------------- /archived/dexih.connections.webservice.soap/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyConfiguration("")] 9 | [assembly: AssemblyCompany("")] 10 | [assembly: AssemblyProduct("dexih.connections.webservice.soap")] 11 | [assembly: AssemblyTrademark("")] 12 | 13 | // Setting ComVisible to false makes the types in this assembly not visible 14 | // to COM components. If you need to access a type in this assembly from 15 | // COM, set the ComVisible attribute to true on that type. 16 | [assembly: ComVisible(false)] 17 | 18 | // The following GUID is for the ID of the typelib if this project is exposed to COM 19 | //[assembly: Guid("708723b0-4161-4aa5-b446-d5c70f79828f")] 20 | -------------------------------------------------------------------------------- /src/dexih.transforms/Mapping/MapGroup.cs: -------------------------------------------------------------------------------- 1 | using dexih.functions; 2 | 3 | namespace dexih.transforms.Mapping 4 | { 5 | public class MapGroup: MapColumn 6 | { 7 | public MapGroup(TableColumn inputColumn, TableColumn outputColumn) 8 | { 9 | InputColumn = inputColumn; 10 | OutputColumn = outputColumn; 11 | } 12 | 13 | public MapGroup(TableColumn inputColumn) 14 | { 15 | InputColumn = inputColumn; 16 | OutputColumn = inputColumn; 17 | } 18 | 19 | public MapGroup(object inputValue, TableColumn outputColumn) 20 | { 21 | InputValue = inputValue; 22 | OutputColumn = outputColumn; 23 | } 24 | 25 | public override void ProcessFillerRow(object[] row, object[] fillerRow, object seriesValue) 26 | { 27 | fillerRow[InputOrdinal] = row == null ? RowData?[InputOrdinal] : row[InputOrdinal]; 28 | } 29 | 30 | } 31 | } -------------------------------------------------------------------------------- /src/dexih.functions/Extensions/JsonTimeSpanConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.Json; 3 | using System.Text.Json.Serialization; 4 | 5 | namespace dexih.functions 6 | { 7 | public class JsonTimeSpanConverter: JsonConverter 8 | { 9 | public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) 10 | { 11 | if (reader.TokenType == JsonTokenType.String) 12 | { 13 | var value = reader.GetString(); 14 | if (string.IsNullOrEmpty(value)) 15 | { 16 | return default; 17 | } 18 | 19 | return TimeSpan.Parse(reader.GetString()); 20 | } 21 | 22 | return default; 23 | } 24 | 25 | public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options) 26 | { 27 | writer.WriteStringValue(value.ToString()); 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /test/dexih.connections.mongo.tests/dexih.connections.mongo.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | PreserveNewest 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/dexih.transforms/DataPack/DataPackColumn.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Runtime.Serialization; 3 | using dexih.functions; 4 | using Dexih.Utils.DataType; 5 | 6 | 7 | namespace dexih.transforms 8 | { 9 | [DataContract] 10 | public class DataPackColumn 11 | { 12 | public DataPackColumn() 13 | { 14 | 15 | } 16 | 17 | public DataPackColumn(TableColumn column) 18 | { 19 | Name = column.Name; 20 | LogicalName = column.LogicalName; 21 | DataType = column.DataType; 22 | ChildColumns = column.ChildColumns?.Select(c => new DataPackColumn(c)).ToArray(); 23 | } 24 | 25 | [DataMember(Order = 1)] 26 | public string Name { get; set; } 27 | 28 | [DataMember(Order = 2)] 29 | public string LogicalName { get; set; } 30 | 31 | [DataMember(Order = 3)] 32 | public ETypeCode DataType { get; set; } 33 | 34 | [DataMember(Order = 4)] 35 | public DataPackColumn[] ChildColumns; 36 | } 37 | } -------------------------------------------------------------------------------- /src/dexih.functions/Functions/FunctionVariables.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.functions 4 | { 5 | public enum EFunctionVariable 6 | { 7 | Index = 1, 8 | SeriesValue, 9 | Forecast 10 | } 11 | 12 | public struct FunctionVariables 13 | { 14 | public int Index { get; set; } 15 | public object SeriesValue { get; set; } 16 | public bool Forecast { get; set; } 17 | 18 | public object GetVariable(EFunctionVariable functionVariable) 19 | { 20 | switch (functionVariable) 21 | { 22 | case EFunctionVariable.Index: 23 | return Index; 24 | case EFunctionVariable.SeriesValue: 25 | return SeriesValue; 26 | case EFunctionVariable.Forecast: 27 | return Forecast; 28 | default: 29 | throw new ArgumentOutOfRangeException(nameof(functionVariable), functionVariable, null); 30 | } 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /src/dexih.functions.ml/DynamicTypeProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.RegularExpressions; 3 | using Dexih.Utils.DataType; 4 | 5 | namespace dexih.functions.ml 6 | { 7 | /// 8 | /// A property name, and type used to generate a property in the dynamic class. 9 | /// 10 | public class DynamicTypeProperty 11 | { 12 | public DynamicTypeProperty(string name, Type type, EEncoding? encoding = null) 13 | { 14 | Name = name; 15 | Type = type; 16 | Encoding = encoding; 17 | 18 | TypeCode = DataType.GetTypeCode(type, out _); 19 | } 20 | public string Name { get; } 21 | 22 | public string CleanName => Regex.Replace(Name, @"[^0-9a-zA-Z:,]+", ""); 23 | 24 | public Type Type { get; } 25 | 26 | public EEncoding? Encoding { get; } 27 | 28 | public ETypeCode TypeCode { get; } 29 | 30 | public object Convert(object value) 31 | { 32 | return Operations.Parse(TypeCode, value); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /src/dexih.transforms/TransformPerformance.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections.Generic; 3 | using System.Runtime.Serialization; 4 | 5 | namespace dexih.transforms 6 | { 7 | [DataContract] 8 | public class TransformPerformance 9 | { 10 | public TransformPerformance() 11 | { 12 | } 13 | 14 | public TransformPerformance(string transformName, long rows, double seconds) 15 | { 16 | TransformName = transformName; 17 | Rows = rows; 18 | Seconds = seconds; 19 | } 20 | 21 | [DataMember(Order = 0)] 22 | public string TransformName { get; set; } 23 | 24 | [DataMember(Order = 1)] 25 | public string Action { get; set; } 26 | 27 | [DataMember(Order = 2)] 28 | public long Rows { get; set; } 29 | 30 | [DataMember(Order = 3)] 31 | public double Seconds { get; set; } 32 | 33 | [DataMember(Order = 4)] 34 | public List Children { get; set; } = new List(); 35 | } 36 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("DexihTransforms")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("DexihTransforms")] 12 | [assembly: AssemblyCopyright("Copyright © 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | //[assembly: Guid("de06ed25-392b-4e85-849f-6e4fd96d5e0c")] 23 | -------------------------------------------------------------------------------- /test/dexih.connections.test/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("dexih_unit_tests")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("dexih_unit_tests")] 12 | [assembly: AssemblyCopyright("Copyright © 2016")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("42fcb883-fa0e-4897-b678-7e600a93b354")] 23 | -------------------------------------------------------------------------------- /test/dexih.functions.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("dexih_unit_tests")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("dexih_unit_tests")] 12 | [assembly: AssemblyCopyright("Copyright © 2016")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("42fcb883-fa0e-4897-b678-7e600a93b354")] 23 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("dexih_unit_tests")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("dexih_unit_tests")] 12 | [assembly: AssemblyCopyright("Copyright © 2016")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("42fcb883-fa0e-4897-b678-7e600a93b354")] 23 | -------------------------------------------------------------------------------- /src/dexih.transforms/Poco/PocoExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Poco 4 | { 5 | 6 | public class PocoException : Exception 7 | { 8 | public PocoException() 9 | { 10 | } 11 | public PocoException(string message) : base(message) 12 | { 13 | } 14 | public PocoException(string message, Exception innerException): base(message, innerException) 15 | { 16 | } 17 | } 18 | 19 | public class PocoLoaderClosedException : PocoException 20 | { 21 | public PocoLoaderClosedException(string message) : base(message) 22 | { 23 | } 24 | } 25 | 26 | public class PocoLoaderNoResetException : PocoException 27 | { 28 | public PocoLoaderNoResetException(string message) : base(message) 29 | { 30 | } 31 | } 32 | 33 | public class PocoLoaderIndexOutOfBoundsException : PocoException 34 | { 35 | public PocoLoaderIndexOutOfBoundsException(string message) : base(message) 36 | { 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /src/dexih.functions/TaskTimer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Threading.Tasks; 4 | 5 | namespace dexih.functions 6 | { 7 | /// 8 | /// Runs a task with a timer attached. 9 | /// 10 | public static class TaskTimer 11 | { 12 | public static async Task<(TimeSpan, T)> StartAsync(Func> func) 13 | { 14 | var timer = Stopwatch.StartNew(); 15 | var returnValue = await func(); 16 | timer.Stop(); 17 | return (timer.Elapsed, returnValue); 18 | } 19 | } 20 | 21 | /// 22 | /// Runs a task with a timer attached. 23 | /// 24 | public static class TaskTimer 25 | { 26 | public static async Task StartAsync(Func func) 27 | { 28 | var timer = Stopwatch.StartNew(); 29 | await func(); 30 | timer.Stop(); 31 | return timer.Elapsed; 32 | } 33 | 34 | public static TimeSpan Start(Action action) 35 | { 36 | var timer = Stopwatch.StartNew(); 37 | action(); 38 | timer.Stop(); 39 | return timer.Elapsed; 40 | } 41 | 42 | 43 | 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /samples/FunctionExamples/ReaderExamples.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netcoreapp3.1 4 | FunctionExamples 5 | Exe 6 | ReaderExamples 7 | aspnet-ReaderExamples-20161206114756 8 | win7-x64;ubuntu.14.04-x64;osx.10.10-x64 9 | false 10 | false 11 | false 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bower_components/jquery/src/attributes/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var input = document.createElement( "input" ), 8 | select = document.createElement( "select" ), 9 | opt = select.appendChild( document.createElement( "option" ) ); 10 | 11 | input.type = "checkbox"; 12 | 13 | // Support: iOS<=5.1, Android<=4.2+ 14 | // Default value for a checkbox should be "on" 15 | support.checkOn = input.value !== ""; 16 | 17 | // Support: IE<=11+ 18 | // Must access selectedIndex to make default options select 19 | support.optSelected = opt.selected; 20 | 21 | // Support: Android<=2.3 22 | // Options inside disabled selects are incorrectly marked as disabled 23 | select.disabled = true; 24 | support.optDisabled = !opt.disabled; 25 | 26 | // Support: IE<=11+ 27 | // An input loses its value after becoming a radio 28 | input = document.createElement( "input" ); 29 | input.value = "t"; 30 | input.type = "radio"; 31 | support.radioValue = input.value === "t"; 32 | } )(); 33 | 34 | return support; 35 | 36 | } ); 37 | -------------------------------------------------------------------------------- /bower_components/jquery/src/exports/amd.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Register as a named AMD module, since jQuery can be concatenated with other 6 | // files that may use define, but not via a proper concatenation script that 7 | // understands anonymous AMD modules. A named AMD is safest and most robust 8 | // way to register. Lowercase jquery is used because AMD module names are 9 | // derived from file names, and jQuery is normally delivered in a lowercase 10 | // file name. Do this after creating the global so that if an AMD module wants 11 | // to call noConflict to hide this version of jQuery, it will work. 12 | 13 | // Note that for maximum portability, libraries that are not jQuery should 14 | // declare themselves as anonymous modules, and avoid setting a global if an 15 | // AMD loader is present. jQuery is a special case. For more information, see 16 | // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 17 | 18 | if ( typeof define === "function" && define.amd ) { 19 | define( "jquery", [], function() { 20 | return jQuery; 21 | } ); 22 | } 23 | 24 | } ); 25 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/TransformConcatinateTests.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | using Xunit; 4 | using Xunit.Abstractions; 5 | 6 | namespace dexih.transforms.tests 7 | { 8 | public class TransformConcatinateTests 9 | { 10 | private readonly ITestOutputHelper output; 11 | 12 | public TransformConcatinateTests(ITestOutputHelper output) 13 | { 14 | this.output = output; 15 | } 16 | 17 | [Fact] 18 | public async Task Concatinate() 19 | { 20 | var reader1 = Helpers.CreateSortedTestData(); 21 | var reader2 = Helpers.CreateSortedTestData(); 22 | 23 | var concatinateTransform = new TransformConcatenate(reader1, reader2); 24 | await concatinateTransform.Open(0, null, CancellationToken.None); 25 | 26 | Assert.Equal(6, concatinateTransform.FieldCount); 27 | 28 | var count = 0; 29 | while(await concatinateTransform.ReadAsync()) 30 | { 31 | count++; 32 | } 33 | Assert.Equal(20, count); 34 | 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /bower_components/jquery/src/manipulation/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/document", 3 | "../var/support" 4 | ], function( document, support ) { 5 | 6 | ( function() { 7 | var fragment = document.createDocumentFragment(), 8 | div = fragment.appendChild( document.createElement( "div" ) ), 9 | input = document.createElement( "input" ); 10 | 11 | // Support: Android 4.0-4.3, Safari<=5.1 12 | // Check state lost if the name is set (#11217) 13 | // Support: Windows Web Apps (WWA) 14 | // `name` and `type` must use .setAttribute for WWA (#14901) 15 | input.setAttribute( "type", "radio" ); 16 | input.setAttribute( "checked", "checked" ); 17 | input.setAttribute( "name", "t" ); 18 | 19 | div.appendChild( input ); 20 | 21 | // Support: Safari<=5.1, Android<4.2 22 | // Older WebKit doesn't clone checked state correctly in fragments 23 | support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 24 | 25 | // Support: IE<=11+ 26 | // Make sure textarea (and checkbox) defaultValue is properly cloned 27 | div.innerHTML = ""; 28 | support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 29 | } )(); 30 | 31 | return support; 32 | 33 | } ); 34 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/QueryColumns.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace dexih.functions.Query 4 | { 5 | 6 | public class QueryColumns : List 7 | { 8 | public QueryColumns() {} 9 | public QueryColumns(IEnumerable queryColumns) 10 | { 11 | if (queryColumns == null) return; 12 | 13 | AddRange(queryColumns); 14 | } 15 | 16 | public QueryColumns(string column, object value) 17 | { 18 | Add(new QueryColumn(column, value)); 19 | } 20 | 21 | public QueryColumns(params (string column, object value)[] queryColumns) 22 | { 23 | foreach (var queryColumn in queryColumns) 24 | { 25 | Add(new QueryColumn(queryColumn.column, queryColumn.value)); 26 | } 27 | } 28 | 29 | public void Add(string columnName, object value) 30 | { 31 | base.Add(new QueryColumn(columnName, value)); 32 | } 33 | 34 | public void Add(TableColumn column, object value) 35 | { 36 | base.Add(new QueryColumn(column, value)); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Table/TableExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.functions 4 | { 5 | public class TableException : Exception 6 | { 7 | public TableException() 8 | { 9 | } 10 | public TableException(string message) : base(message) 11 | { 12 | } 13 | public TableException(string message, Exception innerException): base(message, innerException) 14 | { 15 | } 16 | } 17 | 18 | public class TableDuplicateColumnNameException : TableException 19 | { 20 | public TableColumn Column { get; set; } 21 | public Table Table { get; set; } 22 | 23 | public TableDuplicateColumnNameException(Table table, TableColumn column) : 24 | base($"A column with the name {column.Name} already exists in the table {table.Name}.") 25 | { 26 | Column = column; 27 | Table = table; 28 | } 29 | 30 | public TableDuplicateColumnNameException(Table table, string columnName) : 31 | base($"A column with the name {columnName} already exists in the table {table.Name}.") 32 | { 33 | Table = table; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/dexih.transforms/TransformProperties.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Runtime.Serialization; 3 | using dexih.functions.Query; 4 | 5 | 6 | namespace dexih.transforms 7 | { 8 | [DataContract] 9 | public class TransformProperties 10 | { 11 | [DataMember(Order = 0)] 12 | public string Name { get; set; } 13 | 14 | [DataMember(Order = 1)] 15 | public ETransformType TransformType { get; set; } 16 | 17 | [DataMember(Order = 2)] 18 | public string TransformName { get; set; } 19 | 20 | [DataMember(Order = 3)] 21 | public SelectQuery SelectQuery { get; set; } 22 | 23 | [DataMember(Order = 4)] 24 | public Dictionary Properties { get; set; } = new Dictionary(); 25 | 26 | [DataMember(Order = 5)] 27 | public long Rows { get; set; } 28 | 29 | [DataMember(Order = 6)] 30 | public double Seconds { get; set; } 31 | 32 | [DataMember(Order = 7)] 33 | public TransformProperties PrimaryProperties { get; set; } 34 | 35 | [DataMember(Order = 8)] 36 | public TransformProperties ReferenceProperties { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/core/parseHTML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../var/document", 4 | "./var/rsingleTag", 5 | "../manipulation/buildFragment" 6 | ], function( jQuery, document, rsingleTag, buildFragment ) { 7 | 8 | // Argument "data" should be string of html 9 | // context (optional): If specified, the fragment will be created in this context, 10 | // defaults to document 11 | // keepScripts (optional): If true, will include scripts passed in the html string 12 | jQuery.parseHTML = function( data, context, keepScripts ) { 13 | if ( !data || typeof data !== "string" ) { 14 | return null; 15 | } 16 | if ( typeof context === "boolean" ) { 17 | keepScripts = context; 18 | context = false; 19 | } 20 | context = context || document; 21 | 22 | var parsed = rsingleTag.exec( data ), 23 | scripts = !keepScripts && []; 24 | 25 | // Single tag 26 | if ( parsed ) { 27 | return [ context.createElement( parsed[ 1 ] ) ]; 28 | } 29 | 30 | parsed = buildFragment( [ data ], context, scripts ); 31 | 32 | if ( scripts && scripts.length ) { 33 | jQuery( scripts ).remove(); 34 | } 35 | 36 | return jQuery.merge( [], parsed.childNodes ); 37 | }; 38 | 39 | return jQuery.parseHTML; 40 | 41 | } ); 42 | -------------------------------------------------------------------------------- /src/dexih.functions/Functions/GlobalSettings.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Net.Http; 3 | 4 | namespace dexih.functions 5 | { 6 | /// 7 | /// Settings and variables which apply to anything running on the remote agent. 8 | /// 9 | public class GlobalSettings 10 | { 11 | // used by encrypt functions. 12 | public string EncryptionKey { get; set; } 13 | 14 | public FilePermissions FilePermissions { get; set; } 15 | 16 | private readonly Dictionary _variables; 17 | 18 | public GlobalSettings(string encryptionKey) 19 | { 20 | EncryptionKey = encryptionKey; 21 | _variables = new Dictionary(); 22 | } 23 | 24 | public IHttpClientFactory HttpClientFactory { get; set; } 25 | 26 | public GlobalSettings() 27 | { 28 | _variables = new Dictionary(); 29 | } 30 | 31 | public void AddVariable(string name, object value) 32 | { 33 | _variables.Add(name, value); 34 | } 35 | 36 | public object this[string name] => _variables[name]; 37 | 38 | } 39 | } -------------------------------------------------------------------------------- /test/dexih.transforms.tests/MockReader.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading; 3 | using System.Threading.Tasks; 4 | using dexih.functions; 5 | using dexih.functions.Query; 6 | 7 | namespace dexih.transforms.tests 8 | { 9 | public class MockReader: Transform 10 | { 11 | public MockReader(Table table) 12 | { 13 | CacheTable = table; 14 | } 15 | public override string TransformName { get; } 16 | public override Dictionary TransformProperties() 17 | { 18 | throw new System.NotImplementedException(); 19 | } 20 | 21 | public override Task Open(long auditKey, SelectQuery requestQuery = null, CancellationToken cancellationToken = default) 22 | { 23 | SelectQuery = requestQuery; 24 | return Task.FromResult(true); 25 | } 26 | 27 | protected override Task ReadRecord(CancellationToken cancellationToken = default) 28 | { 29 | throw new System.NotImplementedException(); 30 | } 31 | 32 | public override bool ResetTransform() 33 | { 34 | return true; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Query/UpdateQuery.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections.Generic; 3 | using System.Runtime.Serialization; 4 | 5 | namespace dexih.functions.Query 6 | { 7 | [DataContract] 8 | public class UpdateQuery 9 | { 10 | public UpdateQuery(IEnumerable updateColumns, IEnumerable filters) 11 | { 12 | UpdateColumns = new QueryColumns(updateColumns); 13 | Filters = new Filters(filters); 14 | } 15 | 16 | public UpdateQuery() 17 | { 18 | UpdateColumns = new QueryColumns(); 19 | Filters = new Filters(); 20 | } 21 | 22 | public UpdateQuery(string updateColumn, object updateValue, string filterColumn = null, object filterValue = null) 23 | { 24 | UpdateColumns = new QueryColumns(updateColumn, updateValue); 25 | 26 | if (filterColumn != null) 27 | { 28 | Filters = new Filters(filterColumn, filterValue); 29 | } 30 | } 31 | 32 | [DataMember(Order = 0)] 33 | public QueryColumns UpdateColumns { get; set; } 34 | 35 | [DataMember(Order = 1)] 36 | public Filters Filters { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/css/showHide.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | function showHide( elements, show ) { 6 | var display, elem, 7 | values = [], 8 | index = 0, 9 | length = elements.length; 10 | 11 | // Determine new display value for elements that need to change 12 | for ( ; index < length; index++ ) { 13 | elem = elements[ index ]; 14 | if ( !elem.style ) { 15 | continue; 16 | } 17 | 18 | display = elem.style.display; 19 | if ( show ) { 20 | if ( display === "none" ) { 21 | 22 | // Restore a pre-hide() value if we have one 23 | values[ index ] = dataPriv.get( elem, "display" ) || ""; 24 | } 25 | } else { 26 | if ( display !== "none" ) { 27 | values[ index ] = "none"; 28 | 29 | // Remember the value we're replacing 30 | dataPriv.set( elem, "display", display ); 31 | } 32 | } 33 | } 34 | 35 | // Set the display of the elements in a second loop 36 | // to avoid the constant reflow 37 | for ( index = 0; index < length; index++ ) { 38 | if ( values[ index ] != null ) { 39 | elements[ index ].style.display = values[ index ]; 40 | } 41 | } 42 | 43 | return elements; 44 | } 45 | 46 | return showHide; 47 | 48 | } ); 49 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/Sorts.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections.Generic; 3 | using System.Runtime.Serialization; 4 | 5 | namespace dexih.functions.Query 6 | { 7 | [DataContract] 8 | public class Sorts : List 9 | { 10 | public Sorts() {} 11 | 12 | public Sorts(IEnumerable sorts) 13 | { 14 | if (sorts == null) return; 15 | 16 | AddRange(sorts); 17 | } 18 | 19 | public Sorts(params string[] columnNames) 20 | { 21 | foreach (var columnName in columnNames) 22 | { 23 | Add(new Sort(columnName)); 24 | } 25 | } 26 | 27 | public Sorts(params (string columnName, ESortDirection direction)[] sorts) 28 | { 29 | foreach (var sort in sorts) 30 | { 31 | Add(new Sort(sort.columnName, sort.direction)); 32 | } 33 | } 34 | 35 | public void Add(string name, ESortDirection sortDirection) 36 | { 37 | base.Add(new Sort(name, sortDirection)); 38 | } 39 | 40 | public void Add(TableColumn column, ESortDirection sortDirection) 41 | { 42 | base.Add(new Sort(column, sortDirection)); 43 | } 44 | 45 | } 46 | } -------------------------------------------------------------------------------- /test/dexih.connections.flatfile.tests/dexih.connections.flatfile.tests.cs: -------------------------------------------------------------------------------- 1 | using dexih.connections.test; 2 | using System; 3 | using System.Threading.Tasks; 4 | using Xunit; 5 | using Xunit.Abstractions; 6 | 7 | namespace dexih.connections.flatfile 8 | { 9 | public class ConnectionLocalFlatFileTests 10 | { 11 | private readonly ITestOutputHelper _output; 12 | 13 | public ConnectionLocalFlatFileTests(ITestOutputHelper output) 14 | { 15 | this._output = output; 16 | } 17 | 18 | public ConnectionFlatFileLocal GetLocalConnection() 19 | { 20 | var ServerName = Convert.ToString(Configuration.AppSettings["FlatFileLocal:ServerName"]); 21 | if (ServerName == "") 22 | return null; 23 | 24 | var connection = new ConnectionFlatFileLocal() 25 | { 26 | Name = "Test Connection", 27 | Server = ServerName, 28 | }; 29 | return connection; 30 | } 31 | 32 | [Fact] 33 | public async Task FlatFileLocal_Basic() 34 | { 35 | string database = "Test-" + Guid.NewGuid().ToString(); 36 | 37 | await new UnitTests(_output).Unit(GetLocalConnection(), database); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /test/dexih.connections.sql.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "SqlServer": { 7 | "NtAuthentication": "true", 8 | "UserName": "sa", 9 | "Password": "Password12!", 10 | "ServerName": "(local)\\SQL2014" 11 | }, 12 | "Sqlite": { 13 | "NtAuthentication": "true", 14 | "UserName": "", 15 | "Password": "", 16 | "ServerName": "./" 17 | }, 18 | "PostgreSql": { 19 | "NtAuthentication": "false", 20 | "UserName": "postgres", 21 | "Password": "Password12!", 22 | "ServerName": "localhost:5432" 23 | }, 24 | "MySql": { 25 | "NtAuthentication": "false", 26 | "UserName": "root", 27 | "Password": "Password12!", 28 | "ServerName": "localhost:3306" 29 | } 30 | }, 31 | "ApplicationInsights": { 32 | "InstrumentationKey": "" 33 | }, 34 | "Data": { 35 | "DefaultConnection": { 36 | "ConnectionString": "Server=(local)\\SQL2014;Database=master;User ID=sa;Password=Password12!" 37 | } 38 | }, 39 | "Logging": { 40 | "IncludeScopes": false, 41 | "LogLevel": { 42 | "Default": "Verbose", 43 | "System": "Information", 44 | "Microsoft": "Information" 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /test/dexih.connections.webservice.restful.tests/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "userSecretsId": "dexih.connections.test.44fc05ee-e883-4070-8840-c1d8b479a4fe", 3 | 4 | "AppSettings": { 5 | "EncryptionKey": "hideho", 6 | "SqlServer": { 7 | "NtAuthentication": true, 8 | "UserName": "sa", 9 | "Password": "Password12!", 10 | "ServerName": "(local)\\SQL2017" 11 | }, 12 | "Sqlite": { 13 | "NtAuthentication": true, 14 | "UserName": "", 15 | "Password": "", 16 | "ServerName": "." 17 | }, 18 | "FlatFileLocal": { 19 | "NtAuthentication": true, 20 | "UserName": "", 21 | "Password": "", 22 | "ServerName": "test" 23 | }, 24 | "FlatFileAzure": { 25 | "ConnectionString": "" 26 | }, 27 | "Azure": { 28 | "NtAuthentication": false, 29 | "UserName": "", 30 | "Password": "", 31 | "ServerName": "" 32 | } 33 | }, 34 | "ApplicationInsights": { 35 | "InstrumentationKey": "" 36 | }, 37 | "Data": { 38 | "DefaultConnection": { 39 | "ConnectionString": "Server=(local)\\SQL2017;Database=master;User ID=sa;Password=Password12!" 40 | } 41 | }, 42 | "Logging": { 43 | "IncludeScopes": false, 44 | "LogLevel": { 45 | "Default": "Verbose", 46 | "System": "Information", 47 | "Microsoft": "Information" 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /test/dexih.functions.financial.tests/dexih.functions.financial.tests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/dexih.functions/Extensions/JsonDateTimeConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text.Json; 3 | using System.Text.Json.Serialization; 4 | 5 | namespace dexih.functions 6 | { 7 | public class JsonDateTimeConverter: JsonConverter 8 | { 9 | public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) 10 | { 11 | if (reader.TokenType == JsonTokenType.String) 12 | { 13 | var value = reader.GetString(); 14 | if (string.IsNullOrEmpty(value)) 15 | { 16 | return default; 17 | } 18 | 19 | return DateTime.Parse(reader.GetString()); 20 | } 21 | 22 | return default; 23 | } 24 | 25 | public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options) 26 | { 27 | if (value == null) 28 | { 29 | writer.WriteNullValue(); 30 | } 31 | else if (value.Value.Kind == DateTimeKind.Unspecified) 32 | { 33 | writer.WriteStringValue(DateTime.SpecifyKind(value.Value, DateTimeKind.Local)); 34 | } 35 | else 36 | { 37 | writer.WriteStringValue(value.Value); 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /src/dexih.transforms/File/FileHandlerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Threading.Tasks; 5 | using dexih.functions; 6 | using dexih.functions.Query; 7 | 8 | namespace dexih.transforms.File 9 | { 10 | public abstract class FileHandlerBase : IDisposable 11 | { 12 | public abstract string FileType { get; } 13 | 14 | /// 15 | /// Infers the source columns from the table.sample data 16 | /// 17 | /// 18 | /// 19 | public abstract Task> GetSourceColumns(Stream stream); 20 | 21 | public abstract Task SetStream(Stream stream, SelectQuery selectQuery); 22 | 23 | public abstract Task GetRow(FileProperties fileProperties); 24 | 25 | public async Task> GetAllRows(FileProperties fileProperties) 26 | { 27 | var rows = new List(); 28 | 29 | var row = await GetRow(fileProperties); 30 | 31 | while (row != null) 32 | { 33 | rows.Add(row); 34 | row = await GetRow(fileProperties); 35 | } 36 | 37 | return rows; 38 | } 39 | 40 | public virtual void Dispose() 41 | { 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /src/dexih.connections.webservice.soap/dexih.connections.webservice.soap.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | This is a support library which enables the transform library to access Soap based webservices. 4 | Data Experts Group - Connections - Soap WebServices 5 | 0.2.4 6 | Gary Holland 7 | netcoreapp2.1 8 | dexih.connections.webservice.soap 9 | dexih.connections.webservice.soap 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;Web Service;Soap 11 | Note: This project is still under devlopement with regular breaking changes. 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/dexih.transforms/File/FileConfiguration.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | using System.Runtime.Serialization; 3 | using System.Text.Json.Serialization; 4 | 5 | 6 | namespace dexih.transforms.File 7 | { 8 | 9 | /// 10 | /// reflects options used by the csvHelper = https://joshclose.github.io/CsvHelper/ 11 | /// 12 | [DataContract] 13 | public record FileConfiguration : CsvHelper.Configuration.CsvConfiguration 14 | { 15 | public FileConfiguration(): base(CultureInfo.CurrentCulture) 16 | { 17 | } 18 | 19 | [DataMember(Order = 0)] 20 | public bool MatchHeaderRecord { get; set; } = true; 21 | 22 | /// 23 | /// Number of rows in at the start of the file to skip 24 | /// 25 | [DataMember(Order = 1)] 26 | public int SkipHeaderRows { get; set; } = 0; 27 | 28 | /// 29 | /// Set empty cells to null (otherwise set to "" value) 30 | /// 31 | [DataMember(Order = 2)] 32 | public bool SetWhiteSpaceCellsToNull { get; set; } = true; 33 | 34 | // [JsonIgnore, IgnoreDataMember] 35 | // public override CultureInfo CultureInfo 36 | // { 37 | // get => base.CultureInfo; 38 | // set => base.CultureInfo = value; 39 | // } 40 | // 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/TransformWriterExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Exceptions 4 | { 5 | public class TransformWriterException : Exception 6 | { 7 | #if DEBUG 8 | public object[] Values { get; set; } 9 | #endif 10 | 11 | public TransformWriterException() 12 | { 13 | } 14 | public TransformWriterException(string message) : base(message) 15 | { 16 | } 17 | public TransformWriterException(string message, Exception innerException, params object[] values) : base(message, innerException) 18 | { 19 | #if DEBUG 20 | Values = values; 21 | #endif 22 | } 23 | 24 | public TransformWriterException(string message, params object[] values) : base(message) 25 | { 26 | #if DEBUG 27 | Values = values; 28 | #endif 29 | } 30 | 31 | public override string Message { 32 | get 33 | { 34 | #if DEBUG 35 | if (Values == null || Values.Length == 0) 36 | { 37 | return base.Message; 38 | } 39 | else 40 | { 41 | return base.Message + ". Data values: " + string.Join(",", Values); 42 | } 43 | #else 44 | return base.Message; 45 | #endif 46 | } 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/dexih.transforms/File/FileHandlerExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms 4 | { 5 | public class FileHandlerException : Exception 6 | { 7 | #if DEBUG 8 | public object[] Values { get; set; } 9 | #endif 10 | 11 | public FileHandlerException() 12 | { 13 | } 14 | public FileHandlerException(string message) : base(message) 15 | { 16 | } 17 | public FileHandlerException(string message, Exception innerException, params object[] values) : base(message, innerException) 18 | { 19 | #if DEBUG 20 | Values = values; 21 | #endif 22 | } 23 | 24 | public FileHandlerException(string message, params object[] values) : base(message) 25 | { 26 | #if DEBUG 27 | Values = values; 28 | #endif 29 | } 30 | 31 | public override string Message 32 | { 33 | get 34 | { 35 | #if DEBUG 36 | if (Values == null || Values.Length == 0) 37 | { 38 | return base.Message; 39 | } 40 | else 41 | { 42 | return string.Format("{0}. Data values: {1}", base.Message, string.Join(", ", Values)); 43 | } 44 | #else 45 | return base.Message; 46 | #endif 47 | } 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/dexih.transforms/Transforms/TransformReference.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using System.Reflection; 4 | using System.Runtime.Serialization; 5 | 6 | namespace dexih.transforms.Transforms 7 | { 8 | [DataContract] 9 | public class TransformReference: TransformAttribute 10 | { 11 | [DataMember(Order = 3)] 12 | public string TransformClassName { get; set; } 13 | 14 | [DataMember(Order = 4)] 15 | public string TransformAssemblyName { get; set; } 16 | 17 | public Type GetTransformType() 18 | { 19 | Type type; 20 | if (string.IsNullOrEmpty(TransformAssemblyName)) 21 | { 22 | type = Assembly.GetExecutingAssembly().GetType(TransformClassName); 23 | } 24 | else 25 | { 26 | var assembly = Assembly.Load(TransformAssemblyName); 27 | 28 | if (assembly == null) 29 | { 30 | throw new TransformnNotFoundException($"The assembly {TransformClassName} was not found."); 31 | } 32 | type = assembly.GetType(TransformClassName); 33 | } 34 | 35 | return type; 36 | } 37 | 38 | public Transform GetTransform() 39 | { 40 | var type = GetTransformType(); 41 | var obj = (Transform) Activator.CreateInstance(type); 42 | return obj; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /src/dexih.transforms/AsyncHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Threading; 4 | using System.Threading.Tasks; 5 | 6 | namespace dexih.transforms 7 | { 8 | internal static class AsyncHelper 9 | { 10 | private static readonly TaskFactory MyTaskFactory = new TaskFactory(CancellationToken.None, 11 | TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default); 12 | 13 | public static TResult RunSync(Func> func) 14 | { 15 | var cultureUi = CultureInfo.CurrentUICulture; 16 | var culture = CultureInfo.CurrentCulture; 17 | return MyTaskFactory.StartNew(() => 18 | { 19 | Thread.CurrentThread.CurrentCulture = culture; 20 | Thread.CurrentThread.CurrentUICulture = cultureUi; 21 | return func(); 22 | }).Unwrap().GetAwaiter().GetResult(); 23 | } 24 | 25 | public static void RunSync(Func func) 26 | { 27 | var cultureUi = CultureInfo.CurrentUICulture; 28 | var culture = CultureInfo.CurrentCulture; 29 | MyTaskFactory.StartNew(() => 30 | { 31 | Thread.CurrentThread.CurrentCulture = culture; 32 | Thread.CurrentThread.CurrentUICulture = cultureUi; 33 | return func(); 34 | }).Unwrap().GetAwaiter().GetResult(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /test/dexih.functions.ml.tests/recommendation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xunit; 3 | 4 | namespace dexih.functions.ml.tests 5 | { 6 | public class recommendation 7 | { 8 | /// 9 | /// Unit test of the cluster k-means functions 10 | /// 11 | [Fact] 12 | public void ClusterkMeans() 13 | { 14 | var recommendation = new RecommendationAnalysis(); 15 | 16 | // create data that easily clusters into two areas. 17 | var values = new[] 18 | { 19 | new [] {"1", "2"}, 20 | new [] {"2", "3"}, 21 | new [] {"3", "4"}, 22 | new [] {"5", "6"} 23 | }; 24 | 25 | var hotEncode = new[] {EEncoding.None, EEncoding.None}; 26 | 27 | foreach(var value in values) 28 | { 29 | recommendation.RecommendationTrain(value[0], value[1]); 30 | } 31 | 32 | var model = recommendation.RecommendationTrainResult(); 33 | 34 | Assert.NotNull(model); 35 | 36 | //// check the recommendation 37 | //var result = recommendation.RecommendationPredict(model, "1", "3"); 38 | //Assert.True(result > 0 && result < 0.2); 39 | 40 | //result = recommendation.RecommendationPredict(model, "1", "5"); 41 | //Assert.True(Single.IsNaN(result)); 42 | 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /test/dexih.connections.test/ParentChildNavigate.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using dexih.transforms; 3 | using Xunit; 4 | 5 | namespace dexih.connections.test 6 | { 7 | public class ParentChildNavigate 8 | { 9 | [Theory] 10 | [InlineData(1000)] 11 | public async Task NavigateTest(int rows) 12 | { 13 | var reader = DataSets.CreateParentChildReader(rows); 14 | await reader.Open(); 15 | 16 | var parentCount = 0; 17 | var childCount = 0; 18 | var grandChildCount = 0; 19 | 20 | 21 | while (await reader.ReadAsync()) 22 | { 23 | parentCount++; 24 | 25 | var childReader = (Transform) reader["children"]; 26 | await childReader.Open(); 27 | 28 | while (await childReader.ReadAsync()) 29 | { 30 | childCount++; 31 | 32 | var grandChildReader = (Transform) childReader["grandChildren"]; 33 | await grandChildReader.Open(); 34 | 35 | while (await grandChildReader.ReadAsync()) 36 | { 37 | grandChildCount++; 38 | } 39 | } 40 | } 41 | 42 | Assert.Equal(rows, parentCount); 43 | Assert.Equal(rows, childCount); 44 | Assert.Equal(rows, grandChildCount); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /bower_components/jquery/src/core/access.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Multifunctional method to get and set values of a collection 6 | // The value/s can optionally be executed if it's a function 7 | var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 8 | var i = 0, 9 | len = elems.length, 10 | bulk = key == null; 11 | 12 | // Sets many values 13 | if ( jQuery.type( key ) === "object" ) { 14 | chainable = true; 15 | for ( i in key ) { 16 | access( elems, fn, i, key[ i ], true, emptyGet, raw ); 17 | } 18 | 19 | // Sets one value 20 | } else if ( value !== undefined ) { 21 | chainable = true; 22 | 23 | if ( !jQuery.isFunction( value ) ) { 24 | raw = true; 25 | } 26 | 27 | if ( bulk ) { 28 | 29 | // Bulk operations run against the entire set 30 | if ( raw ) { 31 | fn.call( elems, value ); 32 | fn = null; 33 | 34 | // ...except when executing function values 35 | } else { 36 | bulk = fn; 37 | fn = function( elem, key, value ) { 38 | return bulk.call( jQuery( elem ), value ); 39 | }; 40 | } 41 | } 42 | 43 | if ( fn ) { 44 | for ( ; i < len; i++ ) { 45 | fn( 46 | elems[ i ], key, raw ? 47 | value : 48 | value.call( elems[ i ], i, fn( elems[ i ], key ) ) 49 | ); 50 | } 51 | } 52 | } 53 | 54 | return chainable ? 55 | elems : 56 | 57 | // Gets 58 | bulk ? 59 | fn.call( elems ) : 60 | len ? fn( elems[ 0 ], key ) : emptyGet; 61 | }; 62 | 63 | return access; 64 | 65 | } ); 66 | -------------------------------------------------------------------------------- /samples/FunctionExamples/CreatePocoReader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Data.Common; 4 | using dexih.transforms.Poco; 5 | 6 | namespace FunctionExamples 7 | { 8 | public class CreatePocoReader 9 | { 10 | public void Create() 11 | { 12 | var books = CreatBooksData(); 13 | var reader = new PocoReader(books); 14 | 15 | DisplayReader(reader); 16 | } 17 | 18 | public List CreatBooksData() 19 | { 20 | var books = new List(); 21 | 22 | books.Add(new BookClass() {Code = "001", Name = "Lord of the rings", Cost = 15, Published = new DateTime(1954, 07,29)}); 23 | books.Add(new BookClass() {Code = "002", Name = "Harry Potter and the Philosopher's Stone", Cost = 12, Published = new DateTime(1997, 06,26)}); 24 | books.Add(new BookClass() {Code = "003", Name = "A Game of Thrones", Cost = 16, Published = new DateTime(1996, 07,01)}); 25 | 26 | return books; 27 | } 28 | 29 | public void DisplayReader(DbDataReader reader) 30 | { 31 | while (reader.Read()) 32 | { 33 | for (var i = 0; i < reader.FieldCount; i++) 34 | { 35 | Console.Write(reader.GetName(i) + ":" + reader[i].ToString() + (i < reader.FieldCount-1 ? ", " : "")); 36 | } 37 | Console.WriteLine(); 38 | } 39 | } 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Query/Join.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | 5 | namespace dexih.functions.Query 6 | { 7 | public class Join 8 | { 9 | public Join() 10 | { 11 | JoinId = Guid.NewGuid().ToString(); 12 | } 13 | 14 | public Join(EJoinType joinType, Table table, Filters joinFilters) 15 | { 16 | JoinType = joinType; 17 | JoinTable = table; 18 | JoinFilters = joinFilters; 19 | JoinId = Guid.NewGuid().ToString(); 20 | } 21 | 22 | public Join(EJoinType joinType, Table table, string alias, Filters joinFilters) 23 | { 24 | JoinType = joinType; 25 | JoinFilters = joinFilters; 26 | JoinTable = table; 27 | Alias = alias; 28 | JoinId = Guid.NewGuid().ToString(); 29 | } 30 | 31 | [DataMember(Order = 0)] 32 | public EJoinType JoinType { get; set; } 33 | 34 | [DataMember(Order = 1)] 35 | public Table JoinTable { get; set; } 36 | 37 | [DataMember(Order = 2)] 38 | public Filters JoinFilters { get; set; } 39 | 40 | [DataMember(Order = 3)] 41 | public string Alias { get; set; } 42 | 43 | [DataMember(Order = 4)] 44 | public int ConnectionId { get; set; } 45 | 46 | /// 47 | /// Unique id to remember the join. 48 | /// 49 | public string JoinId { get; set; } 50 | } 51 | } -------------------------------------------------------------------------------- /test/dexih.connections.ftp.tests/dexih.connections.ftp.tests.cs: -------------------------------------------------------------------------------- 1 | using dexih.connections.test; 2 | using System; 3 | using System.Threading.Tasks; 4 | using Xunit; 5 | using Xunit.Abstractions; 6 | 7 | namespace dexih.connections.ftp 8 | { 9 | public class ConnectionFtpFlatFileTests 10 | { 11 | private readonly ITestOutputHelper _output; 12 | 13 | public ConnectionFtpFlatFileTests(ITestOutputHelper output) 14 | { 15 | this._output = output; 16 | } 17 | 18 | public ConnectionFlatFileFtp GetConnection() 19 | { 20 | var serverName = Convert.ToString(Configuration.AppSettings["FlatFileFtp:ServerName"]); 21 | var userName = Convert.ToString(Configuration.AppSettings["FlatFileFtp:UserName"]); 22 | var password = Convert.ToString(Configuration.AppSettings["FlatFileFtp:Password"]); 23 | if (serverName == "") 24 | return null; 25 | 26 | var connection = new ConnectionFlatFileFtp() 27 | { 28 | Name = "Test Connection", 29 | Server = serverName, 30 | Username = userName, 31 | Password = password 32 | }; 33 | return connection; 34 | } 35 | 36 | [Fact] 37 | public async Task FlatFileFtp_Basic() 38 | { 39 | string database = "Test-" + Guid.NewGuid().ToString(); 40 | 41 | await new UnitTests(_output).Unit(GetConnection(), database); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/dexih.connections.ftp/dexih.connections.ftp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - Ftp Connections & Readers 4 | Data Experts Group - Ftp Connections 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.ftp 9 | dexih.connections.ftp 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /test/dexih.connections.sftp.tests/dexih.connections.sftp.test.cs: -------------------------------------------------------------------------------- 1 | using dexih.connections.test; 2 | using System; 3 | using System.Threading.Tasks; 4 | using Xunit; 5 | using Xunit.Abstractions; 6 | 7 | namespace dexih.connections.sftp 8 | { 9 | public class ConnectionSftpFlatFileTests 10 | { 11 | private readonly ITestOutputHelper _output; 12 | 13 | public ConnectionSftpFlatFileTests(ITestOutputHelper output) 14 | { 15 | this._output = output; 16 | } 17 | 18 | public ConnectionFlatFileSftp GetConnection() 19 | { 20 | var serverName = Convert.ToString(Configuration.AppSettings["FlatFileSftp:ServerName"]); 21 | var userName = Convert.ToString(Configuration.AppSettings["FlatFileSftp:UserName"]); 22 | var password = Convert.ToString(Configuration.AppSettings["FlatFileSftp:Password"]); 23 | if (serverName == "") 24 | return null; 25 | 26 | var connection = new ConnectionFlatFileSftp() 27 | { 28 | Name = "Test Connection", 29 | Server = serverName, 30 | Username = userName, 31 | Password = password 32 | }; 33 | return connection; 34 | } 35 | 36 | [Fact] 37 | public async Task FlatFileLocal_Basic() 38 | { 39 | string database = "Test-" + Guid.NewGuid().ToString(); 40 | 41 | await new UnitTests(_output).Unit(GetConnection(), database); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/dexih.transforms/Parameter/ParameterValue.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using Dexih.Utils.DataType; 3 | 4 | 5 | namespace dexih.functions.Parameter 6 | { 7 | [DataContract] 8 | public class ParameterValue : Parameter 9 | { 10 | public ParameterValue() 11 | { 12 | } 13 | 14 | /// 15 | /// Initializes are parameter 16 | /// 17 | /// Paramter name 18 | /// Parameter datatype 19 | /// Value for the parameter (note: requires isColumn = false) 20 | public ParameterValue( 21 | string name, 22 | ETypeCode parameterType, 23 | object value 24 | ) 25 | { 26 | Name = name; 27 | DataType = parameterType; 28 | if (value != null) 29 | { 30 | SetValue(value); 31 | } 32 | } 33 | 34 | public override void InitializeOrdinal(Table table, Table joinTable = null) 35 | { 36 | } 37 | 38 | public override void SetInputData(object[] data, object[] joinRow = null) 39 | { 40 | } 41 | 42 | public override void PopulateRowData(object value, object[] data, object[] joinRow = null) 43 | { 44 | } 45 | 46 | public override Parameter Copy() 47 | { 48 | return new ParameterValue(Name, DataType, Value); 49 | } 50 | 51 | 52 | } 53 | } -------------------------------------------------------------------------------- /src/dexih.transforms/Query/SelectColumns.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace dexih.functions.Query 5 | { 6 | public class SelectColumns: List 7 | { 8 | public SelectColumns() 9 | { 10 | 11 | } 12 | 13 | public SelectColumns(IEnumerable selectColumns) 14 | { 15 | if (selectColumns == null) return; 16 | 17 | AddRange(selectColumns); 18 | } 19 | 20 | public SelectColumns(params SelectColumn[] selectColumns): base(selectColumns?? new SelectColumn[0]) 21 | { 22 | 23 | } 24 | 25 | public SelectColumns(IEnumerable columns): base(columns.Select(c => new SelectColumn(c))) 26 | { 27 | 28 | } 29 | 30 | public SelectColumns(params TableColumn[] columns): base(columns.Select(c => new SelectColumn(c))) 31 | { 32 | 33 | } 34 | // 35 | // 36 | // public void Add(TableColumn column, EAggregate aggregate = EAggregate.None, TableColumn outputColumn = null) 37 | // { 38 | // var selectColumn = new SelectColumn(column, aggregate, outputColumn); 39 | // } 40 | // 41 | // public void Add(string columnName, EAggregate aggregate = EAggregate.None, string outputColumnName = null) 42 | // { 43 | // var selectColumn = new SelectColumn(columnName, aggregate, outputColumnName); 44 | // } 45 | 46 | } 47 | } -------------------------------------------------------------------------------- /src/dexih.connections.dexih/dexih.connections.dexih.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - Connections to a Data Experts Integration Hub 4 | Data Experts Group - Integration Hub Connection 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.dexih 9 | dexih.connections.dexih 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/dexih.connections.mysql/dexih.connections.mysql.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - MySql Connection and reader. 4 | Data Experts Group - MySql Connection 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.mysql 9 | dexih.connections.mysql 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /bower_components/jquery/src/intro.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery JavaScript Library v@VERSION 3 | * http://jquery.com/ 4 | * 5 | * Includes Sizzle.js 6 | * http://sizzlejs.com/ 7 | * 8 | * Copyright jQuery Foundation and other contributors 9 | * Released under the MIT license 10 | * http://jquery.org/license 11 | * 12 | * Date: @DATE 13 | */ 14 | 15 | (function( global, factory ) { 16 | 17 | if ( typeof module === "object" && typeof module.exports === "object" ) { 18 | // For CommonJS and CommonJS-like environments where a proper `window` 19 | // is present, execute the factory and get jQuery. 20 | // For environments that do not have a `window` with a `document` 21 | // (such as Node.js), expose a factory as module.exports. 22 | // This accentuates the need for the creation of a real `window`. 23 | // e.g. var jQuery = require("jquery")(window); 24 | // See ticket #14549 for more info. 25 | module.exports = global.document ? 26 | factory( global, true ) : 27 | function( w ) { 28 | if ( !w.document ) { 29 | throw new Error( "jQuery requires a window with a document" ); 30 | } 31 | return factory( w ); 32 | }; 33 | } else { 34 | factory( global ); 35 | } 36 | 37 | // Pass this if window is not defined yet 38 | }(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 39 | 40 | // Support: Firefox 18+ 41 | // Can't be in strict mode, several libs including ASP.NET trace 42 | // the stack via arguments.caller.callee and Firefox dies if 43 | // you try to trace through "use strict" call chains. (#13335) 44 | //"use strict"; 45 | -------------------------------------------------------------------------------- /src/dexih.connections.github/dexih.connections.github.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and anaytics library - GitHub Connection and reader. 5 | Data Experts Group - GitHub Connection 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.connections.github 10 | dexih.connections.github 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle;mongo;mongodb;db2;github 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/dexih.transforms/Exceptions/ConnectionExceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace dexih.transforms.Exceptions 4 | { 5 | public class ConnectionException : Exception 6 | { 7 | #if DEBUG 8 | public object[] Values { get; set; } 9 | #endif 10 | 11 | public ConnectionException() 12 | { 13 | } 14 | public ConnectionException(string message) : base(message) 15 | { 16 | } 17 | 18 | public ConnectionException(string message, Exception innerException) : base(message, innerException) 19 | { 20 | } 21 | 22 | public ConnectionException(string message, Exception innerException, params object[] values) : base(message, innerException) 23 | { 24 | #if DEBUG 25 | Values = values; 26 | #endif 27 | } 28 | 29 | public ConnectionException(string message, params object[] values) : base(message) 30 | { 31 | #if DEBUG 32 | Values = values; 33 | #endif 34 | } 35 | 36 | public override string Message 37 | { 38 | get 39 | { 40 | #if DEBUG 41 | if (Values == null || Values.Length == 0) 42 | { 43 | return base.Message; 44 | } 45 | else 46 | { 47 | return string.Format("{0}. Data values: {1}", base.Message, string.Join(", ", Values)); 48 | } 49 | #else 50 | return base.Message; 51 | #endif 52 | } 53 | } 54 | 55 | 56 | } 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/dexih.connections.postgressql/dexih.connections.postgressql.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - PostgresSql Connection and reader. 4 | Data Experts Group - PostgresSql Connection 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.postgressql 9 | dexih.connections.postgressql 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/dexih.connections.oracle/dexih.connections.oracle.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and anaytics library - Oracle Connection and reader. 5 | Data Experts Group - Oracle Connection 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.connections.oracle 10 | dexih.connections.oracle 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/dexih.connections.azure/dexih.connections.azure.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - Azure Storage Table and FlatFile Storage 4 | Data Experts Group - Azure Connections 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.azure 9 | dexih.connections.azure 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | 8 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/dexih.connections.sqlite/dexih.connections.sqlite.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and anaytics library - Sqlite Connection and reader. 5 | Data Experts Group - Sqlite Connection 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.connections.sqlite 10 | dexih.connections.sqlite 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/dexih.functions/Functions/FunctionParameter.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.Serialization; 2 | using Dexih.Utils.DataType; 3 | 4 | 5 | namespace dexih.functions 6 | { 7 | [DataContract] 8 | public class FunctionParameter 9 | { 10 | [DataMember(Order = 0)] 11 | public string ParameterName { get; set; } 12 | 13 | [DataMember(Order = 1)] 14 | public string Name { get; set; } 15 | 16 | [DataMember(Order = 2)] 17 | public string Description { get; set; } 18 | 19 | [DataMember(Order = 3)] 20 | public bool IsGeneric { get; set; } 21 | 22 | [DataMember(Order = 4)] 23 | public ETypeCode DataType { get; set; } 24 | 25 | [DataMember(Order = 5)] 26 | public bool AllowNull { get; set; } 27 | 28 | [DataMember(Order = 6)] 29 | public int Rank { get; set; } 30 | 31 | [DataMember(Order = 7)] 32 | public bool IsIndex { get; set; } 33 | 34 | [DataMember(Order = 8)] 35 | public string LinkedName { get; set; } 36 | 37 | [DataMember(Order = 9)] 38 | public string LinkedDescription { get; set; } 39 | 40 | [DataMember(Order = 10)] 41 | public bool IsLabel { get; set; } 42 | 43 | [DataMember(Order = 11)] 44 | public string[] ListOfValues { get; set; } 45 | 46 | [DataMember(Order = 12)] 47 | public string DefaultValue { get; set; } 48 | 49 | [DataMember(Order = 13)] 50 | public bool IsPassword { get; set; } 51 | 52 | [DataMember(Order = 14)] 53 | public string DefaultFormat { get; set; } 54 | } 55 | } -------------------------------------------------------------------------------- /src/dexih.functions.external/dexih.functions.external.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and Anaytics library - External Functions 5 | Data Experts Group - External Functions 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.functions.external 10 | dexih.functions.external 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latestmajor 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/dexih.connections.webservice.restful/dexih.connections.webservice.restful.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - Connection and Reader for Restful WebServices 4 | Data Experts Group - Connections Library - Restful Web Services 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.webservice.restful 9 | dexih.connections.webservice.restful 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/dexih.functions.financial/dexih.functions.financial.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and Anaytics library - Financial Functions 5 | Data Experts Group - Financial Functions 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.functions.financial 10 | dexih.functions.financial 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | 7.1 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /test/dexih.transforms.tests/StreamActionTests.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Threading.Tasks; 3 | using Newtonsoft.Json; 4 | using Xunit; 5 | 6 | namespace dexih.transforms.tests 7 | { 8 | public class StreamActionTests 9 | { 10 | [Fact] 11 | void StreamAction_Test() 12 | { 13 | var stream = new StreamAction(() => 14 | { 15 | var values = new[] {1, 2, 3, 4, 5}; 16 | return values; 17 | }); 18 | 19 | var serializer = new JsonSerializer(); 20 | 21 | using (var sr = new StreamReader(stream)) 22 | using (var jsonTextReader = new JsonTextReader(sr)) 23 | { 24 | var value = serializer.Deserialize(jsonTextReader); 25 | 26 | Assert.Equal(1, value[0]); 27 | Assert.Equal(5, value.Length); 28 | } 29 | } 30 | 31 | [Fact] 32 | void StreamAsyncAction_Test() 33 | { 34 | var stream = new StreamAsyncAction(() => 35 | { 36 | var values = new[] {1, 2, 3, 4, 5}; 37 | return Task.FromResult(values); 38 | }); 39 | 40 | var serializer = new JsonSerializer(); 41 | 42 | using (var sr = new StreamReader(stream)) 43 | using (var jsonTextReader = new JsonTextReader(sr)) 44 | { 45 | var value = serializer.Deserialize(jsonTextReader); 46 | 47 | Assert.Equal(1, value[0]); 48 | Assert.Equal(5, value.Length); 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/dexih.connections.db2/dexih.connections.db2.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and anaytics library - DB2 Connection and reader. 5 | Data Experts Group - DB2 Connection 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.connections.db2 10 | dexih.connections.db2 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle;mongo;mongodb;db2 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/dexih.connections.sqlserver/dexih.connections.sqlserver.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Data transformation and anaytics library - SqlServer Connection and reader. 4 | Data Experts Group - SqlServer Connection 5 | 1.0.1 6 | Gary Holland 7 | netstandard2.1 8 | dexih.connections.sqlserver 9 | dexih.connections.sqlserver 10 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle 11 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 12 | https://github.com/dataexperts/dexih.transforms 13 | false 14 | false 15 | false 16 | latest 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/dexih.transforms/Query/QueryColumn.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using System.Runtime.Serialization; 4 | 5 | namespace dexih.functions.Query 6 | { 7 | [DataContract] 8 | public class QueryColumn: IEquatable 9 | { 10 | public QueryColumn() { } 11 | 12 | public QueryColumn(TableColumn column, object value) 13 | { 14 | Column = column; 15 | Value = value; 16 | } 17 | 18 | public QueryColumn(string columnName, object value) 19 | { 20 | Column = new TableColumn(columnName); 21 | Value = value; 22 | } 23 | 24 | [DataMember(Order = 0)] 25 | public TableColumn Column { get; set; } 26 | 27 | [DataMember(Order = 1)] 28 | public object Value { get; set; } 29 | 30 | public bool Equals(QueryColumn other) 31 | { 32 | if (ReferenceEquals(null, other)) return false; 33 | if (ReferenceEquals(this, other)) return true; 34 | return Equals(Column, other.Column) && Equals(Value, other.Value); 35 | } 36 | 37 | public override bool Equals(object obj) 38 | { 39 | if (ReferenceEquals(null, obj)) return false; 40 | if (ReferenceEquals(this, obj)) return true; 41 | if (obj.GetType() != GetType()) return false; 42 | return Equals((QueryColumn) obj); 43 | } 44 | 45 | public override int GetHashCode() 46 | { 47 | unchecked 48 | { 49 | return ((Column != null ? Column.GetHashCode() : 0) * 397) ^ (Value != null ? Value.GetHashCode() : 0); 50 | } 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /test/dexih.functions.tests/dexih.functions.initialize.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | using Xunit; 4 | 5 | namespace dexih.functions.tests 6 | { 7 | public class FunctionInitializers 8 | { 9 | [Fact] 10 | public void TransformFunction_RunFunction_UsingDelegate() 11 | { 12 | //create a custom function 13 | TransformFunction function1 = new TransformFunction(new Func((i, j) => i + j)); 14 | Assert.True((int) function1.RunFunction(new FunctionVariables(), new object[] { 6, 2 }, CancellationToken.None).returnValue == 8); 15 | } 16 | 17 | [Fact] 18 | public void TransformFunction_RunFunction_UsingMethod() 19 | { 20 | //create a custom function 21 | var globalVariable = new GlobalSettings(null); 22 | TransformFunction function1 = new TransformFunction( 23 | this, 24 | nameof(TestMethod)); 25 | Assert.True((int) function1.RunFunction(new FunctionVariables(),new object[] { 6, 2 }, CancellationToken.None).returnValue == 8); 26 | } 27 | 28 | [Fact] 29 | public void TransformFunction_RunFunction_UsingReflection() 30 | { 31 | //create a custom function 32 | TransformFunction function1 = new TransformFunction(this, this.GetType().GetMethod(nameof(TestMethod)), typeof(string), null, new GlobalSettings(null)); 33 | Assert.True((int) function1.RunFunction(new FunctionVariables(),new object[] { 6, 2 }, CancellationToken.None).returnValue == 8); 34 | } 35 | 36 | public int TestMethod(int a, int b) => a + b; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/dexih.connections.mongo/dexih.connections.mongo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Data transformation and anaytics library - MongoDB Connection and reader. 5 | Data Experts Group - MongoDB Connection 6 | 1.0.1 7 | Gary Holland 8 | netstandard2.1 9 | dexih.connections.mongo 10 | dexih.connections.mongo 11 | Business Intelligence;BI;ETL;Data Integration;Data Management;DbDataReader;Data Processing;Analytics;sqlserver;sqlite;sql;ftp;sftp;oracle;postgres;postgressql;mysql;azure;excel;oracle;mongo;mongodb;db2 12 | Refer to the project url (https://github.com/dataexperts/dexih.transforms) for documentation and raising issues 13 | https://github.com/dataexperts/dexih.transforms 14 | false 15 | false 16 | false 17 | latest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /bower_components/jquery/src/ajax/script.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../var/document", 4 | "../ajax" 5 | ], function( jQuery, document ) { 6 | 7 | // Install script dataType 8 | jQuery.ajaxSetup( { 9 | accepts: { 10 | script: "text/javascript, application/javascript, " + 11 | "application/ecmascript, application/x-ecmascript" 12 | }, 13 | contents: { 14 | script: /\b(?:java|ecma)script\b/ 15 | }, 16 | converters: { 17 | "text script": function( text ) { 18 | jQuery.globalEval( text ); 19 | return text; 20 | } 21 | } 22 | } ); 23 | 24 | // Handle cache's special case and crossDomain 25 | jQuery.ajaxPrefilter( "script", function( s ) { 26 | if ( s.cache === undefined ) { 27 | s.cache = false; 28 | } 29 | if ( s.crossDomain ) { 30 | s.type = "GET"; 31 | } 32 | } ); 33 | 34 | // Bind script tag hack transport 35 | jQuery.ajaxTransport( "script", function( s ) { 36 | 37 | // This transport only deals with cross domain requests 38 | if ( s.crossDomain ) { 39 | var script, callback; 40 | return { 41 | send: function( _, complete ) { 42 | script = jQuery( "