Esempio n. 1
0
            public static void Override(ISerializeArray Data, ISerializeArray On)
            {
                var it = Data.GetEnumerator();

                while (it.MoveNext())
                {
                    object value = it.Current;

                    if (value is ISerializeObject)
                    {
                        Override((ISerializeObject)value, On.AddObject());
                    }
                    else if (value is ISerializeArray)
                    {
                        Override((ISerializeArray)value, On.AddArray());
                    }
                    else
                    {
                        if (On.Contains(value))
                        {
                            continue;
                        }

                        On.Add(value);
                    }
                }
            }
Esempio n. 2
0
        protected ISerializeArray BuildISerializeData(DataTable Table)
        {
            if (Table == null || Table.Rows.Count == 0)
            {
                return(null);
            }

            ISerializeArray arr = Creator.Create <ISerializeArray>();

            for (int i = 0; i < Table.Rows.Count; ++i)
            {
                DataRow row = Table.Rows[i];

                ISerializeObject obj = arr.AddObject();

                for (int j = 0; j < Table.Columns.Count; ++j)
                {
                    string colName = Table.Columns[j].ColumnName;

                    object value = row[colName];

                    if (value == DBNull.Value)
                    {
                        value = null;
                    }

                    obj.Set(colName, value);
                }
            }

            return(arr);
        }
Esempio n. 3
0
            private static object Bind(ISerializeArray Array, Type Type)
            {
                Array arr = null;

                Type elementType = Type.GetElementType();

                if (Type.Name.Contains(","))                 // Multidimension
                {
                    List <object>  dimensions = new List <object>();
                    ISerializeData data       = Array;
                    while (true)
                    {
                        ISerializeArray arrTemp = (ISerializeArray)data;

                        dimensions.Add((int)arrTemp.Count);

                        if (arrTemp.Count == 0)
                        {
                            break;
                        }

                        data = arrTemp.Get <ISerializeArray>(0);
                        if (data == null)
                        {
                            break;
                        }

                        if (!(data is ISerializeArray))
                        {
                            break;
                        }
                    }

                    arr = (Array)Activator.CreateInstance(Type, dimensions.ToArray());

                    int[] indices = new int[dimensions.Count];

                    Bind(Array, elementType, arr, indices, 0);
                }
                else                 // Jagged
                {
                    arr = (Array)Activator.CreateInstance(Type, (int)Array.Count);

                    for (uint i = 0; i < Array.Count; ++i)
                    {
                        arr.SetValue(Cast(Array.Get <object>(i), elementType), i);
                    }
                }

                return(arr);
            }
Esempio n. 4
0
        public void Send(string Title, string Message, params string[] PlayerID)
        {
            if (PlayerID == null || PlayerID.Length == 0)
            {
                Send(Title, Message, new Segments[] { Segments.All });
                return;
            }

            ISerializeObject messageObj = BuildMessage(Title, Message);

            ISerializeObject filter = messageObj.AddObject("filter");

            ISerializeArray pushe_id = filter.AddArray("pushe_id");

            pushe_id.AddRange(PlayerID);

            SendMessage(messageObj);
        }
Esempio n. 5
0
        private ISerializeObject BuildMessage(string Title, string Message)
        {
            ISerializeObject messageObj = Creator.Create <ISerializeObject>();

            ISerializeArray applications = messageObj.AddArray("applications");

            applications.Add(packageName);

            ISerializeObject notification = messageObj.AddObject("notification");

            notification["content"] = Message;

            if (!string.IsNullOrEmpty(Title))
            {
                notification["title"] = Title;
            }

            return(messageObj);
        }
Esempio n. 6
0
            private static void Bind(ISerializeArray Array, Type Type, Array Object, int[] Indices, int DimensionIndex)
            {
                for (uint i = 0; i < Array.Count; ++i)
                {
                    if (DimensionIndex < Indices.Length - 1)
                    {
                        if (DimensionIndex < Indices.Length - 1)
                        {
                            Indices.Set(0, (uint)DimensionIndex + 1, (uint)(Indices.Length - (DimensionIndex + 1)));
                        }

                        Bind(Array.Get <ISerializeArray>(i), Type, Object, Indices, DimensionIndex + 1);
                    }
                    else
                    {
                        Object.SetValue(Cast(Array.Get <object>(i), Type), Indices);
                    }

                    ++Indices[DimensionIndex];
                }
            }
Esempio n. 7
0
            private static ISerializeArray SerializeArray(object Instance)
            {
                object[] array = ((Array)Instance).ToJaggedArray();

                ISerializeArray arr = Creator.Create <ISerializeArray>();

                for (int i = 0; i < array.Length; ++i)
                {
                    object value = array[i];

                    if (value == null)
                    {
                        arr.Add((object)null);
                    }
                    else
                    {
                        Type valueType = value.GetType();

                        if (valueType.IsArray)
                        {
                            arr.Add(SerializeArray(value));
                        }
                        else if (valueType.IsPrimitive || valueType == typeof(string))
                        {
                            arr.Add(value);
                        }
                        else if (valueType.IsEnum)
                        {
                            arr.Add(value.ToString());
                        }
                        else
                        {
                            arr.Add(SerializeObject(value));
                        }
                    }
                }

                return(arr);
            }