/// <summary> /// Creates a new DynamicData instance /// where each element is named as the value of the first column of the row /// and the value of that element is another DynamicData instance /// populated with name/value pairs corresponding to the columns of the row. /// This is useful for summary data needed for a dashboard report. /// Note that the first column data should be unique to avoid overwriting previous rows. /// The number of rows is limited to 100 to avoid slurping into memory an entire table of People for example. /// </summary> public DynamicData SqlFirstColumnRowKey(string sql, object declarations) { var cn = GetReadonlyConnection(); var parameters = new DynamicParameters(); if (declarations != null) { AddParameters(declarations, parameters); } var ret = new DynamicData(); using (var rd = cn.ExecuteReader(sql, parameters)) { var maxn = 100; while (rd.Read()) { var dd = new DynamicData(); for (var i = 0; i < rd.FieldCount; i++) { dd.AddValue(rd.GetName(i), rd.GetValue(i)); } ret.AddValue(rd.GetString(0), dd); maxn--; if (maxn == 0) { break; } } } return(ret); }
public PythonModel(CMSDataContext dbContext, Dictionary <string, object> dict) { db = dbContext.Copy(); dictionary = dict; Data = new DynamicData(dictionary); FromMorningBatch = db.FromBatch; }
private static void EqualJson(DynamicData expected, DynamicData actual) { var lhs = JsonConvert.SerializeObject(expected, Formatting.Indented); var rhs = JsonConvert.SerializeObject(actual, Formatting.Indented); Assert.Equal(lhs, rhs); }
public void should_execute_json_workflow_with_dynamic_data() { var initialData = new DynamicData { ["Flag1"] = true, ["Flag2"] = true, ["Counter1"] = 0, ["Counter2"] = 0, ["Counter3"] = 0, ["Counter4"] = 0, ["Counter5"] = 0, ["Counter6"] = 0 }; var workflowId = StartWorkflow(TestAssets.Utils.GetTestDefinitionDynamicJson(), initialData); WaitForWorkflowToComplete(workflowId, TimeSpan.FromSeconds(30)); var data = GetData <DynamicData>(workflowId); GetStatus(workflowId).Should().Be(WorkflowStatus.Complete); UnhandledStepErrors.Count.Should().Be(0); data["Counter1"].Should().Be(1); data["Counter2"].Should().Be(1); data["Counter3"].Should().Be(1); data["Counter4"].Should().Be(1); data["Counter5"].Should().Be(0); data["Counter6"].Should().Be(1); }
public DynamicData GetData([FromBody] DynamicData personRequest) { var personResponse = new DynamicData(); personResponse.Payload.Add("Property", "val"); return(personResponse); }
public override void FillInsertData(DomainObject obj, DynamicData data) { var menu = (Menu)obj; data.Set(_left.Name, 1); data.Set(_right.Name, 2); }
private static async Task <string> GetAnyGridFromSqlQuery(string query) { string json = string.Empty; var dd = new DynamicData(); var rows = new List <AnyModel>(); //Send Query To Database using (var conn = new MySql.Data.MySqlClient.MySqlConnection(DbHelper.Conn())) { await conn.OpenAsync(); rows = (await conn.QueryAsync <AnyModel>(query)).ToList(); int count = 0; dd.COLUMNS.Add(new Column("Id")); dd.COLUMNS.Add(new Column("Title")); dd.COLUMNS.Add(new Column("City")); dd.COLUMNS.Add(new Column("Singer")); dd.COLUMNS.Add(new Column("Nationality")); dd.COLUMNS.Add(new Column("Year")); foreach (var v in rows) { var d = new List <string>(); d.Add(v.Id.ToString()); d.Add(v.Title); d.Add(v.City); d.Add(v.Singer); d.Add(v.Nationality); d.Add(v.Year.ToString()); dd.DATA.Add(d); count++; } json = JsonConvert.SerializeObject(dd); } return(json); }
public void DynamicTypeSystemDemo() { DynamicData twin = JsonData.Create(s_demo_payload); string original = twin.ToString(); Assert.IsTrue(ReferenceEquals(s_demo_payload, original)); Assert.AreEqual(123, twin["CreatedAt"]); Assert.AreEqual(72, twin["Temperature"]); Assert.AreEqual("F", twin["Unit"]); int numberOfProperties = 0; foreach (string property in twin.PropertyNames) { numberOfProperties++; } Assert.AreEqual(5, numberOfProperties); dynamic dynamicTwin = twin; Assert.AreEqual(72, dynamicTwin.Temperature); Assert.AreEqual("F", dynamicTwin.Unit); Assert.AreEqual("ID0001", dynamicTwin.Id); }
/// <summary> /// 创建对象 /// </summary> /// <param name="objectType"></param> /// <param name="data"></param> /// <returns></returns> private DomainObject CreateObject(Type objectType, DynamicData data, QueryLevel level) { DomainObject obj = null; if (this.IsDynamic) { if (data.IsEmpty()) { obj = (DomainObject)DomainObject.GetEmpty(this.ObjectType); } else { obj = CreateObjectImpl(this.DynamicType, this.DynamicType.ObjectType, data, level); } } else { if (data.IsEmpty()) { obj = (DomainObject)DomainObject.GetEmpty(objectType); } else { obj = CreateObjectImpl(objectType, objectType, data, level); } } return(obj); }
public static void RecordHighScore() { int score = 0; int numPlayers = 0; for (int i = 0; i < DynamicData.MAX_PLAYERS; ++i) { SessionPlayer p = DynamicData.GetSessionPlayer(i); if (p.HasJoined) { ++numPlayers; score += ProgressData.GetPointsForPlayer(i); } } numPlayers = Mathf.Max(ProgressData.MostPlayersUsed, numPlayers); if (numPlayers > 1) { if (score > _highScoreCoop) { _highScoreCoop = score; } } else { if (score > _highScoreSinglePlayer) { _highScoreSinglePlayer = score; } } }
/// <summary> /// 该方法用于保存数据后,更新基表的信息 /// </summary> /// <param name="root"></param> /// <param name="obj"></param> private void OnDataInsert(DomainObject root, DomainObject obj, DynamicData objData) { SetDataProxy(obj, objData);//对于保存的对象,我们依然要同步数据代理 obj.MarkClean(); if (this.Type == DataTableType.AggregateRoot) { var ar = (IAggregateRoot)obj; DomainBuffer.Add(this.ObjectTip.ObjectType, ar.GetIdentity(), ar); } if (this.IsDerived || this.IsDynamic) { //如果是派生对象或者动态对象,那么我们需要更新基表信息 var inheritedRoot = this.InheritedRoot; using (var temp = SqlHelper.BorrowData()) { var data = temp.Item; if (this.Type != DataTableType.AggregateRoot) { data.Add(this.Root.TableIdName, GetObjectId(root)); } data.Add(EntityObject.IdPropertyName, GetObjectId(obj)); //修改类型码 var typeKey = this.IsDerived ? this.DerivedClass.TypeKey : this.DynamicType.Define.TypeName; data.Add(GeneratedField.TypeKeyName, typeKey); //更改基表的信息 var sql = inheritedRoot.GetUpdateSql(data); SqlHelper.Execute(inheritedRoot.Name, sql, data); } } }
/// <inheritdoc/> protected override void OnResultExecuted(ResultExecutedContext filterContext) { base.OnResultExecuted(filterContext); if (DynamicData != null) { DynamicData.Dispose(); DynamicData = null; } /* * if (!ViewData.ModelState.IsValid) * { * //workaround asp.net modelstate bug * foreach (var key in ViewData.ModelState.Keys) * { * if (ViewData.ModelState[key].Errors != null) * { * for (int i = ViewData.ModelState[key].Errors.Count - 1; i > 0;i-- ; ) * { * var error = ViewData.ModelState[key].Errors[i]; * if (String.IsNullOrEmpty(error.ErrorMessage) && error.Exception != null) * { * error.ErrorMessage = error.Exception.Message; * } * } * } * } * }*/ }
public void Setup() { var properties = new Dictionary <string, object>(StringComparer.Ordinal); dictionary = properties; jsonData = JsonData.Create(s_demo_payload); dynamicJsonData = jsonData; data = new DynamicData(); dynamicData = data; foreach (var property in jsonData.PropertyNames) { properties.Add(property, jsonData[property]); data[property] = jsonData[property]; } searchDocument = new SearchDocument(properties); dynamicSearchDocument = searchDocument; staticObject = (Payload)dynamicJsonData; dynamicObject = staticObject; handcraftedHash = new DynamicData(new PerfectStore(properties)); dynamicHandcraftedHash = handcraftedHash; perfectHash = new DynamicData(PerfectHashStore.Create(properties)); dynamicPerfectHash = perfectHash; }
public static void CompleteTile(IntegerVector tile) { if (!_completedTiles.Contains(tile)) { _completedTiles.Add(tile); PersistentData.RegisterLevelBeaten(DynamicData.NumJoinedPlayers()); if (IsCornerBoss(tile)) { PersistentData.RegisterBossBeaten(); if (NumBossesBeaten() == 4) { PersistentData.Register4CornerBossesBeaten(); } } if (_completedTiles.Count == 44) { PersistentData.RegisterClearedMap(); } } _mostRecentTile = tile; if (_minibossTiles != null) { if (_minibossTiles.Contains(tile)) { _minibossTiles.Remove(tile); } moveMiniBosses(); } _mostPlayersUsed = DynamicData.NumJoinedPlayers(); }
public CellData(int index, DynamicData itemData, Sprite defaultIcon, CellType cellType) { this.index = index; this.itemData = itemData; this.defaultIcon = defaultIcon; this.cellType = cellType; }
/// <summary> /// /// </summary> /// <param name="defineType">如果是动态领域对象,那么该类型为定义领域属性的类型(也就是定义类型),否则是对象的实际类型</param> /// <param name="objectType">实际存在内存中的实际类型</param> /// <param name="data"></param> /// <returns></returns> private DomainObject CreateObjectImpl(Type defineType, Type objectType, DynamicData data, QueryLevel level) { DomainObject obj = null; if (this.IsDynamic) { //构造对象 obj = ConstructDynamicObject(objectType, this.DynamicType.Define); } else { //构造对象 obj = ConstructObject(objectType, data, level); } //为了避免死循环,我们先将对象加入到构造上下文中 AddToConstructContext(obj, data); //加载属性 LoadProperties(defineType, data, obj, level); RemoveFromConstructContext(obj); //补充信息 Supplement(obj, data, level); return(obj); }
public void ClearCell() { itemData = null; stackAmount = 1; dataUpdate(); }
/// <summary> /// 创建对象 /// </summary> /// <param name="objectType"></param> /// <param name="data"></param> /// <returns></returns> private DomainObject CreateObject(Type objectType, DynamicData data) { DomainObject obj = null; if (this.IsDynamic) { if (data.IsEmpty()) { obj = (DomainObject)DomainObject.GetEmpty(this.ObjectType); } else { obj = CreateObjectImpl(this.DynamicType, this.DynamicType.ObjectType, data); (obj as IDynamicObject).Define = this.DynamicType.Define; } } else { if (data.IsEmpty()) { obj = (DomainObject)DomainObject.GetEmpty(objectType); } else { obj = CreateObjectImpl(objectType, objectType, data); } } return(obj); }
public object GetExamples() { var ret = new DynamicData(); ret.Payload.Add("DynamicProp", 1); return(ret); }
private object ReadMemberByLazy(PropertyRepositoryAttribute tip, DynamicData data) { var child = GetChildTableByRuntime(this, tip); var dataKey = _getIdName(tip.PropertyName); object id = null; if (data.TryGetValue(dataKey, out id)) { object rootId = null; var rootIdName = this.Type == DataTableType.AggregateRoot ? EntityObject.IdPropertyName : this.Root.TableIdName; if (data.TryGetValue(rootIdName, out rootId)) { var member = child.QuerySingle(rootId, id); if (tip.DomainPropertyType == DomainPropertyType.AggregateRoot) { //尝试加载快照 if (member.IsNull()) { return(ReadSnapshot(tip, id)); } } return(member); } } return(null); }
private DynamicData DynamicDataFromJson(object json, DynamicData metadata = null) { var dd = DynamicDataFromJson(json.ToString()); if (metadata == null) { return(dd); } foreach (var k in dd.Keys()) { var meta = (metadata[k])?.ToString(); if (meta == null) { continue; } var val = dd[k]; switch (meta) { case "money": dd.AddValue(k, val.ToNullableDecimal()); break; case "int": dd.AddValue(k, val.ToInt2()); break; } } return(dd); }
protected void Start() { texture.Initialize(); float feedKillRadius = .005f; float abRatesRadius = .00001f; if (randomizer == null) { randomizer = ScriptableObject.CreateInstance <RDPresetRandomizer> (); //randomizer.InitAroundBase ( Parameters, regionRadius ); randomizer.InitAroundBase(Parameters, new PV[] { new PV("convCell", 0f), new PV("convAdj", 0f), new PV("convDiag", 0f), new PV("feedRate", feedKillRadius), new PV("killRate", feedKillRadius), new PV("aRate", abRatesRadius), new PV("bRate", abRatesRadius), new PV("deltaTime", 0f) }); } feedKillData = new DynamicData(string.Format("regionRadius={0},regionRadiusBackup={0}!", feedKillRadius)); ABRatesData = new DynamicData(string.Format("regionRadius={0},regionRadiusBackup={0}!", feedKillRadius)); m_RegionBackup = Parameters.Copy(); }
public static string CreateCommand(string signature, string input, IKeySym privateKey) { IParser <ParamArgs> parser = new CommandParser(); ParamArgs output = parser.Parse(input); if (output.Count == 0) { throw new OperationCanceledException("Could not parse command."); } Header header = new Header(signature, "", output.Get <string>("Command")); string jsonHeader = Newtonsoft.Json.JsonConvert.SerializeObject(header); DynamicData detail = new DynamicData(); foreach (string key in output.ToDictionary().Keys) { if (!key.Equals("Command")) { detail.Add(key, output.Get <object>(key)); } } string jsonDetail = Newtonsoft.Json.JsonConvert.SerializeObject(detail.GetDictionary()); Crypter crypter = new Crypter(privateKey); string final = string.Format(Format, jsonHeader, jsonDetail); return(crypter.Encrypt(final)); }
public string BuildFormRows(DynamicData dd, DynamicData metadata = null) { var sb = new StringBuilder(); if (metadata != null) { foreach (var k in metadata.dict) { var hidden = k.Value.ToString().StartsWith("hidden "); var readOnly = k.Value.ToString().StartsWith("readonly ") ? "readonly" : ""; var textArea = k.Value.ToString().Contains("textarea"); var c = CreateControl(k.Key, dd[k.Key], hidden, readOnly, textArea); if (c == null) { continue; } sb.Append(c); } } else { foreach (var k in dd.dict) { var c = CreateControl(k.Key, k.Value); if (c == null) { continue; } sb.Append(c); } } return(sb.ToString()); }
public DynamicData GenerateTestData() { var data = new DynamicData(); foreach (var field in schema.Fields) { var fieldData = new JObject(); if (field.Partitioning == "invariant") { var value = GenerateValue(field); fieldData["iv"] = value; } else { foreach (var language in languages.Items) { var value = GenerateValue(field); fieldData[language.Iso2Code] = value; } } data.Add(field.Name, fieldData); } return(data); }
public string BuildDisplay(string name, DynamicData dd, string edit = "", string add = "", DynamicData metadata = null) { var displaytemplate = @" <div class='report box box-responsive'> <div class='box-content'> <div class='table-responsive'> <h4>{0}</h4> <table class='table notwide'> <thead> <tr><th>Name</th><th>Value</th></tr> </thead> <tbody> {1} </tbody> </table> {2} </div> </div> </div> "; if (dd == null) { return(string.Format(displaytemplate, name.SpaceCamelCase(), add, null)); } var s = BuildDisplayRows(dd, metadata); return(string.Format(displaytemplate, name.SpaceCamelCase(), s, edit)); }
public void Should_read_without_mapping() { var sut = new Json2SquidexConverter(); var actual = sut.ReadAll(jsonReader).First(); var expected = new DynamicData { ["text"] = new JObject { ["iv"] = "Hello World" }, ["boolean"] = new JObject { ["iv"] = true }, ["number"] = new JObject { ["iv"] = 1234 }, ["array"] = new JObject { ["iv"] = new JArray("Squidex", "CLI") }, ["obj"] = new JObject(new JProperty("Squidex", "CLI")) }; EqualJson(expected, actual); }
/// <summary> /// 从条目数据中获取对象 /// <para>如果加载的对象是聚合根,那么如果存在缓冲区中,那么使用缓冲区的对象,如果不存在,则在数据库中查询并更新缓冲区</para> /// <para>如果加载的是成员对象,那么始终从数据库中查询</para> /// <para>不论是什么类型的对象都可以识别继承类型</para> /// </summary> /// <returns></returns> private object GetObjectFromEntry(DynamicData entry, QueryLevel level) { if (this.Type == DataTableType.AggregateRoot) { object id = entry.Get(EntityObject.IdPropertyName); int dataVersion = (int)entry.Get(GeneratedField.DataVersionName); string typeKey = (string)entry.Get(GeneratedField.TypeKeyName); var table = string.IsNullOrEmpty(typeKey) ? this : GetDataTable(typeKey); if (level.Code == QueryLevel.MirroringCode) { //镜像查询会绕过缓冲区 return(table.LoadObject(id, QueryLevel.None)); } return(DomainBuffer.GetOrCreate(table.ObjectTip.ObjectType, id, dataVersion, () => { return (IAggregateRoot)table.LoadObject(id, QueryLevel.None); //由于查询条目的时候已经锁了数据,所以此处不用再锁定 })); } else { object rootId = entry.Get(this.Root.TableIdName); object id = entry.Get(EntityObject.IdPropertyName); int dataVersion = (int)entry.Get(GeneratedField.DataVersionName); string typeKey = (string)entry.Get(GeneratedField.TypeKeyName); var table = string.IsNullOrEmpty(typeKey) ? this : GetDataTable(typeKey); //非聚合根是不能被加入到缓冲区的 return(table.LoadObject(rootId, id)); } }
private static void SetValue(DynamicData data, JToken value, JsonPath path) { if (!data.TryGetValue(path[0].Key, out var property)) { property = new JObject(); data[path[0].Key] = property; } object container = property; for (var i = 1; i < path.Count; i++) { var(key, index) = path[i]; if (i == path.Count - 1) { AddElement(container, key, index, value, false); } else { var(_, next) = path[i + 1]; if (next >= 0) { container = AddElement(container, key, index, new JArray(), true); } else { container = AddElement(container, key, index, new JObject(), true); } } } }
void Update() { if (this.AllowReassignment && !PauseController.IsPaused()) { for (int i = 0; i < DynamicData.MAX_PLAYERS; ++i) { SessionPlayer p = DynamicData.GetSessionPlayer(i); if (!p.HasJoined) { // Assignment foreach (Player rewiredPlayer in ReInput.players.Players) { if (!rewiredPlayer.isPlaying && rewiredPlayer.GetButtonDown(JOIN_ACTION)) { joinPlayer(p, rewiredPlayer); break; } } } else { // Unassignment if (ReInput.players.GetPlayer(p.RewiredId).GetButtonDown(MenuInput.EXIT)) { //TODO - Should be checking if button held rather than just pressed dropPlayer(p); } } } } }