public async Task ShouldReturnXmlString()
        {
            var q = new QueryProperties {
                Query = @"select * from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType = QueryReturnType.Xml,
                XmlOutput  = new XmlOutputProperties
                {
                    RootElementName = "items",
                    RowElementName  = "item"
                }
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            Assert.AreEqual(@"<?xml version=""1.0"" encoding=""utf-16""?>
<items>
  <item>
    <NAME>hodor</NAME>
    <VALUE>123</VALUE>
  </item>
  <item>
    <NAME>jon</NAME>
    <VALUE>321</VALUE>
  </item>
</items>", result.Result);
        }
        public async Task ShouldReturnJsonString()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType   = QueryReturnType.Json,
                JsonOutput   = new JsonOutputProperties(),
                OutputToFile = false
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            Assert.IsTrue(string.Equals(result.Result, @"[
  {
    ""name"": ""hodor"",
    ""value"": 123
  },
  {
    ""name"": ""jon"",
    ""value"": 321
  }
]"));
        }
예제 #3
0
        public async Task ExecuteOracleSelect()
        {
            QueryParameter[] qpList = new QueryParameter[1];
            qpList[0] = new QueryParameter {
                Name = "DESC", Value = "unit test text", DataType = QueryParameterType.Text
            };

            var input = new QueryProperties
            {
                Query      = "SELECT * FROM TestTable WHERE textField LIKE :DESC",
                Parameters = qpList
            };

            var conn = new ConnectionProperties
            {
                Address  = Address,
                Username = Username,
                Password = Password
            };

            var output = new OutputProperties {
                CultureInfo = null, OutputToFile = false
            };
            var result = await IFSAccessProvider.Query(input, output, conn, new CancellationToken());

            Assert.Equal("Command executed", result.Result);
        }
        public async Task IsolationTest1()
        {
            var q = new QueryProperties {
                Query = "select * from InsertTest", ConnectionString = ConnectionString
            };

            var o = new QueryOutputProperties
            {
                ReturnType = QueryReturnType.Csv,
                CsvOutput  = new CsvOutputProperties
                {
                    CsvSeparator   = ";",
                    IncludeHeaders = true
                },
                OutputToFile = false,
            };

            var options = new QueryOptions
            {
                ThrowErrorOnFailure = true,
                IsolationLevel      = Oracle_IsolationLevel.ReadCommitted
            };

            var result = await OracleTasks.ExecuteQueryOracle(q, o, options, new CancellationToken());

            Assert.AreEqual(result.Result, "NAME;SENDSTATUS\r\nHan_1;0\r\n");
        }
        public async Task ShouldWriteJsonFile()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest", ConnectionString = ConnectionString
            };
            var o = new QueryOutputProperties
            {
                ReturnType   = QueryReturnType.Json,
                JsonOutput   = new JsonOutputProperties(),
                OutputToFile = true,
                OutputFile   = new OutputFileProperties
                {
                    Path = Path.Combine(outputDirectory, Guid.NewGuid().ToString() + ".json")
                }
            };
            var options = new QueryOptions {
                ThrowErrorOnFailure = true
            };

            var result = await OracleTasks.ExecuteQueryOracle(q, o, options, new CancellationToken());

            Assert.IsTrue(File.Exists(result.Result), "should have created json outputfile");
            var expected = File.ReadAllText(Path.Combine(expectedFileDirectory, "ExpectedJson.json"));

            Assert.AreEqual(expected, File.ReadAllText(result.Result));
            File.Delete(result.Result);
        }
