示例#1
0
        }                                               //是否是结构体
        public GenerateScorpioClass(Type type)
        {
            m_Type           = type;
            IsStruct         = !type.IsClass;
            FullName         = ScorpioReflectUtil.GetFullName(m_Type);
            ScorpioClassName = "ScorpioClass_" + ScorpioReflectUtil.GetGenerateClassName(type);
            AllFields.AddRange(m_Type.GetFields(ScorpioReflectUtil.BindingFlag));
            AllEvents.AddRange(m_Type.GetEvents(ScorpioReflectUtil.BindingFlag));
            var propertys = m_Type.GetProperties(ScorpioReflectUtil.BindingFlag);

            foreach (var property in propertys)
            {
                //如果是 get 则参数是0个  set 参数是1个  否则就可能是 [] 的重载
                if ((property.CanRead && property.GetGetMethod().GetParameters().Length == 0) ||
                    (property.CanWrite && property.GetSetMethod().GetParameters().Length == 1))
                {
                    AllPropertys.Add(property);
                }
            }
            var methods = (m_Type.IsAbstract && m_Type.IsSealed) ? m_Type.GetMethods(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy) : m_Type.GetMethods(ScorpioReflectUtil.BindingFlag);

            foreach (var method in methods)
            {
                //屏蔽掉 模版函数 模板函数只能使用反射
                if (!ScorpioReflectUtil.CheckGenericMethod(method))
                {
                    continue;
                }
                AllMethods.Add(method);
            }
        }
