public ElementRewriter(ClassTable classTable, SymbolConflictWarningHandler warningHandler, ElementResolver resolver = null)
 {
     this.classTable            = classTable;
     this.symbolConflictHandler = warningHandler;
     this.elementResolver       = resolver ?? new ElementResolver();
 }
Exemple #2
0
        public static bool CheckInvalidArrayCoersion(FunctionEndPoint fep, List <StackValue> reducedSVs, ClassTable classTable, RuntimeCore runtimeCore, bool allowArrayPromotion)
        {
            for (int i = 0; i < reducedSVs.Count; i++)
            {
                Type typ = fep.FormalParams[i];
                if (typ.UID == (int)ProtoCore.PrimitiveType.InvalidType)
                {
                    return(true);
                }

                if (!typ.IsIndexable)
                {
                    continue; //It wasn't an array param, skip
                }
                //Compute the type of target param
                if (!allowArrayPromotion)
                {
                    Validity.Assert(reducedSVs[i].IsArray, "This should be an array otherwise this shouldn't have passed previous tests");
                }


                if (!allowArrayPromotion)
                {
                    if (typ.rank != ArrayUtils.GetMaxRankForArray(reducedSVs[i], runtimeCore) &&
                        typ.rank != DSASM.Constants.kArbitraryRank)
                    {
                        return(true); //Invalid co-ercsion
                    }
                }
                else
                {
                    if (typ.rank < ArrayUtils.GetMaxRankForArray(reducedSVs[i], runtimeCore) &&
                        typ.rank != DSASM.Constants.kArbitraryRank)
                    {
                        return(true); //Invalid co-ercsion
                    }
                }


                Dictionary <ClassNode, int> arrayTypes = ArrayUtils.GetTypeStatisticsForArray(reducedSVs[i], runtimeCore);

                ClassNode cn = null;

                if (arrayTypes.Count == 0)
                {
                    //This was an empty array
                    Validity.Assert(cn == null, "If it was an empty array, there shouldn't be a type node");
                    cn = runtimeCore.DSExecutable.classTable.ClassNodes[(int)PrimitiveType.Null];
                }
                else if (arrayTypes.Count == 1)
                {
                    //UGLY, get the key out of the array types, of which there is only one
                    foreach (ClassNode key in arrayTypes.Keys)
                    {
                        cn = key;
                    }
                }
                else if (arrayTypes.Count > 1)
                {
                    ClassNode commonBaseType = ArrayUtils.GetGreatestCommonSubclassForArray(reducedSVs[i], runtimeCore);

                    if (commonBaseType == null)
                    {
                        throw new ProtoCore.Exceptions.ReplicationCaseNotCurrentlySupported(
                                  string.Format(Resources.ArrayWithNotSupported, "{0C644179-14F5-4172-8EF8-A2F3739901B2}"));
                    }

                    cn = commonBaseType; //From now on perform tests on the commmon base type
                }



                ClassNode argTypeNode = classTable.ClassNodes[typ.UID];

                //cn now represents the class node of the argument
                //argTypeNode represents the class node of the argument



                bool isNotExactTypeMatch  = cn != argTypeNode;
                bool argumentsNotNull     = cn != runtimeCore.DSExecutable.classTable.ClassNodes[(int)PrimitiveType.Null];
                bool recievingTypeNotAVar = argTypeNode != runtimeCore.DSExecutable.classTable.ClassNodes[(int)PrimitiveType.Var];
                bool isNotConvertible     = !cn.ConvertibleTo(typ.UID);

                //bool isCalleeVar = cn == core.classTable.list[(int) PrimitiveType.kTypeVar];


                //Is it an invalid conversion?
                if (isNotExactTypeMatch && argumentsNotNull && recievingTypeNotAVar && isNotConvertible) // && !isCalleeVar)
                {
                    return(true);                                                                        //It's an invalid coersion
                }
            }

            return(false);
        }
 public CharacterClass(Dice hitDice, int initialHitPoints, int hitPoints, string proficiencies, string equipment, ClassTable classTable)
 {
     this.HitDice          = hitDice;
     this.InitialHitPoints = initialHitPoints;
     HitPoints1            = hitPoints;
     this.Proficiencies    = proficiencies;
     this.Equipment        = equipment;
     this.ClassTable       = classTable;
 }