예제 #6
0
        // public string LatestDataDragonVersion { get; private set; }

        public MainWindowViewModel(FileManager files, RequestManager requests, SettingsManager settingsManager, ReplayPlayer player, RiZhi log)
        {
            SettingsManager = settingsManager ?? throw new ArgumentNullException(nameof(settingsManager));
            _fileManager    = files ?? throw new ArgumentNullException(nameof(files));
            _log            = log ?? throw new ArgumentNullException(nameof(log));
            _player         = player ?? throw new ArgumentNullException(nameof(player));

            RequestManager = requests ?? throw new ArgumentNullException(nameof(requests));

            KnownPlayers = SettingsManager.Settings.KnownPlayers;

            PreviewReplays = new ObservableCollection <ReplayPreview>();
            FileResults    = new Dictionary <string, FileResult>();

            SortParameters = new QueryProperties
            {
                SearchTerm = String.Empty,
                SortMethod = SortMethod.DateDesc
            };

            StatusBarModel = new StatusBar();

            // By default we do not want to delete our cache
            ClearItemsCacheOnClose  = false;
            ClearChampsCacheOnClose = false;
            ClearReplayCacheOnClose = false;
        }
        public async Task ShouldWriteCsvFile()
        {
            var q = new QueryProperties {
                Query = "select * from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType = QueryReturnType.Csv,
                CsvOutput  = new CsvOutputProperties
                {
                    CsvSeparator   = ";",
                    IncludeHeaders = true
                },
                OutputToFile = true,
                OutputFile   = new OutputFileProperties
                {
                    Path = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString() + ".csv")
                }
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            Assert.IsTrue(File.Exists(result.Result), "should have created csv output file");
            File.Delete(result.Result);
        }
        public async Task ShouldWriteJsonFile()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType   = QueryReturnType.Json,
                JsonOutput   = new JsonOutputProperties(),
                OutputToFile = true,
                OutputFile   = new OutputFileProperties
                {
                    Path = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString() + ".json")
                }
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            Assert.IsTrue(File.Exists(result.Result), "should have created json outputfile");
            Assert.AreEqual(@"[
  {
    ""name"": ""hodor"",
    ""value"": 123
  },
  {
    ""name"": ""jon"",
    ""value"": 321
  }
]",
                            File.ReadAllText(result.Result));
            File.Delete(result.Result);
        }
