public ElementRewriter(ClassTable classTable, SymbolConflictWarningHandler warningHandler, ElementResolver resolver = null) { this.classTable = classTable; this.symbolConflictHandler = warningHandler; this.elementResolver = resolver ?? new ElementResolver(); }
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; }
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; }
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()); } }
private void WhenClassTableIsWritten(string fileName) { _savedClassTablePath = fileName; ClassTable.WriteClassTable(_savedClassTablePath, _classTable); }
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()); }
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); }
/// <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); }
static void Main(string[] args) { List <ClassModel> list = new ClassTable().readAll(); Console.WriteLine("Class" + list[0].startTime); }
public string GetClassName(int classId) { MyClass mc = ClassTable.Where(n => n.ID == classId).First(); return(mc.FullName); }
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); }
private void WhenClassTableIsLoaded() { _classTable = ClassTable.ReadClassTable(_loadedClassTablePath); }
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(); } }