Exemple #4
0
        private void ResetAll(Options options)
        {
            Heap = new Heap();
            //Rmem = new RuntimeMemory(Heap);
            Configurations = new Dictionary <string, object>();
            DllTypesToLoad = new List <System.Type>();

            Options = options;

            Compilers  = new Dictionary <Language, Compiler>();
            ClassIndex = Constants.kInvalidIndex;

            FunctionTable = new FunctionTable();


            watchFunctionScope = Constants.kInvalidIndex;
            watchSymbolList    = new List <SymbolNode>();
            watchBaseOffset    = 0;


            GlobOffset            = 0;
            GlobHeapOffset        = 0;
            BaseOffset            = 0;
            GraphNodeUID          = 0;
            CodeBlockIndex        = 0;
            RuntimeTableIndex     = 0;
            CodeBlockList         = new List <CodeBlock>();
            CompleteCodeBlockList = new List <CodeBlock>();
            CallsiteGuidMap       = new Dictionary <Guid, int>();

            AssocNode = null;

            // TODO Jun/Luke type system refactoring
            // Initialize the globalClass table and type system
            ClassTable = new ClassTable();
            TypeSystem = new TypeSystem();
            TypeSystem.SetClassTable(ClassTable);
            ProcNode  = null;
            ProcTable = new ProcedureTable(Constants.kGlobalScope);

            // Initialize internal attributes
            internalAttributes = new InternalAttributes(ClassTable);

            //Initialize the function pointer table
            FunctionPointerTable = new FunctionPointerTable();

            //Initialize the dynamic string table and dynamic function table
            DynamicVariableTable = new DynamicVariableTable();
            DynamicFunctionTable = new DynamicFunctionTable();

            watchStartPC = Constants.kInvalidIndex;

            deltaCompileStartPC = Constants.kInvalidIndex;

            BuildStatus = new BuildStatus(this, Options.BuildOptWarningAsError, null, Options.BuildOptErrorAsWarning);

            SSAExpressionUID       = 0;
            SSASubscript           = 0;
            SSASubscript_GUID      = Guid.NewGuid();
            SSAExprUID             = 0;
            ExpressionUID          = 0;
            ModifierBlockUID       = 0;
            ModifierStateSubscript = 0;

            ExprInterpreterExe = null;
            Options.RunMode    = InterpreterMode.kNormal;

            assocCodegen = null;

            // Default execution log is Console.Out.
            ExecutionLog = Console.Out;

            DebuggerProperties = new DebugProperties();


            ParsingMode = ParseMode.Normal;

            IsParsingPreloadedAssembly = false;
            IsParsingCodeBlockNode     = false;
            ImportHandler = null;

            deltaCompileStartPC = 0;
            builtInsLoaded      = false;


            ForLoopBlockIndex = Constants.kInvalidIndex;

            GraphNodeCallList = new List <GraphNode>();
            InlineConditionalBodyGraphNodes = new Stack <List <GraphNode> >();

            newEntryPoint = Constants.kInvalidIndex;
        }
 internal ElementRewriter(ClassTable classTable)
 {
     this.classTable = classTable;
 }