예제 #9
0
 /// <summary>
 /// Add new query property to query properties list.
 /// <param name="key">Anniversary entity schema name.</param>
 /// <param name="value">The property determines type of the decoration.</param>
 /// <example>AddQueryProperty("Contact", "Participant")</example>
 /// </summary>
 protected void AddQueryProperty(string key, string value)
 {
     if (QueryProperties.Any(pair => pair.Key == key && pair.Value == value))
     {
         return;
     }
     QueryProperties.Add(new KeyValuePair <string, string>(key, value));
 }
        public async Task MultiBatchOperationInsertTest()
        {
            var inputbatch = new InputMultiBatchOperation
            {
                BatchQueries = new BatchOperationQuery[] {
                    new BatchOperationQuery {
                        BatchInputQuery = @"delete from batch_table_test", InputJson = ""
                    },
                    new BatchOperationQuery {
                        BatchInputQuery = @"insert into batch_table_test (NR,NAM)values(:NR,:NAM)", InputJson = "[{\"NR\": 111, \"NAM\":\"nannaa1\"},{\"NR\":222, \"NAM\":\"nannaa2\"},{\"NR\":333, \"NAM\":\"nannaa3\"}, {\"NR\":444, \"NAM\":\"nannaa4\"}]"
                    },
                    new BatchOperationQuery {
                        BatchInputQuery = @"insert into batch_table_test (NR,NAM)values(:NR,:NAM)", InputJson = "[{\"NR\": 555, \"NAM\":\"nannaa1\"},{\"NR\":666, \"NAM\":\"nannaa2\"}]"
                    }
                },

                ConnectionString = ConnectionString
            };

            var options = new BatchOptions
            {
                ThrowErrorOnFailure = true,
                IsolationLevel      = Oracle_IsolationLevel.Serializable
            };

            MultiBatchOperationOutput output;

            try
            {
                output = await OracleTasks.MultiBatchOperationOracle(inputbatch, options, new CancellationToken());
            }
            catch (Exception ee)
            {
                throw ee;
            }

            var o = new QueryOutputProperties
            {
                ReturnType   = QueryReturnType.Json,
                JsonOutput   = new JsonOutputProperties(),
                OutputToFile = false
            };

            var q2 = new QueryProperties {
                Query = @"select count(*) as ROWCOUNT from batch_table_test", ConnectionString = ConnectionString
            };
            var options_2 = new QueryOptions();

            options.ThrowErrorOnFailure = true;
            options.IsolationLevel      = Oracle_IsolationLevel.Serializable;
            var result_debug = await OracleTasks.ExecuteQueryOracle(q2, o, options_2, new CancellationToken());

            Assert.AreEqual(result_debug.Result, "[\r\n  {\r\n    \"ROWCOUNT\": 6.0\r\n  }\r\n]");
        }
        public async Task BatchOperationInsertTest()
        {
            //t(NR varchar(20), NAM varchar(20))",
            var inputbatch = new InputBatchOperation
            {
                Query            = @"BEGIN
                insert into batch_table_test (NR,NAM)values(:NR,:NAM);
                END;",
                InputJson        = "[{\"NR\": 111, \"NAM\":\"nannaa1\"},{\"NR\":222, \"NAM\":\"nannaa2\"},{\"NR\":333, \"NAM\":\"nannaa3\"}, {\"NR\":444, \"NAM\":\"nannaa4\"}]",
                ConnectionString = ConnectionString
            };

            var options = new BatchOptions
            {
                ThrowErrorOnFailure = true,
                IsolationLevel      = Oracle_IsolationLevel.Serializable
            };

            BatchOperationOutput batch_output;

            try
            {
                batch_output = await OracleTasks.BatchOperationOracle(inputbatch, options, new CancellationToken());
            }
            catch (Exception ee)
            {
                throw ee;
            }

            // ExecuteQueryOracle rows from db, should be 2.
            var o = new QueryOutputProperties
            {
                ReturnType = QueryReturnType.Csv,
                CsvOutput  = new CsvOutputProperties
                {
                    CsvSeparator   = ";",
                    IncludeHeaders = true
                },
                OutputToFile = false,
            };

            var q2 = new QueryProperties {
                Query = @"select count(*) as ROWCOUNT from batch_table_test", ConnectionString = ConnectionString
            };
            var options_2 = new QueryOptions();

            options.ThrowErrorOnFailure = true;
            options.IsolationLevel      = Oracle_IsolationLevel.Serializable;
            var result_debug = await OracleTasks.ExecuteQueryOracle(q2, o, options_2, new CancellationToken());

            Assert.AreEqual("ROWCOUNT\r\n4\r\n", result_debug.Result);
        }
예제 #12
0
        public static void Write(this QueryProperties queryProperties, CSideWriter writer)
        {
            writer.BeginSection("PROPERTIES");

            var relevantProperties = queryProperties.Where(p => p.HasValue);

            foreach (Property property in relevantProperties)
            {
                var isLastProperty = (property == relevantProperties.Last());
                property.Write(isLastProperty, PropertiesStyle.Object, writer);
            }

            writer.EndSection();
        }
        public async Task RollBackTest_1()
        {
            var q = new QueryProperties {
                Query = @"
                BEGIN
                insert into duplicate_inserttest_table (po_nr)values ('1');
                insert into duplicate_inserttest_table2 (po_nr)values ('2');
                insert into duplicate_inserttest_table2 (po_nr)values ('2');
                END;", ConnectionString = ConnectionString
            };

            var o = new QueryOutputProperties
            {
                ReturnType = QueryReturnType.Csv,
                CsvOutput  = new CsvOutputProperties
                {
                    CsvSeparator   = ";",
                    IncludeHeaders = true
                },
                OutputToFile = false,
            };

            var options = new QueryOptions
            {
                ThrowErrorOnFailure = true,
                IsolationLevel      = Oracle_IsolationLevel.None
            };
            var result       = new Output();
            var result_debug = new Output();
            var ex_string    = "";

            try
            {
                result = await OracleTasks.ExecuteQueryOracle(q, o, options, new CancellationToken());
            }
            catch (Exception ee)
            {
                ex_string = ee.ToString();

                var q2 = new QueryProperties {
                    Query = @"select * from duplicate_inserttest_table", ConnectionString = ConnectionString
                };
                result_debug = await OracleTasks.ExecuteQueryOracle(q2, o, options, new CancellationToken());
            }

            Assert.AreEqual(ex_string.Contains("ORA-00001: unique constraint"), true);
            Assert.AreEqual(result.Success, false);
            Assert.AreEqual(result_debug.Result, "");
        }
