コード例 #1
0
 public void TestCastWithClass()
 {
     var dict = new Dictionary<string, object> {{"Name", "Bob"}};
     dynamic test = new SimpleResultSet(new[] {new SimpleRecord(dict)});
     IEnumerable<Foo> foos = test.Cast<Foo>();
     Assert.AreEqual(1, foos.Count());
 }
コード例 #2
0
 public void TestOfType()
 {
     dynamic test = new SimpleResultSet(new dynamic[] { "Hello", 1 });
     IEnumerable<int> ints = test.OfType<int>();
     Assert.AreEqual(1, ints.Count());
     Assert.AreEqual(1, ints.Single());
 }
コード例 #3
0
        private SimpleResultSet ToMultipleDynamicEnumerables(IEnumerable <IEnumerable <IDictionary <string, object> > > resultSets)
        {
            var result = new SimpleResultSet(resultSets.Select(resultSet => resultSet.Select(dict => new SimpleRecord(dict))));

            result.SetOutputValues(_arguments);
            return(result);
        }
コード例 #4
0
ファイル: SimpleRecord.cs プロジェクト: robashton/Simple.Data
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            if (_data.ContainsKey(binder.Name))
            {
                result = _data[binder.Name];
                var converted = ConvertResult(result);
                if (!ReferenceEquals(result, converted))
                    _data[binder.Name] = result = converted;
                
                return true;
            }

            if (_tableName == null)
            {
                result = null;
                return false;
            }
            var relatedAdapter = _database.Adapter as IAdapterWithRelation;
            if (relatedAdapter != null && relatedAdapter.IsValidRelation(_tableName, binder.Name))
            {
                var relatedRows = relatedAdapter.FindRelated(_tableName, _data, binder.Name);
                if (relatedRows.Count() == 1 && !binder.Name.IsPlural())
                {
                    result = new SimpleRecord(relatedRows.Single(), binder.Name, _database);
                }
                else
                {
                    result = new SimpleResultSet(relatedRows.Select(dict => new SimpleRecord(dict, binder.Name, _database)));
                }
                return true;
            }
            return base.TryGetMember(binder, out result);
        }
コード例 #5
0
        public async Task <SimpleResultSet> ExecuteDispatchFromNodeGroup(NodeGroup ng, JsonObject sparqlConnectionJson, JsonObject edcConstraintsJson, JsonObject runtimeConstraintsJson)
        {
            SimpleResultSet retval = null;

            conf.SetServiceEndpoint(mappingPrefix + dispatchFromNodegroupEndpoint);
            this.parameterJson.Add("jsonRenderedNodeGroup", JsonValue.CreateStringValue(ng.ToJson().ToString()));
            this.parameterJson.Add("sparqlConnection", JsonValue.CreateStringValue(sparqlConnectionJson.ToString()));
            if (edcConstraintsJson != null)
            {
                this.parameterJson.Add("externalDataConnectionConstraints", JsonValue.CreateStringValue(edcConstraintsJson.ToString()));
            }
            if (runtimeConstraintsJson != null)
            {
                this.parameterJson.Add("runtimeConstraints", JsonValue.CreateStringValue(runtimeConstraintsJson.ToString()));
            }
            try
            {
                JsonObject kObj = (JsonObject)(await this.Execute());
                retval = SimpleResultSet.FromJson(kObj);
                retval.ThrowExceptionIfUnsuccessful();
            }
            finally{
                conf.SetServiceEndpoint(null);

                this.parameterJson.Remove("jsonRenderedNodeGroup");
                this.parameterJson.Remove("sparqlConnection");
                this.parameterJson.Remove("externalDataConnectionConstraints");
                this.parameterJson.Remove("runtimeConstraints");
            }

            return(retval);
        }