Exemple #6
0
        public string GetClassTrace(StackValue val, Heap heap, int langblock, bool forPrint)
        {
            if (!formatParams.ContinueOutputTrace())
            {
                return("...");
            }

            RuntimeMemory rmem       = MirrorTarget.rmem;
            Executable    exe        = MirrorTarget.exe;
            ClassTable    classTable = MirrorTarget.RuntimeCore.DSExecutable.classTable;

            int classtype = val.metaData.type;

            if (classtype < 0 || (classtype >= classTable.ClassNodes.Count))
            {
                formatParams.RestoreOutputTraceDepth();
                return(string.Empty);
            }

            ClassNode classnode = classTable.ClassNodes[classtype];

            if (classnode.IsImportedClass)
            {
                var helper     = DLLFFIHandler.GetModuleHelper(FFILanguage.CSharp);
                var marshaller = helper.GetMarshaller(runtimeCore);
                var strRep     = marshaller.GetStringValue(val);
                formatParams.RestoreOutputTraceDepth();
                return(strRep);
            }
            else
            {
                var obj = heap.ToHeapObject <DSObject>(val);

                List <string> visibleProperties = null;
                if (null != propertyFilter)
                {
                    if (!propertyFilter.TryGetValue(classnode.Name, out visibleProperties))
                    {
                        visibleProperties = null;
                    }
                }

                StringBuilder classtrace = new StringBuilder();
                if (classnode.Symbols != null && classnode.Symbols.symbolList.Count > 0)
                {
                    bool firstPropertyDisplayed = false;
                    for (int n = 0; n < obj.Count; ++n)
                    {
                        SymbolNode symbol   = classnode.Symbols.symbolList[n];
                        string     propName = symbol.name;

                        if ((null != visibleProperties) && visibleProperties.Contains(propName) == false)
                        {
                            continue; // This property is not to be displayed.
                        }
                        if (firstPropertyDisplayed)
                        {
                            classtrace.Append(", ");
                        }

                        string propValue = "";
                        if (symbol.isStatic)
                        {
                            var        staticSymbol = exe.runtimeSymbols[langblock].symbolList[symbol.symbolTableIndex];
                            StackValue staticProp   = rmem.GetSymbolValue(staticSymbol);
                            propValue = GetStringValue(staticProp, heap, langblock, forPrint);
                        }
                        else
                        {
                            propValue = GetStringValue(obj.GetValueFromIndex(symbol.index, runtimeCore), heap, langblock, forPrint);
                        }
                        classtrace.Append(string.Format("{0} = {1}", propName, propValue));
                        firstPropertyDisplayed = true;
                    }
                }
                else
                {
                    var stringValues = obj.Values.Select(x => GetStringValue(x, heap, langblock, forPrint))
                                       .ToList();

                    for (int n = 0; n < stringValues.Count(); ++n)
                    {
                        if (0 != n)
                        {
                            classtrace.Append(", ");
                        }

                        classtrace.Append(stringValues[n]);
                    }
                }

                formatParams.RestoreOutputTraceDepth();
                if (classtype >= (int)ProtoCore.PrimitiveType.MaxPrimitive)
                {
                    if (forPrint)
                    {
                        return(string.Format("{0}{{{1}}}", classnode.Name, classtrace.ToString()));
                    }
                    else
                    {
                        string tempstr = (string.Format("{0}({1})", classnode.Name, classtrace.ToString()));
                        return(tempstr);
                    }
                }

                return(classtrace.ToString());
            }
        }
Exemple #7
0
 private void WhenClassTableIsWritten(string fileName)
 {
     _savedClassTablePath = fileName;
     ClassTable.WriteClassTable(_savedClassTablePath, _classTable);
 }