示例#2
0
            /// <summary>
            /// 初始化参数
            /// </summary>
            private void init()
            {
                //FieldName convert to lower case
                DateTimeFields.ForEach(p => p = p.ToLower());
                DoubleFields.ForEach(p => p   = p.ToLower());
                AllFields.ForEach(p => p      = p.ToLower());


                if (AllFields.Count == 0)
                {
                    AllFields = this.GetDefaultFields();
                }

                //自动识别
                if (TypeDetectable)
                {
                    foreach (String field in AllFields)
                    {
                        Type type = dt.Columns[field].DataType;
                        if (typeof(DateTime) == type)
                        {
                            DateTimeFields.Add(field);
                        }
                        else if (NPOIUtil.NumberType(type))
                        {
                            DoubleFields.Add(field);
                        }
                    }
                }
            }
        /// <summary>
        /// Tries to find a disassembled entity, given a disassembled target.
        /// </summary>
        /// <param name="disassemblyTarget">The disassembly target.</param>
        /// <returns></returns>
        public DisassembledEntity FindDisassembledEntity(DisassemblyTarget disassemblyTarget)
        {
            //  If there's no target, we can't find anything.
            if (disassemblyTarget == null)
            {
                return(null);
            }

            switch (disassemblyTarget.TargetType)
            {
            case DisassemblyTargetType.Class:

                //  Find the class with the given name.
                return(AllClasses.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Enumeration:

                //  Find the enumeration with the given name.
                return(AllEnumerations.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Method:

                //  Find the entity with the given name.
                return(AllMethods.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Property:

                //  Find the entity with the given name.
                return(AllProperties.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Field:

                //  Find the entity with the given name.
                return(AllFields.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Structure:

                //  Find the structure with the given name.
                return(AllStructures.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Interface:

                //  Find the structure with the given name.
                return(AllInterfaces.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Event:

                //  Find the structure with the given name.
                return(AllEvents.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Delegate:

                //  Find the structure with the given name.
                return(AllDelegates.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));


            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            var objGoodType = obj as ItemComparable;

            if ((Object)objGoodType == null)
            {
                return(false);
            }

            if (this.AllFields.Count != objGoodType.AllFields.Count)
            {
                return(false);
            }

            var equals = true;

            AllFields.ToList().ForEach(x =>
            {
                if (!objGoodType.AllFields.ContainsKey(x.Key) ||
                    objGoodType.AllFields[x.Key] != x.Value)
                {
                    equals = false;
                }
            });

            return(equals);
        }
 public void CalculateAll()
 {
     AllFields.Clear();
     SetSimpleCounts();
     CountIntertwined();
     IsCalculated = true;
 }
 /// <summary>
 /// Get all items from playlist
 /// </summary>
 public async Task<IMediaItemList<MediaDetailsBase>> GetItems(Playlist playlist, AllFields fields, int? startIndex, int? endIndex)
 {
     List<JsonParam> parameters = new List<JsonParam>();
     parameters.Add(new JsonParam("playlistid", playlist.Id));
     parameters.AddRange(ClientUtils.GetLimitsParameter(startIndex, endIndex));
     parameters.Add(new JsonParam("properties", fields ?? AllFields.All));
     return await _client.PostAsync("Playlist.GetItems", _serializer.Parse<XbmcItemList<MediaDetailsBase>>, parameters.ToArray());
 }
示例#7
0
 internal Change(int itemCount, int totalSkuCount)
 {
     _totalSkuCount = totalSkuCount;
     _entityDatas   = new List <EntityData>(itemCount);
     _skus          = new List <Sku>(itemCount);
     _blankCells    = new List <Sku>(itemCount);
     OldValues      = new AllFields();
     NewValues      = new AllFields();
 }
        public override string BuildQueryString()
        {
            ObjectFields   = Symbol.GetType().GetProperties().Where(o => !AvoidFields.Contains(o.Name) && !o.PropertyType.IsSubclassOf(typeof(ElectronTransferModel.Geo.Geometry))).Select(o => o.Name).ToList();
            GeometryFields = new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION", "SDO_SEQ", "SDO_ESEQ", "SDO_ETYPE", "GDO_ATTRIBUTES" };
            var tableName = Mapping.GetUpdateView(this.Type.Name);

            //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" });
            string sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName,
                                       string.Join(",", AllFields.ToArray()),
                                       string.Join(",", AllFields.Select(o => ":" + o).ToArray())
                                       );

            return(sql);

            /*
             * List<Point> points = new List<Point>();
             * if (Symbol.G3E_GEOMETRY is Point)
             * {
             *  Point point = Symbol.G3E_GEOMETRY as Point;
             *  points.Add(point);
             * }
             * else if (Symbol.G3E_GEOMETRY is Multipoint)
             * {
             *  Multipoint multipoint = Symbol.G3E_GEOMETRY as Multipoint;
             *  //points.Add(multipoint.Points);
             * }
             * else if (Symbol.G3E_GEOMETRY is LineString)
             * {
             *  LineString lineString = Symbol.G3E_GEOMETRY as LineString;
             *  points.AddRange(lineString.Points);
             * }
             * else if (Symbol.G3E_GEOMETRY is Polygon)
             * {
             *  Polygon polygon = Symbol.G3E_GEOMETRY as Polygon;
             *  points.AddRange(polygon.Lines.First().Points);
             * }
             *
             * int step = 4;
             *
             * for (int page = 0; page < (points.Count + step/2)/4; page++)
             * {
             *  var items = points.Skip(page*step).Take(step);
             *  for (int i = 0; i < items.Count(); i++)
             *  {
             *      string viewName = Mapping.GetUpdateView(Symbol.GetType().Name);
             *
             *      //string sql = string.Format("INSERT INTO {0} ({1}) VALUES {2}",viewName);
             *  }
             * }
             */
            //string sql;
        }
示例#9
0
        /// <summary>
        /// 生成根据逻辑删除标识及条件查询数据语句
        /// </summary>
        /// <param name="conditions"></param>
        /// <param name="sort"></param>
        /// <returns></returns>
        public override string LogicalFindAll(Dictionary <string, string> conditions = null, Dictionary <string, int> sort = null, bool paged = true)
        {
            string sortString;

            if (sort != null && sort.Count > 0)
            {
                sortString = " ORDER BY " + string.Join(",", sort.Select(c =>
                {
                    if (c.Value > 0)
                    {
                        return(c.Key);
                    }
                    return(c.Key + " DESC ");
                }));
            }
            else
            {
                if (AllFields.Contains("CreatedAt"))
                {
                    sortString = " ORDER BY CreatedAt DESC";
                }
                else
                {
                    sortString = $" ORDER BY {PrimaryKeyName} DESC";
                }
            }
            string sql = $@"SELECT * FROM {TableName}";

            if (conditions == null)
            {
                conditions = new Dictionary <string, string>();
            }
            if (!conditions.ContainsKey(LogicalDeleteName))
            {
                conditions.Add(LogicalDeleteName, "0");
            }
            var list = conditions.BuildConditionList(typeof(T));

            if (list.Count > 0)
            {
                sql += " WHERE " + string.Join(" AND ", list);
            }

            sql += sortString;

            if (paged)
            {
                sql += " LIMIT @from, @length;";
            }
            return(sql);
        }
        public override string BuildQueryString()
        {
            GeometryFields = new string[] { "G3E_GEOMETRY" };
            ObjectFields   = Symbol.GetPropertyNames().Where(o => !AvoidFields.Contains(o) && !GeometryFields.Contains(o)).ToList();

            var tableName = Mapping.GetTableName(this.Type.Name);

            //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" });
            string sql = string.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName,
                                       string.Join(",", AllFields.ToArray()),
                                       string.Join(",", AllFields.Select(o => ":" + o).ToArray())
                                       );

            return(sql);
        }
示例#11
0
        public void GetField(Type obj)
        {
            var fieldList = obj.GetProperties();

            for (int i = 0; i < fieldList.Length; i++)
            {
                var property = fieldList[i];
                AllFields.Add(property.Name);
                Fields += property.Name;
                if (i < fieldList.Length - 1)
                {
                    Fields += ",";
                }
            }
        }
示例#12
0
        public override string BuildQueryString()
        {
            GeometryFields = new string[] { "G3E_GEOMETRY" };
            ObjectFields   = Symbol.GetPropertyNames().Where(o => !AvoidFields.Contains(o) && o != "G3E_FID" && !GeometryFields.Contains(o)).ToList();

            var tableName = Mapping.GetTableName(this.Type.Name);
            Expression <Func <ElectronSymbol, bool> > conditionExpression = o => o.G3E_FID == Symbol.G3E_FID;
            var conditionVisitor = new ConditionVisitor(conditionExpression);
            //Fields.AddRange(new string[] { "SDO_X1", "SDO_Y1", "SDO_X2", "SDO_Y2", "SDO_X3", "SDO_Y3", "SDO_X4", "SDO_Y4", "SDO_ORIENTATION" });
            string sql = string.Format("UPDATE {0} SET {1} WHERE {2}", tableName,
                                       string.Join(",", AllFields.Select(o => string.Format("{0}=:{0}", o)).ToArray()),
                                       conditionVisitor
                                       );

            return(sql);
        }
示例#13
0
        public T Get <T>() where T : KAU.PlayerSystem.IData
        {
            System.Type currentType = typeof(T);
            // Nessasary to check the AllFields before initialization!
            while (AllFields.Count > 0 && !AllFields.ContainsKey(currentType) && MapTypesTOTYpes.ContainsKey(currentType))
            {
                currentType = MapTypesTOTYpes[currentType];
            }

            if (!AllFields.ContainsKey(currentType))
            {
#if UNITY_EDITOR
                Debug.LogError(" There is no key : " + currentType.ToString() + ". Try Use actual conncreteType!");
#endif
                return(default(T));
            }
            return((T)AllFields[currentType]);
        }
示例#14
0
文件: Board.cs 项目: csatari/pixeek
        /// <summary>
        /// Hozzáad az összes mezõhöz egy random transzformált képpel rendelkezõ mezõt. A mezõ sor és oszlopadata a paraméterben meghatározott
        /// </summary>
        /// <param name="column"></param>
        /// <param name="row"></param>
        private void AddRandomFieldToAllFields(Difficulty difficulty, int column, int row)
        {
            int           randomImage = random.Next(imageList.Count);
            Transformator trf;

            switch (random.Next(5))
            {
            case (0): trf = new Rotate(difficulty, random.Next()); break;

            case (1): trf = new Mirror(difficulty, random.Next()); break;

#if WINDOWS
            case (2): trf = new Blur(difficulty, random.Next()); break;
#endif
            case (3): trf = new ColorTransformation(difficulty, random.Next()); break;

            default: trf = new Transformator(difficulty, random.Next()); break;
            }
            Field field = new Field(imageList[randomImage], randomImage, column, row, true, trf);
            AllFields.Add(field);
        }
示例#15
0
文件: Board.cs 项目: csatari/pixeek
        /// <summary>
        /// Feltölti a Field-ek listáját a megadott nehézségen koordinátákkal együtt.
        /// </summary>
        /// <param name="difficulty"></param>

        /*public void createBoard_old(Difficulty difficulty, IBoardShapes boardAnimal)
         * {
         *  if (boardAnimal != null)
         *  {
         *      int[][] boardMap = boardAnimal.getField(difficulty);
         *      Y = boardMap.GetLength(0);
         *      X = boardMap[0].GetLength(0);
         *      for (int y = 0; y < boardMap.GetLength(0); y++)
         *      {
         *          for (int x = 0; x < boardMap[y].GetLength(0); x++)
         *          {
         *              if (boardMap[y][x] == 1)
         *              {
         *                  addRandomFieldToAllFields(difficulty, y, x);
         *              }
         *          }
         *      }
         *  }
         * }*/

        /// <summary>
        /// Feltölti a Field-ek listáját a megadott nehézségen koordinátákkal együtt.
        /// </summary>
        /// <param name="difficulty"></param>
        public void CreateBoard(Difficulty difficulty, IBoardShapes boardAnimal)
        {
            int[][] boardMap     = boardAnimal.GetField(difficulty);
            int     imageCounter = 0;

            Y = boardMap.GetLength(0);
            X = boardMap[0].GetLength(0);
            for (int y = 0; y < boardMap.GetLength(0); y++)
            {
                for (int x = 0; x < boardMap[y].GetLength(0); x++)
                {
                    if (boardMap[y][x] == 1)
                    {
                        //addRandomFieldToAllFields(difficulty, y, x);
                        Field field = new Field(imageList[imageCounter], imageCounter, y, x, true, null);
                        AllFields.Add(field);
                        imageCounter++;
                    }
                }
            }
        }
示例#16
0
    //Processing
    public static void CreateZone(Vector3 _sp, Vector3 _ep, byte ZoneType, byte StorageType = 0)
    {
        Vector3 _StartPoint, _EndPoint;

        Functions.OrderVectors(_sp, _ep, out _StartPoint, out _EndPoint);
        switch (ZoneType)
        {
        case 0:
            Log.Notice(scr, "ZoneTypeIsMissing");
            break;

        case 1:
            AllStorages.Add(new Storage(_StartPoint, _EndPoint));
            break;

        case 2:
            AllFields.Add(new Field(_StartPoint, _EndPoint));
            break;

        case 3:
            AllPastures.Add(new Pasture(_StartPoint, _EndPoint));
            break;

        case 4:
            AllMines.Add(new Mine(_StartPoint, _EndPoint));
            AllMines[AllMines.Count - 1].HighlightAll();
            break;

        case 5:
            AllGatherings.Add(new Gathering(_StartPoint, _EndPoint));
            AllGatherings[AllGatherings.Count - 1].HighlightAll();
            break;

        default:
            Log.Notice(scr, "Zone type " + ZoneType + " undefined");
            break;
        }
    }
        private void CountIntertwined()
        {
            int count = 0;

            if (!IsCalculated)
            {
                Tuple <int, int> tuple;
                foreach (var kvp in SituationIndex.Index)
                {
                    foreach (var dict in kvp.Value)
                    {
                        tuple = new Tuple <int, int>(dict.Value.First(), dict.Value.Last());
                        intervals.Add(tuple);
                    }
                }
            }
            foreach (var tup in intervals)
            {
                foreach (var tup2 in intervals)
                {
                    if (!mem.Contains(new Tuple <Tuple <int, int>, Tuple <int, int> >(tup, tup2)))
                    {
                        if (!(tup.Item1 == tup2.Item1 && tup.Item2 == tup2.Item2))
                        {
                            if (tup.Item1 <= tup2.Item2 && tup2.Item1 <= tup.Item2)
                            {
                                count++;
                            }
                            mem.Add(new Tuple <Tuple <int, int>, Tuple <int, int> >(tup, tup2));
                        }
                    }
                }
            }

            IntertwinedCount = count;
            AllFields.Add("Intertwined situations", count);
        }
示例#18
0
 public IEnumerator <TranslateableEnumField <TEnum> > GetEnumerator()
 {
     return(AllFields.GetEnumerator());
 }
示例#19
0
 BaseField GetBaseField(string name)
 {
     return(AllFields.First(x => x.guiName == name));
 }
示例#20
0
 public bool HasField(string name)
 {
     return(AllFields.Any(x => x.guiName == name));
 }
示例#21
0
 public static Field GetField(string Name)
 {
     return(AllFields.Find(x => x.Name == Name));
 }
示例#22
0
 public static Zone GetZone(ushort ID)
 {
     return((new List <Zone> {
         AllMines.Find(x => x.ID == ID), AllPastures.Find(x => x.ID == ID), AllStorages.Find(x => x.ID == ID), AllFields.Find(x => x.ID == ID)
     }).Find(x => x != null));
 }
示例#23
0
 public virtual IReadOnlyList <IPopulationAnalysisField> AllFieldsOn(PivotArea area)
 {
     return(AllFields.Where(f => GetArea(f).Is(area)).OrderBy(GetAreaIndex).ToList());
 }
示例#24
0
 public IEnumerator <TranslateableEnumField <TEnum> > GetEnumerator() => AllFields.GetEnumerator();
示例#25
0
 public string GetField(string name)
 {
     return(AllFields.First(x => x.guiName == name).GetValue(module).ToString());
 }
示例#26
0
文件: Board.cs 项目: csatari/pixeek
 public void AddToAllFields(Field field)
 {
     AllFields.Add(field);
 }
示例#27
0
 void Init()
 {
     (m_Fields = new List <FieldInfo>(AllFields.Where(_ => Check(_)))).SortField();
     (m_Events = new List <EventInfo>(AllEvents.Where(_ => Check(_)))).SortEvent();
     (m_Propertys = new List <PropertyInfo>(AllPropertys.Where(_ => Check(_)))).SortProperty();
     m_Methods.Clear();
     foreach (var method in AllMethods)
     {
         if (!Check(method))
         {
             continue;
         }
         var valid        = true;
         var methodHandle = method.MethodHandle;
         //判断函数是不是 event add remove 函数
         foreach (var eventInfo in AllEvents)
         {
             if (eventInfo.GetAddMethod().MethodHandle == methodHandle || eventInfo.GetRemoveMethod().MethodHandle == methodHandle)
             {
                 if (!Check(eventInfo))
                 {
                     valid = false;
                 }
                 break;
             }
         }
         if (valid)
         {
             //判断函数是不是 get set 函数
             foreach (var propertyInfo in AllPropertys)
             {
                 //如果是struct 并且是 set 属性则屏蔽,强转结构体的set会报错
                 if (IsStruct && propertyInfo.GetSetMethod()?.MethodHandle == methodHandle)
                 {
                     valid = false;
                     break;
                 }
                 else if (propertyInfo.GetGetMethod()?.MethodHandle == methodHandle || propertyInfo.GetSetMethod()?.MethodHandle == methodHandle)
                 {
                     if (!Check(propertyInfo))
                     {
                         valid = false;
                     }
                     break;
                 }
             }
         }
         if (valid)
         {
             m_Methods.Add(method);
         }
     }
     m_Methods.SortMethod();
     m_ExtensionMethods.Clear();
     foreach (var extensionInfo in m_Extensions)
     {
         var nameSpace = extensionInfo.Namespace;
         var methods   = extensionInfo.GetMethods(Script.BindingFlag);
         foreach (var methodInfo in methods)
         {
             //非扩展函数
             if (!Util.IsExtensionMethod(methodInfo) || !Check(methodInfo))
             {
                 continue;
             }
             var paramterType = methodInfo.GetParameters()[0].ParameterType;
             //判断是模板函数
             if (paramterType.IsGenericParameter && paramterType.BaseType != null && paramterType.BaseType.IsAssignableFrom(m_Type))
             {
                 m_ExtensionMethods.Add(methodInfo);
             }
             else if (ScorpioReflectUtil.CheckGenericMethod(methodInfo) && paramterType.IsAssignableFrom(m_Type))
             {
                 m_ExtensionMethods.Add(methodInfo);
             }
             else
             {
                 continue;
             }
             if (!string.IsNullOrWhiteSpace(nameSpace))
             {
                 m_ExtensionUsing.Add(nameSpace);
             }
         }
     }
     m_ExtensionMethods.SortMethod();
     m_Methods.ForEach(_ => m_MethodNames.Add(_.Name));
     m_ExtensionMethods.ForEach(_ => m_MethodNames.Add(_.Name));
 }
示例#28
0
 public static Field GetField(ushort ID)
 {
     return(AllFields.Find(x => x.ID == ID));
 }