private string GetMemberName(HashSetEx <string> members, string name, string altnamebase) { name = name.Replace(" ", "_"); if (altnamebase != null) { altnamebase = altnamebase.Replace(" ", "_"); } if (!members.Contains(name)) { members.Add(name); return(name); } if (altnamebase != null && altnamebase.EndsWith("_ID") && !members.Contains(altnamebase.Substring(0, altnamebase.Length - 2))) { string n = altnamebase.Substring(0, altnamebase.Length - 2); members.Add(n); return(n); } string name0 = name; int idx = 1; while (members.Contains(name)) { name = name0 + idx.ToString(); idx++; } members.Add(name); return(name); }
public async Task SchedulingSimpleTest() { const int TasksCount = 5000; var threadIds = new HashSetEx <int>(); var priorities = new HashSetEx <ThreadPriority>(); var taskWasNotContinuedInline = false; var tasks = new Task[TasksCount]; var rnd = new Random(0); for (int i = 0; i < TasksCount; i++) { tasks[i] = HeavyComputationTaskScheduler.Run( async() => { lock (threadIds) { threadIds.Add(Thread.CurrentThread.ManagedThreadId); priorities.Add(Thread.CurrentThread.Priority); } Thread.SpinWait(100_000 * rnd.Next(3, 6)); await Task.Yield(); lock (threadIds) { threadIds.Add(Thread.CurrentThread.ManagedThreadId); priorities.Add(Thread.CurrentThread.Priority); } await Task.Delay(1); var tid = Thread.CurrentThread.ManagedThreadId; await Task.CompletedTask; if (tid != Thread.CurrentThread.ManagedThreadId) { taskWasNotContinuedInline = true; } lock (threadIds) { threadIds.Add(Thread.CurrentThread.ManagedThreadId); priorities.Add(Thread.CurrentThread.Priority); } Thread.SpinWait(100_000 * rnd.Next(3, 6)); }); } await Task.WhenAll(tasks); //// threadIds.Count.Should().Be(Environment.ProcessorCount); priorities.Count.Should().Be(1); priorities.Single().Should().Be(ThreadPriority.BelowNormal); taskWasNotContinuedInline.Should().BeFalse(); }
public override HashSetEx <string> GetSupportedKeys() { var res = new HashSetEx <string>(); res.Add("Encoding"); res.Add("EncodingStyle"); res.Add("Url"); res.Add("HttpLogin"); res.Add("HttpPassword"); return(res); }
private void ReloadStyleNames() { if (m_enumNamedStyles == null) { return; } try { m_loadingData++; var names = new HashSetEx <string>(); foreach (var es in m_enumNamedStyles(null)) { if (!es.StyleName.IsEmpty()) { names.Add(es.StyleName); } } string text = cbxExisting.Text; int pos = cbxExisting.SelectionStart; cbxExisting.Items.Clear(); foreach (string name in names) { cbxExisting.Items.Add(name); } cbxExisting.Text = text; cbxExisting.SelectionStart = pos; } finally { m_loadingData--; } }
private List <IAbstractObjectStructure> GetEqualObjs() { var grps = new HashSetEx <string>(); var objs = new List <IAbstractObjectStructure>(); foreach (var elem in m_diff.Actions.Elements) { grps.Add(elem.GroupId); } foreach (var obj in m_src.Tables) { if (grps.Contains(obj.GroupId)) { continue; } objs.Add(obj); } foreach (var spec in m_src.GetAllSpecificObjects()) { if (grps.Contains(spec.GroupId)) { continue; } objs.Add(spec); } return(objs); }
private void codeEditorQuery_Leave(object sender, EventArgs e) { try { SaveSource(false); } catch (Exception err) { CurCache.TargetChanged = false; CurCache.SourceModel = null; StdDialog.ShowError(Errors.ExtractImportantException(err).Message); } if (CurCache.SourceModel != null) { var cols = new HashSetEx <string>(); foreach (var col in CurCache.SourceModel.Columns) { if (cols.Contains(col.ColumnName)) { CurCache.TargetChanged = false; CurCache.SourceModel = null; StdDialog.ShowError(Texts.Get("s_datasynerr_duplicate$column", "column", col.ColumnName)); break; } cols.Add(col.ColumnName); } } }
internal void AddAlteredObject(IAbstractObjectStructure obj) { if (obj.GroupId != null) { alteredObjects.Add(obj.GroupId); } }
//protected override void ParseVersion() //{ // m_version = new MySqlServerVersion(m_serverVersion); //} protected void WantShowTable(TableStructure table) { if (m_loadedTables.Contains(table.FullName.Name)) { return; } LoadShowTable(table); m_loadedTables.Add(table.FullName.Name); }
private List <DbDiffAction> GetColumnActions() { var res = new List <DbDiffAction>(); if (m_shownAction == null) { return(res); } if (!(m_shownAction.SourceObject is ITableStructure) || !(m_shownAction.TargetObject is ITableStructure)) { return(res); } var grps = new HashSetEx <string>(); foreach (var elem in m_shownAction.Elements) { if (!(elem.AnyObject is IColumnStructure)) { continue; } res.Add(elem); grps.Add(elem.GroupId); } foreach (var scol in ((ITableStructure)m_shownAction.SourceObject).Columns) { if (grps.Contains(scol.GroupId)) { continue; } grps.Add(scol.GroupId); res.Add(new DbDiffAction(m_diff) { GroupId = scol.GroupId }); } res.Sort((a, b) => ((IColumnStructure)a.AnyObject).ColumnOrder - ((IColumnStructure)b.AnyObject).ColumnOrder); return(res); }
public ObjectGridOverview(IList data) { m_data = new List <object>(data.Count); foreach (var obj in data) { m_data.Add(obj); var type = obj.GetType(); if (m_types.ContainsKey(type)) { continue; } m_types[type] = GetProperties(type); } var cols = new HashSetEx <string>(); foreach (var lst in m_types.Values) { foreach (var def in lst) { cols.Add(def.DisplayName); } } m_columns = new List <string>(cols); m_columns.Sort(CompareCols); foreach (var tp in m_types.Keys) { m_colDefs[tp] = new List <ObjectGridPropertyDef>(); foreach (string col in m_columns) { ObjectGridPropertyDef def = null; foreach (var d in m_types[tp]) { if (d.DisplayName == col) { def = d; break; } } m_colDefs[tp].Add(def); } } }
private static string AllocName(HashSetEx <string> usedNames, ref int lastIndex, string preffered, string prefix) { string name; if (preffered != null) { name = preffered; int idx = 1; while (usedNames.Contains(name)) { name = String.Format("{0}{1}", name, idx++); } } else { name = String.Format("{0}_{1}", prefix, ++lastIndex); } usedNames.Add(name); return(name); }
// [Require(typeof(IClusterNode))] private LoggerWebApp( IIxResolver resolver, IWebHostBuilder webHostBuilder, IJsonLogger logger, ILogReader logReader, LoggerWebAppConfig config) { Log = new ClassJsonLogger <LoggerWebApp>(logger); Log.Info(_ => _("Starting Asp.Net core...")); _webHost = webHostBuilder // Should be removed after adoption IndirectX to Asp.Net core. .ConfigureServices( x => x .AddHttpRequestScopeService() .AddScopedHttpContextAccessor() .AddSingleton(new Tuple <IJsonLogger, IIxResolver>(Log, resolver)) .AddSingleton <ILogReader>(logReader) .AddSingleton(config)) .UseStartup <LoggerWebAppStartup>() .ConfigureJsonFormatters(JsonDefaults.RestRpcSerializerSource.Settings) .Build(); _webHost.Start(); var addressesFeature = _webHost.ServerFeatures.Get <IServerAddressesFeature>(); var addresses = new HashSetEx <string>(); foreach (string addressesFeatureAddress in addressesFeature.Addresses) { addresses.Add(addressesFeatureAddress); Log.Info( addressesFeatureAddress, (_, addr) => _($"Now listening on: {addr}").Data(new { ListenAddress = addr })); } HostingUrls = addresses; }
//public virtual DbTypeBase CreateCommonType(ColumnInfo column) //{ // return new DbTypeString(); //} protected virtual HashSetEx <string> LoadKeywords() { var res = new HashSetEx <string>(); res.Add("SELECT"); res.Add("CREATE"); res.Add("UPDATE"); res.Add("DELETE"); res.Add("DROP"); res.Add("ALTER"); res.Add("TABLE"); res.Add("VIEW"); res.Add("FROM"); res.Add("WHERE"); res.Add("GROUP"); res.Add("ORDER"); res.Add("BY"); res.Add("ASC"); res.Add("DESC"); res.Add("HAVING"); res.Add("INTO"); res.Add("ASC"); res.Add("LEFT"); res.Add("RIGHT"); res.Add("INNER"); res.Add("OUTER"); res.Add("CROSS"); res.Add("NATURAL"); res.Add("JOIN"); res.Add("ON"); res.Add("DISTINCT"); res.Add("ALL"); res.Add("ANY"); return(res); }
protected virtual HashSetEx<string> LoadKeywords() { var res = new HashSetEx<string>(); res.Add("SELECT"); res.Add("CREATE"); res.Add("UPDATE"); res.Add("DELETE"); res.Add("DROP"); res.Add("ALTER"); res.Add("TABLE"); res.Add("VIEW"); res.Add("FROM"); res.Add("WHERE"); res.Add("GROUP"); res.Add("ORDER"); res.Add("BY"); res.Add("ASC"); res.Add("DESC"); res.Add("HAVING"); res.Add("INTO"); res.Add("ASC"); res.Add("LEFT"); res.Add("RIGHT"); res.Add("INNER"); res.Add("OUTER"); res.Add("CROSS"); res.Add("NATURAL"); res.Add("JOIN"); res.Add("ON"); res.Add("DISTINCT"); res.Add("ALL"); res.Add("ANY"); return res; }
public override void WriteStructureAfterData(IDatabaseStructure db) { HashSetEx <string> usedTypes = new HashSetEx <string> { "String", "Int", "DateTime" }; Dictionary <NameWithSchema, string> tableTypes = new Dictionary <NameWithSchema, string>(); foreach (var tbl in db.Tables) { tableTypes[tbl.FullName] = GetMemberName(usedTypes, tbl.FullName.Name, null); } ISqlDialect dialect = m_dialect; using (XmlWriter xw = XmlWriter.Create(GetWorkingFileName(), new XmlWriterSettings { Indent = true })) { string XMLNS = "http://schemas.microsoft.com/linqtosql/dbml/2007"; xw.WriteStartDocument(); xw.WriteStartElement("Database", XMLNS); xw.WriteAttributeString("xmlns", XMLNS); xw.WriteAttributeString("Name", DatabaseName); xw.WriteAttributeString("Class", ClassName); xw.WriteAttributeString("ContextNamespace", ContextNamespace); xw.WriteAttributeString("EntityNamespace", EntityNamespace); foreach (var tbl in db.Tables) { HashSetEx <string> tblmembers = new HashSetEx <string>(); string tblmember = tbl.FullName.Name; tblmembers.Add(tblmember); xw.WriteStartElement("Table"); xw.WriteAttributeString("Name", tbl.FullName.ToString()); xw.WriteAttributeString("Member", tblmember); xw.WriteStartElement("Type"); xw.WriteAttributeString("Name", tableTypes[tbl.FullName]); IPrimaryKey pk = tbl.FindConstraint <IPrimaryKey>(); foreach (var col in tbl.Columns) { string colmember = GetMemberName(tblmembers, col.ColumnName, null); tblmembers.Add(colmember); xw.WriteStartElement("Column"); if (col.ColumnName != colmember) { xw.WriteAttributeString("Member", colmember); } if (pk != null && pk.Columns.Any(c => c.ColumnName == col.ColumnName)) { xw.WriteAttributeString("IsPrimaryKey", "true"); } xw.WriteAttributeString("Name", col.ColumnName); xw.WriteAttributeString("CanBeNull", col.IsNullable ? "true" : "false"); xw.WriteAttributeString("Type", GetLinqType(col.DataType)); xw.WriteAttributeString("DbType", dialect.GenericTypeToSpecific(col.DataType).ToString()); if (col.DataType.IsAutoIncrement()) { xw.WriteAttributeString("IsDbGenerated", "true"); } xw.WriteEndElement(); // Column } foreach (var fk in tbl.GetConstraints <IForeignKey>()) { if (fk.Columns.Count != 1) { continue; } xw.WriteStartElement("Association"); xw.WriteAttributeString("Name", fk.Name); xw.WriteAttributeString("Member", GetMemberName(tblmembers, fk.PrimaryKeyTable.Name, fk.Columns[0].ColumnName)); xw.WriteAttributeString("Type", tableTypes[fk.PrimaryKeyTable]); xw.WriteAttributeString("ThisKey", fk.Columns[0].ColumnName); xw.WriteAttributeString("OtherKey", fk.PrimaryKeyColumns[0].ColumnName); xw.WriteAttributeString("IsForeignKey", "true"); xw.WriteEndElement(); // Association } xw.WriteEndElement(); // Type xw.WriteEndElement(); // Table } xw.WriteEndElement(); // Database xw.WriteEndDocument(); } }