Exemple #8
0
        public static List <ClassTable> InitTable()
        {
            List <ClassTable> listFixTable = new List <ClassTable>();

            #region tb_room
            ClassTable tb_room = new ClassTable();
            tb_room.Table = "tb_room";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "RoomID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "RoomName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HomeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_room.listColumn = listColumn;
            }
            listFixTable.Add(tb_room);
            #endregion

            #region tb_home
            ClassTable tb_home = new ClassTable();
            tb_home.Table = "tb_home";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HomeID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HomeName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_home.listColumn = listColumn;
            }
            listFixTable.Add(tb_home);
            #endregion

            #region tb_user
            ClassTable tb_user = new ClassTable();
            tb_user.Table = "tb_user";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserCode";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserPassword";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "APIKey";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "LocaltionName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Latitude";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Longitude";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HassIO_URL";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HassIO_KEY";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_user.listColumn = listColumn;
            }
            listFixTable.Add(tb_user);
            #endregion

            #region tb_softupdate
            ClassTable tb_softupdate = new ClassTable();
            tb_softupdate.Table = "tb_softupdate";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateVersion";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateSQL";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateData";
                    Column.ColumnDefine = " longblob ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateSize";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateUser";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateTime";
                    Column.ColumnDefine = " datetime ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateKey";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_softupdate.listColumn = listColumn;
            }
            listFixTable.Add(tb_softupdate);
            #endregion

            #region tb_dm_entity_type
            ClassTable tb_dm_entity_type = new ClassTable();
            tb_dm_entity_type.Table = "tb_dm_entity_type";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeDBID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeHardcode";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeDisable";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_dm_entity_type.listColumn = listColumn;
            }
            listFixTable.Add(tb_dm_entity_type);
            #endregion

            #region tb_dm_intent_type
            ClassTable tb_dm_intent_type = new ClassTable();
            tb_dm_intent_type.Table = "tb_dm_intent_type";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeDBID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeHardcode";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeDisable";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_dm_intent_type.listColumn = listColumn;
            }
            listFixTable.Add(tb_dm_intent_type);
            #endregion

            #region tb_intent_response
            ClassTable tb_intent_response = new ClassTable();
            tb_intent_response.Table = "tb_intent_response";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Intent_ResponseID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "IntentID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10)";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Data";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_intent_response.listColumn = listColumn;
            }
            listFixTable.Add(tb_intent_response);
            #endregion

            #region tb_intent
            ClassTable tb_intent = new ClassTable();
            tb_intent.Table = "tb_intent";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "IntentID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "IntentName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_intent.listColumn = listColumn;
            }
            listFixTable.Add(tb_intent);
            #endregion

            #region tb_device
            ClassTable tb_device = new ClassTable();
            tb_device.Table = "tb_device";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DeviceID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DeviceName";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DeviceName_Short";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DeviceCode";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Hass_Entity_ID";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Hass_DeviceTypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "RoomID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "UserID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HomeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_device.listColumn = listColumn;
            }
            listFixTable.Add(tb_device);
            #endregion

            #region tb_intent_request
            ClassTable tb_intent_request = new ClassTable();
            tb_intent_request.Table = "tb_intent_request";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Intent_RequestID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "IntentID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DM_Entity_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Current_DM_Intent_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Current_DM_Entity_TypeID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Data";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Data_Query";
                    Column.ColumnDefine = " tsquery ";
                    Column.isIndex      = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_intent_request.listColumn = listColumn;
            }
            listFixTable.Add(tb_intent_request);
            #endregion

            return(listFixTable);
        }
        public FileInfo FindThreeDeeCockpitFile(int vehicleACD)
        {
            if (vehicleACD == -1)
            {
                return(FindThreeDeeCockpitFileUsingOldMethod());
            }

            var file = string.Empty;

            try
            {
                var exePath = _bmsRunningExecutableLocator.BMSExePath;
                if (exePath == null)
                {
                    return(null);
                }

                exePath += Path.DirectorySeparatorChar;
                var bmsBaseDirectory  = new DirectoryInfo(exePath).Parent.Parent.FullName + Path.DirectorySeparatorChar;
                var currentTheaterTdf = _currentTheaterDotTdfLoader.GetCurrentTheaterDotTdf(bmsBaseDirectory);
                var dataDir           = Path.Combine(bmsBaseDirectory, "data");

                var artDir            = Path.Combine(dataDir, currentTheaterTdf != null ? currentTheaterTdf.artDir ?? "art" : "art");
                var mainCkptArtFolder = Path.Combine(artDir, "ckptart");
                if (!Directory.Exists(mainCkptArtFolder))
                {
                    mainCkptArtFolder = Path.Combine(dataDir, @"art\ckptart");
                }

                var objectDir = Path.Combine(dataDir, currentTheaterTdf != null ? currentTheaterTdf.objectDir ?? @"terrdata\objects" : @"terrdata\objects");
                if (!Directory.Exists(objectDir))
                {
                    objectDir = Path.Combine(dataDir, @"terrdata\objects");
                }
                var classTable       = ClassTable.ReadClassTable(Path.Combine(objectDir, "FALCON4.CT"));
                var vehicleDataTable = new VcdFile(Path.Combine(objectDir, "FALCON4.VCD")).VehicleDataTable;
                var vehicleClass     = classTable.FirstOrDefault(
                    x => x.dataType == (byte)Data_Types.DTYPE_VEHICLE &&
                    x.vuClassData.classInfo_[(int)VuClassHierarchy.VU_DOMAIN] == (byte)Classtable_Domains.DOMAIN_AIR &&
                    x.vuClassData.classInfo_[(int)VuClassHierarchy.VU_TYPE] == (byte)Classtable_Types.TYPE_AIRPLANE &&
                    x.vehicleDataIndex == vehicleACD)
                ;

                var vehicleData = vehicleDataTable[vehicleClass.dataPtr];
                var vehicleName = Encoding.ASCII.GetString(vehicleData.Name).TrimAtNull().Replace("*", "");
                var vehicleNCTR = Encoding.ASCII.GetString(vehicleData.NCTR).TrimAtNull().Replace("*", "");
                var visType     = vehicleClass.visType[0];

                const string threeDeeCockpitDatFile = "3dckpit.dat";
                if (visType == (short)Vis_Types.VIS_F16C)
                {
                    file = Path.Combine(mainCkptArtFolder, threeDeeCockpitDatFile);
                }
                else
                {
                    file = Path.Combine(mainCkptArtFolder, visType.ToString(), threeDeeCockpitDatFile);
                    if (!FileExists(file))
                    {
                        file = Path.Combine(mainCkptArtFolder, vehicleName, threeDeeCockpitDatFile);
                        if (!FileExists(file))
                        {
                            file = Path.Combine(mainCkptArtFolder, vehicleNCTR, threeDeeCockpitDatFile);
                            if (!FileExists(file))
                            {
                                file = Path.Combine(mainCkptArtFolder, threeDeeCockpitDatFile);
                            }
                        }
                    }
                }
            }
            catch (Exception e) { _log.Error(e.Message, e); }

            var fi = !string.IsNullOrEmpty(file) ? new FileInfo(file) : null;

            return(FileExists(file) ? fi : FindThreeDeeCockpitFileUsingOldMethod());
        }
