public void SearchTable(TableName TableName, DataTableType dataTableType) { foreach (ProvinceData provinceData in province.provinceDataTable) { if (provinceData.name == TableName.ToString()) { switch (dataTableType) { case DataTableType.Icon: Debug.Log(provinceData.icon); break; case DataTableType.Name: Debug.Log(provinceData.Name); break; case DataTableType.Synopsis: Debug.Log(provinceData.synopsis); break; case DataTableType.Region: Debug.Log(provinceData.region); break; case DataTableType.Number: Debug.Log(provinceData.number); break; case DataTableType.Area: Debug.Log(provinceData.area); break; } } } }
/// <summary> /// Create a PowershellTask to execute the specified scripts /// </summary> /// <param name="variables">Variables to pass into the powershell task</param> /// <param name="scriptFiles">List of script files to load prior to running scriptText. Loaded 1st into Pipeline.Commands</param> /// <param name="scriptText">Script text to perform the task. Loaded last into Pipeline.Commands</param> public PowershellTask(Dictionary <string, object> variables, List <string> scriptFiles, string scriptText) { _scriptText = scriptText; _scriptFiles = scriptFiles; _variables = variables; _dataTableType = DataTableType.None; }
private static DataTable Create(DataTable root, DataTable master, Type objectType, bool isSnapshot, DataTableType tableType, IEnumerable <IDataField> objectFields, IDataField memberField) { var tableName = GetTableName(objectType, isSnapshot); return(Create(root, master, objectType, isSnapshot, tableType, tableName, objectFields, memberField)); }
/// <summary> /// 创建中间表 /// </summary> /// <param name="root"></param> /// <param name="master"></param> /// <param name="tableName"></param> /// <param name="tableType"></param> /// <param name="isMultiple"></param> /// <param name="objectFields"></param> /// <param name="memberField"></param> /// <returns></returns> private static DataTable CreateMiddle(DataTable root, DataTable master, string tableName, DataTableType tableType, IEnumerable <IDataField> objectFields, IDataField memberField) { // memberField.GetPropertyType()就是集合类型,中间表的objectType是集合类型 return(Create(root, master, memberField.GetPropertyType(), master.IsSnapshot, tableType, tableName, objectFields, memberField)); }
/// <summary>Gets a specific <see cref="DataTable"/> object. /// </summary> /// <param name="tableName">The name of the table.</param> /// <param name="dataTableType">The type of the tables to take into account.</param> /// <returns>A <see cref="DataTable"/> with the desired name.</returns> /// <exception cref="ArgumentException">Thrown, if no table available with the desired name.</exception> public DataTable GetDataTable(IdentifierString tableName, DataTableType dataTableType = DataTableType.Single) { if (TryGetDataTable(tableName, out DataTable value, dataTableType) == true) { return(value); } throw new ArgumentException(String.Format(ExceptionMessages.TableNameUnknown, (String)tableName), (String)tableName); }
//internal static DataTable Create(DataTable root, DataTable master, Type objectType, DataTableType tableType, IDataField memberField) //{ // var objectFields = DataModel.GetObjectFields(objectType, master.IsSnapshot); // return Create(root, master, objectType, master.IsSnapshot, tableType, objectFields, memberField); //} internal static DataTable CreateSnapshot(Type objectType, IEnumerable <IDataField> objectFields) { if (!DomainObject.IsAggregateRoot(objectType)) { throw new SnapshotTargetException(); } DataTableType tableType = DataTableType.AggregateRoot; return(Create(null, null, objectType, true, tableType, objectFields, null)); }
internal static DataTable Create(Type objectType, IEnumerable <IDataField> objectFields) { DataTableType tableType = DataTableType.AggregateRoot; if (DomainObject.IsAggregateRoot(objectType)) { tableType = DataTableType.AggregateRoot; return(Create(null, null, objectType, false, tableType, objectFields, null)); } throw new DomainDrivenException(string.Format(Strings.PersistentObjectError, objectType.FullName)); }
public static bool HasData(DataTableType type) { switch (type) { case DataTableType.Language: return(languageDataTableProvider.HasData); case DataTableType.Region: return(regionDataTableProvider.HasData); default: throw new ArgumentException("unknown type: " + type); } }
private void SetDataTableFromPSCustomObject(PSObject psObject) { _resultDataTable = new DataTable(); foreach (var prop in psObject.Properties) { if (Type.GetType(prop.TypeNameOfValue) != null) { _resultDataTable.Columns.Add(prop.Name, Type.GetType(prop.TypeNameOfValue)); } } _dataTableType = DataTableType.PSCustomObject; }
public static bool HaveData(DataTableType type) { switch (type) { case DataTableType.LANG: return(LangDataTables.impl is ICUDataTables); case DataTableType.REGION: return(RegionDataTables.impl is ICUDataTables); default: throw new ArgumentException("unknown type: " + type); } }
private DataTable(Type objectType, bool isSnapshot, DataTable chainRoot, DataTable master, DataTableType type, string name, IEnumerable <IDataField> tableFields, IEnumerable <IDataField> objectFields, IDataField memberField) { this.UniqueKey = GetUniqueKey(memberField, chainRoot?.Name, name); AddBuildtimeIndex(this); if (memberField != null) { memberField.Table = this; } this.Type = type; this.ChainRoot = chainRoot; this.Master = master; this.MemberField = memberField; this.Root = FindActualRoot(chainRoot); InitObjectType(objectType, memberField?.Tip); this.Chain = this.MemberField == null ? ObjectChain.Empty : new ObjectChain(this.MemberField); this.IsSnapshot = isSnapshot; this.IsMultiple = memberField == null ? false : memberField.IsMultiple; this.Name = name; this.Fields = TidyFields(tableFields); this.ObjectFields = objectFields; this.PropertyTips = GetPropertyTips(); InitDerived(); InitConnectionName(); InitTableIdName(); InitChilds(); InitDynamic(); this.Mapper = DataMapperFactory.Create(this.ObjectType); //这里触发,是为了防止程序员在程序启动时手工初始化,但会遗漏动态表的初始化 //所以在表构造的时候主动创建 this.Build(); }
private static DataTable Create(DataTable root, DataTable master, Type objectType, bool isSnapshot, DataTableType tableType, string tableName, IEnumerable <IDataField> objectFields, IDataField memberField) { //补全memberField信息 if (memberField != null) { if (memberField.ParentMemberField == null) { memberField.ParentMemberField = master?.MemberField; } if (memberField.MasterTableName == null) { memberField.MasterTableName = master?.Name; } if (memberField.TableName == null) { memberField.TableName = tableName; } } var table = GetBuildtimeIndex(memberField, root?.Name, tableName); if (table != null) { return(table); //防止死循环 } var copyFields = objectFields.ToList(); //获取字段信息 var tableFields = GetTableFields(copyFields); //得到表需要存储的字段集合 //得到表和子表信息 table = new DataTable(objectType, isSnapshot, root, master, tableType, tableName, tableFields, objectFields, memberField); return(table); }
public static IUsingDataTable Create(DataTableType type) { IUsingDataTable usingDataTable = null; switch (type) { case DataTableType.DataBase: usingDataTable = new UsingDataBaseTable(); break; case DataTableType.CSV: break; default: break; } return(usingDataTable); }
/// <summary> /// Confirms the application library field value. /// </summary> /// <param name="context">The context.</param> /// <param name="dataTableType">Type of the data table.</param> /// <param name="packageId">The package identifier.</param> /// <param name="entityUid">The entity upgrade id.</param> /// <param name="fieldUid">The field upgrade id.</param> /// <param name="value">The value.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">context</exception> /// <exception cref="System.ArgumentException"> /// @Invalid TenantId;tenantId /// or /// @Invalid EntityUid;entityUid /// </exception> public static bool ConfirmAppLibraryFieldValue(DatabaseContext context, DataTableType dataTableType, Guid packageId, Guid entityUid, Guid fieldUid, object value) { if (context == null) { throw new ArgumentNullException("context"); } if (packageId == Guid.Empty) { throw new ArgumentException(@"Invalid PackageId", "packageId"); } if (entityUid == Guid.Empty) { throw new ArgumentException(@"Invalid EntityUid", "entityUid"); } string query = string.Format("SELECT d.Data FROM AppData_{0} d WHERE d.AppVerUid = @appVerUid AND d.EntityUid = @entityUid AND d.FieldUid = @fieldUid", dataTableType); using (IDbCommand command = context.CreateCommand(query)) { context.AddParameter(command, "@appVerUid", DbType.Guid, packageId); context.AddParameter(command, "@entityUid", DbType.Guid, entityUid); context.AddParameter(command, "@fieldUid", DbType.Guid, fieldUid); object result = command.ExecuteScalar( ); if (result == null || result == DBNull.Value) { if (value == null || value == DBNull.Value) { return(true); } return(false); } return(result.Equals(value)); } }
/// <summary>Gets a specific <see cref="DataTable"/> object. /// </summary> /// <param name="tableName">The name of the table.</param> /// <param name="value">The <see cref="DataTable"/> and its name in its <see cref="IdentifierString"/> representation (output).</param> /// <param name="dataTableType">The type of the tables to take into account.</param> /// <returns>A value indicating whether <paramref name="value"/> contains valid data.</returns> public bool TryGetDataTable(IdentifierString tableName, out DataTable value, DataTableType dataTableType = DataTableType.Single) { if (dataTableType.HasFlag(DataTableType.Single) == true) { if (m_Tables.TryGetValue(tableName, out value) == true) { return(true); } } if (dataTableType.HasFlag(DataTableType.Parent) == true) { if (m_ParentChildTables.TryGetValue(tableName, out InfoOutputParentChildDataTable parentChildDataTable) == true) { value = parentChildDataTable.ParentDataTable; return(true); } } if (dataTableType.HasFlag(DataTableType.Child) == true) { int index = tableName.IDString.IndexOf(ParentChildTableNameSeparator); if (index >= 0) { string parentTableName = tableName.IDString.Substring(0, index); string childTableName = tableName.IDString.Substring(index + ParentChildTableNameSeparator.Length, tableName.IDString.Length - index - ParentChildTableNameSeparator.Length); if (m_ParentChildTables.TryGetValue(parentTableName, out InfoOutputParentChildDataTable parentChildDataTable) == true) { if (parentChildDataTable.ChildDataTable.TableName.ToIDString() == childTableName.ToIDString()) { value = parentChildDataTable.ChildDataTable; return(true); } } } } value = null; return(false); }
/// <summary>Gets the <see cref="System.Data.DataTable"/> objects with homogeneous informations, and the table name in its <see cref="IdentifierString"/> representation. /// </summary> /// <param name="dataTableType">The type of the tables to take into account.</param> /// <returns>The tables and table names.</returns> /// <remarks>The table name of an <see cref="DataTable"/> object can be changed.</remarks> public IEnumerable <Tuple <IdentifierString, DataTable> > GetDataTables(DataTableType dataTableType = DataTableType.Single) { if (dataTableType.HasFlag(DataTableType.Single) == true) { foreach (var namedTable in m_Tables.NamedValues) { yield return(namedTable); } } if (dataTableType.HasFlag(DataTableType.Parent) == true) { foreach (var namedParentChildTables in m_ParentChildTables.NamedValues) { yield return(Tuple.Create(namedParentChildTables.Item1, namedParentChildTables.Item2.ParentDataTable)); } } if (dataTableType.HasFlag(DataTableType.Child) == true) { foreach (var namedParentChildTables in m_ParentChildTables.NamedValues) { yield return(Tuple.Create(IdentifierString.Create(namedParentChildTables.Item2.ParentDataTable.TableName + ParentChildTableNameSeparator + namedParentChildTables.Item2.ChildDataTable.TableName), namedParentChildTables.Item2.ChildDataTable)); } } }
/// <summary>Gets the table names. /// </summary> /// <param name="dataTableType">The type of the tables to take into account.</param> /// <returns>The table names.</returns> public IEnumerable <string> GetDataTableNames(DataTableType dataTableType = DataTableType.Single) { if (dataTableType.HasFlag(DataTableType.Single) == true) { foreach (var tableName in m_Tables.Names) { yield return(tableName); } } if (dataTableType.HasFlag(DataTableType.Parent) == true) { foreach (var namedParentChildTables in m_ParentChildTables.NamedValues) { yield return((String)namedParentChildTables.Item1); } } if (dataTableType.HasFlag(DataTableType.Child) == true) { foreach (var namedParentChildTables in m_ParentChildTables.NamedValues) { yield return(namedParentChildTables.Item2.ParentDataTable.TableName + ParentChildTableNameSeparator + namedParentChildTables.Item2.ChildDataTable.TableName); } } }
public static void ReadCSV(this DataTable dt, string path, string token) { System.Collections.Generic.IEnumerator <CSV.Row> iterator = CSV.Read(path, token).GetEnumerator(); // System.Data.DataTable dt = new System.Data.DataTable(); // 第一行 // iterator.MoveNext(); // 第二行 iterator.MoveNext(); CSV.Row rowNames = iterator.Current; // 第三行 iterator.MoveNext(); CSV.Row rowTypes = iterator.Current; if (rowTypes.Fields.Length != rowNames.Fields.Length) { throw new Exception( string.Format( "名稱與型別數量不符: RowNameCount={0},RowTypeCount={1}", rowNames.Fields.Length, rowTypes.Fields.Length)); } string[] defaultValues = new string[rowTypes.Fields.Length]; for (int i = 0; i < rowNames.Fields.Length; ++i) { string name = rowNames.Fields[i]; string strType = rowTypes.Fields[i]; DataTableType result = (from ddt in DataTableType.Types where ddt.Name == strType select ddt).FirstOrDefault(); defaultValues[i] = result.Default; if (result != null) { DataColumn dc = new DataColumn(name, result.Type); dt.Columns.Add(dc); } else { throw new Exception("無效的型別:" + strType); } } int rowCount = rowNames.Fields.Length; while (iterator.MoveNext()) { CSV.Row row = iterator.Current; string[] fields = row.Fields; if (fields.Length == rowCount) { DataRow dtRow = dt.NewRow(); int i = 0; foreach (string name in rowNames.Fields) { string field = fields[i] == string.Empty ? defaultValues[i] : fields[i]; dtRow[name] = field; ++i; } dt.Rows.Add(dtRow); } else { throw new Exception( string.Format( "資料欄位與名稱數量不符: Index={0},RowCount={1},FieldCount={2}", row.Index, rowCount, fields.Length)); } } }
/// <summary> /// Confirms the tenant field value. /// </summary> /// <param name="context">The context.</param> /// <param name="tenantId">The tenant identifier.</param> /// <param name="dataTableType">Type of the data table.</param> /// <param name="entityUid">The entity upgrade id.</param> /// <param name="fieldUid">The field upgrade id.</param> /// <param name="value">The value.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException">context</exception> /// <exception cref="System.ArgumentException"> /// @Invalid TenantId;tenantId /// or /// @Invalid EntityId;entityId /// </exception> public static bool ConfirmTenantFieldValue(DatabaseContext context, long tenantId, DataTableType dataTableType, Guid entityUid, Guid fieldUid, object value) { if (context == null) { throw new ArgumentNullException("context"); } if (tenantId < 0) { throw new ArgumentException(@"Invalid TenantId", "tenantId"); } if (entityUid == Guid.Empty) { throw new ArgumentException(@"Invalid EntityUid", "entityUid"); } string query = string.Format("SELECT d.Data FROM Data_{0} d JOIN Entity e ON d.EntityId = e.Id AND d.TenantId = e.TenantId JOIN Entity f ON d.FieldId = f.Id AND d.TenantId = f.TenantId WHERE d.TenantId = @tenantId AND e.UpgradeId = @entityUid AND f.UpgradeId = @fieldUid", dataTableType); using (IDbCommand command = context.CreateCommand(query)) { context.AddParameter(command, "@tenantId", DbType.Int64, tenantId); context.AddParameter(command, "@entityUid", DbType.Guid, entityUid); context.AddParameter(command, "@fieldUid", DbType.Guid, fieldUid); object result = command.ExecuteScalar( ); if (result == null || result == DBNull.Value) { if (value == null || value == DBNull.Value) { return(true); } return(false); } return(result.Equals(value)); } }
// =========================================================================== // = Construction // =========================================================================== public SpatiaLiteDataTable(IDataSource inSource, String inName, DataTableType inType) { Source = inSource; Name = inName; Type = inType; }
private void OutputDataReady(object sender, EventArgs e) { try { PipelineReader <PSObject> reader = sender as PipelineReader <PSObject>; while (reader.Count > 0) { var r = _pipeline.Output.Read(); if (r == null) { // no-op } else if (r.BaseObject is System.Data.DataRow) { DataRow row = (DataRow)r.BaseObject; if (_resultDataTable == null) { _resultDataTable = row.Table.Clone(); _dataTableType = DataTableType.DataRow; } if (_dataTableType == DataTableType.DataRow) { _resultDataTable.ImportRow(row); } } else if (r.BaseObject is System.Management.Automation.PSCustomObject) { if (_resultDataTable == null) { SetDataTableFromPSCustomObject(r); _dataTableType = DataTableType.PSCustomObject; } if (_dataTableType == DataTableType.PSCustomObject) { ImportRowFromPSCustomObject(r); } } // Always output the object to string else { _resultStringBuilder.AppendLine(r.ToString()); } } } catch (Exception ex) { _taskCompleted = true; _endTime = DateTime.Now; _taskStatus = Status.FAILED; string logMessage = string.Format(@"SCRIPT FAILED. Time:[{0:MM/dd/yy HH:mm:ss}] Duration:[{1}] Error:{2}", DateTime.Now, this.Duration.ToString(@"hh\:mm\:ss"), ex.ToString()); _resultStringBuilder.Append(logMessage); return; } if (_pipeline.PipelineStateInfo.State == PipelineState.Running) { _taskCompleted = false; return; } else { if (_taskStatus == Status.RUNNING) { _taskStatus = Status.COMPLETED; } _taskCompleted = true; _endTime = DateTime.Now; string logMessage = string.Format("SCRIPT {0}. Time:[{1:MM/dd/yy HH:mm:ss}] Duration:[{2}]", TaskStatus.ToString(), DateTime.Now, this.Duration.ToString(@"hh\:mm\:ss")); _resultStringBuilder.Append(logMessage); _runspace.Close(); _runspace.Dispose(); return; } }
public static CharacterBot Create(CharacterType charType, PlatFormType platformType, DataTableType dataTableType) { ICharacter character = Character.Create(charType); IPlatform platform = Platform.Create(platformType); IUsingDataTable usingDataTable = UsingDataTable.Create(dataTableType); var characterBot = new CharacterBot(character, platform, usingDataTable); characterBot.Initializer().Wait(); return(characterBot); }
/// <summary>Gets a specific <see cref="DataTable"/> object. /// </summary> /// <param name="tableName">The name of the table.</param> /// <param name="value">The <see cref="DataTable"/> (output).</param> /// <param name="dataTableType">The type of the tables to take into account.</param> /// <returns>A value indicating whether <paramref name="value"/> contains valid data.</returns> public bool TryGetDataTable(string tableName, out DataTable value, DataTableType dataTableType = DataTableType.Single) { return(TryGetDataTable(IdentifierString.Create(tableName), out value, dataTableType)); }