Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        public DynamicData GetData([FromBody] DynamicData personRequest)
        {
            var personResponse = new DynamicData();

            personResponse.Payload.Add("Property", "val");
            return(personResponse);
        }
Exemplo n.º 6
0
        public override void FillInsertData(DomainObject obj, DynamicData data)
        {
            var menu = (Menu)obj;

            data.Set(_left.Name, 1);
            data.Set(_right.Name, 2);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
    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;
            }
        }
    }
Exemplo n.º 11
0
        /// <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);
                }
            }
        }
Exemplo n.º 12
0
        /// <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;
             *              }
             *          }
             *      }
             *  }
             * }*/
        }
Exemplo n.º 13
0
    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;
    }
Exemplo n.º 14
0
    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();
    }
Exemplo n.º 15
0
 public CellData(int index, DynamicData itemData, Sprite defaultIcon, CellType cellType)
 {
     this.index       = index;
     this.itemData    = itemData;
     this.defaultIcon = defaultIcon;
     this.cellType    = cellType;
 }
Exemplo n.º 16
0
        /// <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);
        }
Exemplo n.º 17
0
    public void ClearCell()
    {
        itemData    = null;
        stackAmount = 1;

        dataUpdate();
    }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
    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();
    }
Exemplo n.º 23
0
        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));
        }
Exemplo n.º 24
0
        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());
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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));
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        /// <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));
            }
        }
Exemplo n.º 29
0
        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);
                    }
                }
            }
        }
Exemplo n.º 30
0
 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);
                 }
             }
         }
     }
 }