Exemple #10
0
        public static List <ClassTable> InitTable()
        {
            List <ClassTable> listFixTable = new List <ClassTable>();


            #region tb_thanhtoan
            ClassTable tb_thanhtoan = new ClassTable();
            tb_thanhtoan.Table = "tb_thanhtoan";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "ThanhToanID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HoaDonID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "GiaTien";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HinhThucThanhToan";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "NgayThanhToan";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "GhiChu";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_thanhtoan.listColumn = listColumn;
            }
            listFixTable.Add(tb_thanhtoan);
            #endregion

            #region tb_hoadoninfo
            ClassTable tb_hoadoninfo = new ClassTable();
            tb_hoadoninfo.Table = "tb_hoadoninfo";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HoaDonInfoID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HoaDonID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DichVuID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TimeSuDung";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DonGia";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_hoadoninfo.listColumn = listColumn;
            }
            listFixTable.Add(tb_hoadoninfo);
            #endregion

            #region tb_hoadon
            ClassTable tb_hoadon = new ClassTable();
            tb_hoadon.Table = "tb_hoadon";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "HoaDonID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "KhachHangID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "PhongID";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TimeIn";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TimeOut";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DatCoc";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Status";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_hoadon.listColumn = listColumn;
            }
            listFixTable.Add(tb_hoadon);
            #endregion

            #region tb_dichvu
            ClassTable tb_dichvu = new ClassTable();
            tb_dichvu.Table = "tb_dichvu";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DichVuID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenDichVu";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "GiaTien";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_dichvu.listColumn = listColumn;
            }
            listFixTable.Add(tb_dichvu);
            #endregion

            #region tb_khachhang
            ClassTable tb_khachhang = new ClassTable();
            tb_khachhang.Table = "tb_khachhang";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "KhachHangID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenKhachHang";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoCMND";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoDienThoai";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_khachhang.listColumn = listColumn;
            }
            listFixTable.Add(tb_khachhang);
            #endregion

            #region tb_nhanvien
            ClassTable tb_nhanvien = new ClassTable();
            tb_nhanvien.Table = "tb_nhanvien";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "NhanVienID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenNhanVien";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "NgaySinh";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoDienThoai";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "ChucVu";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_nhanvien.listColumn = listColumn;
            }
            listFixTable.Add(tb_nhanvien);
            #endregion

            #region tb_loaiphong
            ClassTable tb_loaiphong = new ClassTable();
            tb_loaiphong.Table = "tb_loaiphong";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "ID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "MaLoai";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenLoai";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "GhiChu";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_loaiphong.listColumn = listColumn;
            }
            listFixTable.Add(tb_loaiphong);
            #endregion

            #region tb_phong
            ClassTable tb_phong = new ClassTable();
            tb_phong.Table = "tb_phong";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "PhongID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenPhong";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "MaLoai";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "DienTich";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "GiaThue";
                    Column.ColumnDefine = " double DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Status";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_phong.listColumn = listColumn;
            }
            listFixTable.Add(tb_phong);
            #endregion

            #region tb_taikhoan
            ClassTable tb_taikhoan = new ClassTable();
            tb_taikhoan.Table = "tb_taikhoan";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TaiKhoanID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "TenTaiKhoan";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "MatKhau";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "QuyenTruyCap";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "MaNhanVien";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_taikhoan.listColumn = listColumn;
            }
            listFixTable.Add(tb_taikhoan);
            #endregion

            #region tb_softupdate
            ClassTable tb_softupdate = new ClassTable();
            tb_softupdate.Table = "tb_softupdate";
            {
                IList <ClassColumn> listColumn = new List <ClassColumn>();
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateID";
                    Column.ColumnDefine = " int(10) unsigned NOT NULL auto_increment ";
                    Column.isPRIMARY    = true;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateVersion";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateSQL";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateData";
                    Column.ColumnDefine = " longblob ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateSize";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateUser";
                    Column.ColumnDefine = " int(10) DEFAULT '0' ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateTime";
                    Column.ColumnDefine = " datetime ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "SoftUpdateKey";
                    Column.ColumnDefine = " text CHARACTER SET utf8 COLLATE utf8_unicode_ci ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                {
                    ClassColumn Column = new ClassColumn();
                    Column.ColumnName   = "Version";
                    Column.ColumnDefine = " timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                    Column.isPRIMARY    = false;
                    listColumn.Add(Column);
                }
                tb_softupdate.listColumn = listColumn;
            }
            listFixTable.Add(tb_softupdate);
            #endregion

            return(listFixTable);
        }