예제 #14
0
        public IReadOnlyCollection <FileResult> GetReplays(QueryProperties sort, int maxEntries, int skip)
        {
            if (sort == null)
            {
                throw new ArgumentNullException(nameof(sort));
            }

            var keywords = sort.SearchTerm.Split('"')                                     // split the string by quotes
                           .Select((element, index) =>                                    // select the substring, and the index of the substring
                                   index % 2 == 0                                         // If the index is even (after a close quote)
                    ? element.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) // split by space
                    : new string[] { element })                                           // return the string enclosed by quotes
                           .SelectMany(element => element).ToArray();

            return(_db.QueryReplayFiles(keywords, sort.SortMethod, maxEntries, skip));
        }
예제 #15
0
        public void SetItem(IQueryableDataItem queryItem)
        {
            QueryProperties.Clear();
            foreach (IQueryableProperty q in queryItem.QueryableProperties.Where(x => x.IsSelected))
            {
                QueryProperty qp = new QueryProperty();
                qp.FilterOperator = q.FilterOperator;
                qp.FilterValue    = q.FilterValue;
                qp.IsFiltering    = q.IsFiltering;
                qp.IsSelected     = q.IsSelected;
                qp.IsReturning    = q.IsReturning;
                qp.Format         = q.Format;
                qp.ColumnOrder    = q.ColumnOrder;
                qp.Name           = q.Name;
                qp.ColumnHeader   = q.ColumnHeader;

                QueryProperties.Add(qp);
            }
        }
        public async Task QueryDatabaseJSON()
        {
            var queryProperties = new QueryProperties {
                Query = "SELECT * FROM DecimalTest"
            };
            var outputProperties = new OutputProperties
            {
                ReturnType = QueryReturnType.Json,
                JsonOutput = new JsonOutputProperties()
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(queryProperties, outputProperties, _conn, options, new CancellationToken());

            Assert.AreNotEqual("", result.Result);
            Assert.AreEqual(true, result.Success);
        }
        public async Task QueryDatabaseJSON()
        {
            var queryProperties = new QueryProperties {
                Query = "SELECT * FROM DecimalTest", ConnectionString = ConnectionString
            };
            var outputProperties = new QueryOutputProperties
            {
                ReturnType = QueryReturnType.Json,
                JsonOutput = new JsonOutputProperties()
            };
            var options = new QueryOptions {
                ThrowErrorOnFailure = true
            };

            var result = await OracleTasks.ExecuteQueryOracle(queryProperties, outputProperties, options, new CancellationToken());

            Assert.AreNotEqual("", result.Result);
            Assert.AreEqual(true, result.Success);
        }
        public async Task ShouldWriteXmlFile()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType = QueryReturnType.Xml,
                XmlOutput  = new XmlOutputProperties
                {
                    RootElementName = "items",
                    RowElementName  = "item"
                },
                OutputToFile = true,
                OutputFile   = new OutputFileProperties
                {
                    Path = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString() + ".xml")
                }
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            Assert.IsTrue(File.Exists(result.Result), "should have created xml output file");
            Assert.AreEqual(
                @"<?xml version=""1.0"" encoding=""utf-8""?>
<items>
  <item>
    <name>hodor</name>
    <value>123</value>
  </item>
  <item>
    <name>jon</name>
    <value>321</value>
  </item>
</items>",
                File.ReadAllText(result.Result));
            File.Delete(result.Result);
        }
        public async Task ShouldReturnJsonString()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest", ConnectionString = ConnectionString
            };
            var o = new QueryOutputProperties
            {
                ReturnType   = QueryReturnType.Json,
                JsonOutput   = new JsonOutputProperties(),
                OutputToFile = false
            };
            var options = new QueryOptions {
                ThrowErrorOnFailure = true
            };

            var result = await OracleTasks.ExecuteQueryOracle(q, o, options, new CancellationToken());

            var expected = File.ReadAllText(Path.Combine(expectedFileDirectory, "ExpectedJson.json"));

            Assert.AreEqual(expected, result.Result);
        }
예제 #20
0
        public MainWindowViewModel(FileManager files, RequestManager requests, SettingsManager settingsManager, RiZhi log)
        {
            SettingsManager = settingsManager ?? throw new ArgumentNullException(nameof(settingsManager));
            _fileManager    = files ?? throw new ArgumentNullException(nameof(files));
            _log            = log ?? throw new ArgumentNullException(nameof(log));

            RequestManager = requests ?? throw new ArgumentNullException(nameof(requests));

            KnownPlayers = SettingsManager.Settings.KnownPlayers;

            PreviewReplays = new ObservableCollection <ReplayPreview>();
            FileResults    = new Dictionary <string, FileResult>();

            SortParameters = new QueryProperties
            {
                SearchTerm = String.Empty,
                SortMethod = SortMethod.DateDesc
            };

            StatusBarModel = new StatusBar();
        }
        public async Task ShouldReturnCsvString()
        {
            var q = new QueryProperties {
                Query = @"select name as ""name"", value as ""value"" from HodorTest"
            };
            var o = new OutputProperties
            {
                ReturnType = QueryReturnType.Csv,
                CsvOutput  = new CsvOutputProperties
                {
                    CsvSeparator   = ";",
                    IncludeHeaders = true
                }
            };
            var options = new Options {
                ThrowErrorOnFailure = true
            };

            Output result = await QueryTask.Query(q, o, _conn, options, new CancellationToken());

            StringAssert.IsMatch(result.Result, "name;value\r\nhodor;123\r\njon;321\r\n");
        }
        public async Task ShouldReturnXmlString()
        {
            var q = new QueryProperties {
                Query = @"select * from HodorTest", ConnectionString = ConnectionString
            };
            var o = new QueryOutputProperties
            {
                ReturnType = QueryReturnType.Xml,
                XmlOutput  = new XmlOutputProperties
                {
                    RootElementName = "items",
                    RowElementName  = "item"
                }
            };
            var options = new QueryOptions {
                ThrowErrorOnFailure = true
            };

            var result = await OracleTasks.ExecuteQueryOracle(q, o, options, new CancellationToken());

            var expected = File.ReadAllText(Path.Combine(expectedFileDirectory, "ExpectedUtf16Xml.xml"));

            Assert.AreEqual(expected, result.Result);
        }
예제 #23
0
 internal QueryPropertiesPredicate(object queryObject, QueryProperties attribute) : base(queryObject) => _attribute = attribute;
예제 #24
0
파일: WikiRequest.cs 프로젝트: HillBen/TDYW
 public bool ShouldSerializePageImagesProperty()
 {
     return(QueryProperties.Contains("pageimages"));
 }
예제 #25
0
파일: WikiRequest.cs 프로젝트: HillBen/TDYW
 public bool ShouldSerializeRevisionSection()
 {
     return(QueryProperties.Contains("revisions"));
 }
 private void ClearOAuthToken(string tokenName)
 {
     Headers.Values.Remove(tokenName);
     QueryProperties.Remove(tokenName);
     BodyProperties.Remove(tokenName);
 }