コード例 #6
0
        public async Task <SimpleResultSet> ExecuteDispatchFilterById(String nodegroupID, String targetObjectSparqlId, JsonObject sparqlConnectionJson, JsonObject edcConstraintsJson, JsonArray runtimeConstraintsJson)
        {
            SimpleResultSet retval = null;

            conf.SetServiceEndpoint(mappingPrefix + dispatchFilterByIdEndpoint);
            this.parameterJson.Add("nodeGroupId", JsonValue.CreateStringValue(nodegroupID));
            this.parameterJson.Add("sparqlConnection", JsonValue.CreateStringValue(sparqlConnectionJson.ToString()));
            this.parameterJson.Add("targetObjectSparqlId", JsonValue.CreateStringValue(targetObjectSparqlId));
            if (edcConstraintsJson != null)
            {
                this.parameterJson.Add("externalDataConnectionConstraints", JsonValue.CreateStringValue(edcConstraintsJson.ToString()));
            }
            if (runtimeConstraintsJson != null)
            {
                this.parameterJson.Add("runtimeConstraints", JsonValue.CreateStringValue(runtimeConstraintsJson.ToString()));
            }

            try
            {
                JsonObject kObj = (JsonObject)(await this.Execute());
                retval = SimpleResultSet.FromJson(kObj);
                retval.ThrowExceptionIfUnsuccessful();
            }
            finally{
                conf.SetServiceEndpoint(null);

                this.parameterJson.Remove("nodeGroupId");
                this.parameterJson.Remove("sparqlConnection");
                this.parameterJson.Remove("externalDataConnectionConstraints");
                this.parameterJson.Remove("runtimeConstraints");
                this.parameterJson.Remove("targetObjectSparqlId");
            }
            return(retval);
        }
コード例 #7
0
        public async Task <OntologyInfo> ExecuteGetOntologyInfo(SparqlConnection connection)
        {   // get the ontology info information related to this connection.
            SimpleResultSet interrimResult = null;
            OntologyInfo    retval         = null;

            conf.SetServiceEndpoint(mappingPrefix + ontologyInfoDetailsEndpoint);
            String connectionJsonString = connection.ToJson().ToString();

            this.parameterJson.Add("jsonRenderedSparqlConnection", JsonValue.CreateStringValue(connectionJsonString));

            try
            {   // talk to the service to get the ontology info details.
                //JsonObject obj = (JsonObject)this.Execute().Result;
                JsonObject objExec = (JsonObject)(await this.Execute());

                interrimResult = SimpleResultSet.FromJson(objExec);
                interrimResult.ThrowExceptionIfUnsuccessful();
                // get the actual value from the results
                JsonObject obj = interrimResult.GetResultJsonObject("ontologyInfo");
                // build an oInfo from it.
                retval = new OntologyInfo();
                retval.AddJson(obj);
            }
            finally
            {
                conf.SetServiceEndpoint(null);
                this.parameterJson.Remove("jsonRenderedSparqlConnection");
            }
            // return the OntologyInfo
            return(retval);
        }
コード例 #8
0
        public void TestCast()
        {
            dynamic test = new SimpleResultSet(new[] { "Hello", "World" });
            IEnumerable <string> strings = test.Cast <string>();

            Assert.AreEqual(2, strings.Count());
        }
コード例 #9
0
        public async Task <long> ExecuteDispatchCountByNodegroupToLong(NodeGroup nodegroup, JsonObject sparqlConnectionJson, JsonObject edcConstraintsJson, JsonArray runtimeConstraintsJson)
        {
            SimpleResultSet ret = await this.ExecuteDispatchCountFromNodeGroup(nodegroup, sparqlConnectionJson, edcConstraintsJson, runtimeConstraintsJson);

            Table tab = await this.WaitForJobAndGetTable(ret.GetResult("JobId"));

            return(tab.GetCellAsInt(0, 0));
        }
コード例 #10
0
        public void TestOfType()
        {
            dynamic           test = new SimpleResultSet(new dynamic[] { "Hello", 1 });
            IEnumerable <int> ints = test.OfType <int>();

            Assert.AreEqual(1, ints.Count());
            Assert.AreEqual(1, ints.Single());
        }
コード例 #11
0
        public void ConvertsToHashSet()
        {
            dynamic           list    = new SimpleResultSet(Records(1));
            HashSet <dynamic> generic = list;

            Assert.IsNotNull(generic);
            Assert.AreEqual("0", generic.Single().Data);
        }
コード例 #12
0
        public void ConvertsToNonGenericList()
        {
            dynamic   list    = new SimpleResultSet(Records(1));
            ArrayList generic = list;

            Assert.IsNotNull(generic);
            Assert.AreEqual("0", ((dynamic)generic[0]).Data);
        }
コード例 #13
0
        public void ConvertsToGenericList()
        {
            dynamic        list    = new SimpleResultSet(Records(1));
            List <dynamic> generic = list;

            Assert.IsNotNull(generic);
            Assert.AreEqual("0", generic[0].Data);
        }
コード例 #14
0
 public void TestCastWithForeach()
 {
     var dict = new Dictionary<string, object>(HomogenizedEqualityComparer.DefaultInstance) { { "Name", "Bob" } };
     dynamic test = new SimpleResultSet(new[] { new SimpleRecord(dict) });
     foreach (Foo foo in test)
     {
         Assert.AreEqual("Bob", foo.Name);
     }
 }
コード例 #15
0
        public static SimpleResultSet ResultSetFromModifiedRowCount(this int count)
        {
            var simpleResultSet = new SimpleResultSet(Enumerable.Empty <SimpleRecord>());

            simpleResultSet.SetOutputValues(new Dictionary <string, object> {
                { "__ReturnValue", count }
            });
            return(simpleResultSet);
        }
コード例 #16
0
 public void TestCastWithForeach()
 {
     var dict = new Dictionary<string, object> { { "Name", "Bob" } };
     dynamic test = new SimpleResultSet(new[] { new SimpleRecord(dict) });
     foreach (Foo foo in test)
     {
         Assert.AreEqual("Bob", foo.Name);
     }
 }
コード例 #17
0
        public void CastToGenericCreatesTypedList()
        {
            dynamic list = new SimpleResultSet(Records(1));
            IEnumerable <TestType> converted = list.Cast <TestType>();

            Assert.IsNotNull(converted);
            Assert.AreEqual(1, converted.Count());
            Assert.AreEqual("0", converted.First().Data);
        }
コード例 #18
0
        public void ToGenericListCreatesTypedList()
        {
            dynamic         list      = new SimpleResultSet(Records(1));
            List <TestType> converted = list.ToList <TestType>();

            Assert.IsNotNull(converted);
            Assert.AreEqual(1, converted.Count);
            Assert.AreEqual("0", converted[0].Data);
        }
コード例 #19
0
        public void ToListCreatesList()
        {
            dynamic        list  = new SimpleResultSet(Records(1));
            List <dynamic> array = list.ToList();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Count);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #20
0
ファイル: RestClient.cs プロジェクト: cuddihyge/semtk-c-sharp
        /* execute and get a simple result set */
        public async Task <SimpleResultSet> ExecuteWithSimpleResultReturn()
        {
            if (conf.GetServiceEndpoint() == null || conf.GetServiceEndpoint().Length == 0)
            {
                throw new Exception("Attempting to execute client with no endpoint specified.");
            }
            JsonObject kObj = (JsonObject)(await this.Execute());

            return(SimpleResultSet.FromJson(kObj));
        }
コード例 #21
0
        public void ToGenericArrayCreatesTypedArray()
        {
            dynamic list = new SimpleResultSet(Records(1));

            TestType[] array = list.ToArray <TestType>();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Length);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #22
0
        public void ToArrayCreatesArray()
        {
            dynamic list = new SimpleResultSet(Records(1));

            dynamic[] array = list.ToArray();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Length);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #23
0
ファイル: RestClient.cs プロジェクト: cuddihyge/semtk-c-sharp
        /* get the last run result as a simple result set */
        protected SimpleResultSet GetRunResultAsSimpleResultSet()
        {
            SimpleResultSet retval = new SimpleResultSet();

            if (this.runResult == null)
            {
                throw new Exception("last service communication resulted in null and cannot be converted");
            }
            retval = SimpleResultSet.FromJson((JsonObject)this.runResult);
            return(retval);
        }
コード例 #24
0
ファイル: SqlRunner.cs プロジェクト: jonocairns/csharp-utils
    /// <summary>
    /// Executes the versioned save.
    /// </summary>
    public SimpleResultSet ExecuteNonTransactedVersionedSave(Func <dynamic, SimpleResultSet> dbAction, string outOfDateError)
    {
        SimpleResultSet result = ExecuteNonTransacted(dbAction);

        if (result.SingleOrDefault() == null)
        {
            throw new ConcurrencyException(outOfDateError);
        }

        return(result);
    }
コード例 #25
0
        public void TestCastWithClass()
        {
            var dict = new Dictionary <string, object>(HomogenizedEqualityComparer.DefaultInstance)
            {
                { "Name", "Bob" }
            };
            dynamic           test = new SimpleResultSet(new[] { new SimpleRecord(dict) });
            IEnumerable <Foo> foos = test.Cast <Foo>();

            Assert.AreEqual(1, foos.Count());
        }
コード例 #26
0
        public void TestCastWithForeach()
        {
            var dict = new Dictionary <string, object>(HomogenizedEqualityComparer.DefaultInstance)
            {
                { "Name", "Bob" }
            };
            dynamic test = new SimpleResultSet(new[] { new SimpleRecord(dict) });

            foreach (Foo foo in test)
            {
                Assert.AreEqual("Bob", foo.Name);
            }
        }
コード例 #27
0
        public async Task <Boolean> ExecuteGetJobCompletionCheckWithSimpleReturn(String jobId)
        {
            SimpleResultSet retval = await this.ExecuteGetJobCompletionCheck(jobId);

            String val = retval.GetResult("completed");

            if (val.ToLower().Equals("true"))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #28
0
        public void CastToGenericCreatesTypedListWithSubTypes()
        {
            var firstRecord = new SimpleRecord(new Dictionary <string, object>
            {
                { "Data", "First" },
                { "List", new List <string> {
                      "First-One", "First-Two"
                  } }
            });

            var list = new SimpleResultSet(new List <dynamic> {
                firstRecord
            });

            var result = list.Cast <TestType2>().First();

            Assert.AreEqual(2, result.List.Count);
        }
コード例 #29
0
        public async Task <SimpleResultSet> ExecuteGetJobStatus(String jobId)
        {
            SimpleResultSet retval = null;

            conf.SetServiceEndpoint(mappingPrefix + jobStatusEndpoint);
            this.parameterJson.Add("jobID", JsonValue.CreateStringValue(jobId));
            try
            {
                JsonObject kObj = (JsonObject)(await this.Execute());
                retval = SimpleResultSet.FromJson(kObj);
                retval.ThrowExceptionIfUnsuccessful();
            }
            finally
            {
                conf.SetServiceEndpoint(null);
                this.parameterJson.Remove("jobID");
            }

            return(retval);
        }
コード例 #30
0
 public void FirstOrDefaultWithFailingCriteriaReturnsNull()
 {
     var list = new SimpleResultSet(Records(20));
     Assert.IsNull(list.FirstOrDefault<TestType>(t => t.Data.EndsWith("A")));
 }
コード例 #31
0
        public void LastReturnsLastElement()
        {
            var list = new SimpleResultSet(Records(10));

            Assert.AreEqual("9", list.Last().Data);
        }
コード例 #32
0
        public void ToGenericListCreatesTypedList()
        {
            dynamic list = new SimpleResultSet(Records(1));
            List<TestType> converted = list.ToList<TestType>();

            Assert.IsNotNull(converted);
            Assert.AreEqual(1, converted.Count);
            Assert.AreEqual("0", converted[0].Data);
        }
コード例 #33
0
 public void FirstWithFailingCriteriaThrows()
 {
     var list = new SimpleResultSet(Records(20));
     Assert.Throws<InvalidOperationException>(() => list.First<TestType>(t => t.Data.EndsWith("A")));
 }
コード例 #34
0
 public void ConvertsToHashSet()
 {
     dynamic list = new SimpleResultSet(Records(1));
     HashSet<dynamic> generic = list;
     Assert.IsNotNull(generic);
     Assert.AreEqual("0", generic.Single().Data);
 } 
コード例 #35
0
        public void ToGenericArrayCreatesTypedArray()
        {
            dynamic list = new SimpleResultSet(Records(1));
            TestType[] array = list.ToArray<TestType>();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Length);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #36
0
 public void SingleThrowsOnListWithMoreThanOneElement()
 {
     var list = new SimpleResultSet(Records(2));
     Assert.Throws<InvalidOperationException>(() => list.Single());
 }
コード例 #37
0
 public void ConvertsToGenericList()
 {
     dynamic list = new SimpleResultSet(Records(1));
     List<dynamic> generic = list;
     Assert.IsNotNull(generic);
     Assert.AreEqual("0", generic[0].Data);
 }
コード例 #38
0
 public void LastOrDefaultReturnsLastElement()
 {
     var list = new SimpleResultSet(Records(10));
     Assert.AreEqual("9", list.LastOrDefault().Data);
 }
コード例 #39
0
        public void FirstOrDefaultReturnsNullOnEmptyList()
        {
            var list = new SimpleResultSet(Records(0));

            Assert.IsNull(list.FirstOrDefault());
        }
コード例 #40
0
        public void FirstWithFailingCriteriaThrows()
        {
            var list = new SimpleResultSet(Records(20));

            Assert.Throws <InvalidOperationException>(() => list.First <TestType>(t => t.Data.EndsWith("A")));
        }
コード例 #41
0
        public void FirstOrDefaultWithCriteriaReturnsMatch()
        {
            var list = new SimpleResultSet(Records(20));

            Assert.AreEqual("8", list.FirstOrDefault <TestType>(t => t.Data.EndsWith("8")).Data);
        }
コード例 #42
0
        public void FirstOrDefaultWithFailingCriteriaReturnsNull()
        {
            var list = new SimpleResultSet(Records(20));

            Assert.IsNull(list.FirstOrDefault <TestType>(t => t.Data.EndsWith("A")));
        }
コード例 #43
0
 public void GenericSingleOrDefaultReturnsNullOnEmptyList()
 {
     var list = new SimpleResultSet(Records(0));
     Assert.IsNull(list.SingleOrDefault<TestType>());
 }
コード例 #44
0
 public void SingleWithCriteriaMatchingOneRecordReturnsMatch()
 {
     var list = new SimpleResultSet(Records(10));
     Assert.AreEqual("8", list.Single<TestType>(t => t.Data.EndsWith("8")).Data);
 }
コード例 #45
0
 public void GenericSingleOrDefaultThrowsOnListWithMoreThanOneElement()
 {
     var list = new SimpleResultSet(Records(2));
     Assert.Throws<InvalidOperationException>(() => list.SingleOrDefault<TestType>());
 }
コード例 #46
0
 public void FirstReturnsFirstElement()
 {
     var list = new SimpleResultSet(Records(10));
     Assert.AreEqual("0", list.First().Data);
 }
コード例 #47
0
 public void ConvertsToNonGenericList()
 {
     dynamic list = new SimpleResultSet(Records(1));
     ArrayList generic = list;
     Assert.IsNotNull(generic);
     Assert.AreEqual("0", ((dynamic)generic[0]).Data);
 }
コード例 #48
0
 public void SingleOrDefaultWithCriteriaMatchingMultipleRecordsThrows()
 {
     var list = new SimpleResultSet(Records(20));
     Assert.Throws<InvalidOperationException>(() => list.SingleOrDefault<TestType>(t => t.Data.EndsWith("8")));
 }
コード例 #49
0
        public void ToArrayCreatesArray()
        {
            dynamic list = new SimpleResultSet(Records(1));
            dynamic[] array = list.ToArray();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Length);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #50
0
 public void GenericFirstOrDefaultReturnsFirstElement()
 {
     var list = new SimpleResultSet(Records(10));
     Assert.AreEqual("0", list.FirstOrDefault<TestType>().Data);
 }
コード例 #51
0
        public void ToListCreatesList()
        {
            dynamic list = new SimpleResultSet(Records(1));
            List<dynamic> array = list.ToList();

            Assert.IsNotNull(array);
            Assert.AreEqual(1, array.Count);
            Assert.AreEqual("0", array[0].Data);
        }
コード例 #52
0
 public void GenericLastReturnsLastElement()
 {
     var list = new SimpleResultSet(Records(10));
     Assert.AreEqual("9", list.Last<TestType>().Data);
 }
コード例 #53
0
        public void CastToGenericCreatesTypedList()
        {
            dynamic list = new SimpleResultSet(Records(1));
            IEnumerable<TestType> converted = list.Cast<TestType>();

            Assert.IsNotNull(converted);
            Assert.AreEqual(1, converted.Count());
            Assert.AreEqual("0", converted.First().Data);
        }
コード例 #54
0
 public void GenericSingleThrowsOnEmptyList()
 {
     var list = new SimpleResultSet(Records(0));
     Assert.Throws<InvalidOperationException>(() => list.Single<TestType>());
 }
コード例 #55
0
 public void FirstOrDefaultWithCriteriaReturnsMatch()
 {
     var list = new SimpleResultSet(Records(20));
     Assert.AreEqual("8", list.FirstOrDefault<TestType>(t => t.Data.EndsWith("8")).Data);
 }
コード例 #56
0
 public void GenericSingleOrDefaultReturnsSingleElement()
 {
     var list = new SimpleResultSet(Records(1));
     Assert.AreEqual("0", list.SingleOrDefault<TestType>().Data);
 }
コード例 #57
0
 public void LastThrowsOnEmptyList()
 {
     var list = new SimpleResultSet(Records(0));
     Assert.Throws<InvalidOperationException>(() => list.Last());
 }
コード例 #58
0
        public void LastThrowsOnEmptyList()
        {
            var list = new SimpleResultSet(Records(0));

            Assert.Throws <InvalidOperationException>(() => list.Last());
        }
コード例 #59
0
 public void LastOrDefaultReturnsNullOnEmptyList()
 {
     var list = new SimpleResultSet(Records(0));
     Assert.IsNull(list.LastOrDefault());
 }
コード例 #60
0
 public void SingleReturnsSingleElement()
 {
     var list = new SimpleResultSet(Records(1));
     Assert.AreEqual("0", list.Single().Data);
 }