Exemple #11
0
        /// <summary>
        /// Searches for every symbol from terminal in classes.
        /// Modifies existing classes and adds new ones if needed.
        /// </summary>
        /// <param name="terminal">Terminal to be processed.</param>
        /// <returns>SymbolClasses of terminal.</returns>
        private List <string> GetClassesOfTerminalSymbols(string terminal)
        {
            // Dictionary of created or used classes.
            List <string> terminalClasses = new List <string>();


            // Check each character.
            foreach (char ch in terminal)
            {
                // Get info about symbol.
                var symbolInfo = ClassTable.GetSymbolInfo(ch);

                // String representation of character.
                string stringChar = ch.ToString();

                // If symbol is classified then there is a class for it created.
                if (symbolInfo.category == SymbolCategory.Classified)
                {
                    // Get symbol class characters.
                    var classCharacters = ClassTable.SymbolClasses[symbolInfo.@class];

                    // If there are more then 1 character in the class
                    // then remove the character from the class and create a new one.
                    if (classCharacters.Count() > 1)
                    {
                        // Find position of the symbol in the class.
                        int pos = classCharacters.IndexOf(ch);

                        // Remove the symbol from the class.
                        ClassTable.SymbolClasses[symbolInfo.@class] = classCharacters.Remove(pos, 1);

                        // Add symbol as separate terminal to unclassified terminals.
                        UnclassifiedTerminals = UnclassifiedTerminals.Append(stringChar);

                        // Create dedicated class.
                        ClassTable.SymbolClasses[stringChar] = stringChar;


                        // If classesWithRemovedSymbols does not contain class name then
                        // must create one.
                        if (!classesWithRemovedSymbols.ContainsKey(symbolInfo.@class))
                        {
                            classesWithRemovedSymbols[symbolInfo.@class] = new List <char>();
                        }

                        // Add symbol to list fo removed symbols.
                        classesWithRemovedSymbols[symbolInfo.@class].Add(ch);

                        terminalClasses.Add(stringChar);
                    }
                    else if (classCharacters.Count() == 1)
                    {
                        terminalClasses.Add(symbolInfo.@class);
                    }
                }
                else if (symbolInfo.category == SymbolCategory.Undefined)
                {
                    ClassTable.SymbolClasses[stringChar] = stringChar;

                    terminalClasses.Add(stringChar);
                }
            }


            return(terminalClasses);
        }
Exemple #12
0
        static void Main(string[] args)
        {
            List <ClassModel> list = new ClassTable().readAll();

            Console.WriteLine("Class" + list[0].startTime);
        }
Exemple #13
0
        public string GetClassName(int classId)
        {
            MyClass mc = ClassTable.Where(n => n.ID == classId).First();

            return(mc.FullName);
        }
Exemple #14
0
        public Dictionary <FunctionEndPoint, int> GetCastDistances(ProtoCore.Runtime.Context context, List <StackValue> formalParams, List <ReplicationInstruction> replicationInstructions, ClassTable classTable, RuntimeCore runtimeCore)
        {
            Dictionary <FunctionEndPoint, int> ret = new Dictionary <FunctionEndPoint, int>();

            //@PERF: Consider parallelising this
            List <FunctionEndPoint> feps            = FunctionEndPoints;
            List <StackValue>       reducedParamSVs = Replicator.EstimateReducedParams(formalParams, replicationInstructions, runtimeCore);

            foreach (FunctionEndPoint fep in feps)
            {
                int dist = fep.ComputeCastDistance(reducedParamSVs, classTable, runtimeCore);
                ret.Add(fep, dist);
            }

            return(ret);
        }
Exemple #15
0
 private void WhenClassTableIsLoaded()
 {
     _classTable = ClassTable.ReadClassTable(_loadedClassTablePath);
 }
Exemple #16
0
 public ShortestQualifiedNameReplacer(ClassTable classTable, ElementResolver resolver)
 {
     this.classTable = classTable;
     this.resolver   = resolver;
 }
        private List <TaxChargeSpecification> GetUnitTaxSpecification(BookingFlowContext flowContext, ClassTable classes)
        {
            switch (flowContext.TaxPayeeRelationship)
            {
            case TaxPayeeRelationship.BusinessToBusiness when _appSettings.Payment.TaxCalculationB2B:
            case TaxPayeeRelationship.BusinessToConsumer when _appSettings.Payment.TaxCalculationB2C:
                return(new List <TaxChargeSpecification>
                {
                    new TaxChargeSpecification
                    {
                        Name = "VAT at 20%",
                        Price = classes.Price * (decimal?)0.2,
                        PriceCurrency = "GBP",
                        Rate = (decimal?)0.2
                    }
                });

            case TaxPayeeRelationship.BusinessToBusiness when !_appSettings.Payment.TaxCalculationB2B:
            case TaxPayeeRelationship.BusinessToConsumer when !_appSettings.Payment.TaxCalculationB2C:
                return(null);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }