private void AddSpan(DwNumber number) { string[] dmNames = DimensionNumberTypeBiz.Instance.GetEnabledDimensions("12X3"); List <BatchEntity <DwSpan> > batchEntities = new List <BatchEntity <DwSpan> >(dmNames.Length); foreach (string dmName in dmNames) { string[] numberTypes = DimensionNumberTypeBiz.Instance.GetNumberTypes("12X3", dmName); Dictionary <string, int> spanDict = this.DataAccessor.SelectSpansByNumberTypes(number, dmName, numberTypes); DwSpan dwSpan = new DwSpan() { P = number.P }; foreach (string key in spanDict.Keys) { string propertyName = string.Format("{0}Spans", key); dwSpan[propertyName] = spanDict[key]; } string destTableName = ConfigHelper.GetDwSpanTableName(dmName); string[] columnNames = numberTypes.Select(x => x + "Spans").Union(new string[] { "P" }).ToArray(); BatchEntity <DwSpan> batchEntity = new BatchEntity <DwSpan>(dwSpan, destTableName, columnNames); batchEntities.Add(batchEntity); } DwSpanDAO spanDao = new DwSpanDAO(string.Empty, this.DataAccessor.ConnectionString); spanDao.Insert(batchEntities); }
private DwSpan CreateSpan(DwNumber number, Dictionary<string, int> pSpanDict) { DwSpan span = new DwSpan() { P = number.P }; foreach (string key in pSpanDict.Keys) { string propertyName = string.Format("{0}Spans", key); span[propertyName] = pSpanDict[key]; } return span; }
private void Stat(List<DwNumber> numbers, string dbName, string dmName, string[] numberTypes, StreamWriter writer) { Dictionary<string, Dictionary<string, int>> numberTypeLastSpanDict = new Dictionary<string, Dictionary<string, int>>(100000); List<DwSpan> entities = new List<DwSpan>(numbers.Count); foreach (DwNumber number in numbers) { Dictionary<string, int> pSpanDict = GetSpanDict(numberTypeLastSpanDict, dmName, numberTypes, number); DwSpan span = this.CreateSpan(number, pSpanDict); if (writer != null) this.SaveSpanToText(span, writer); else entities.Add(span); } string[] colmnNames = numberTypes.Select(x => x + "Spans").Union(new string[] { "P" }).ToArray(); this.SaveSpanToDB(dbName, dmName, entities, colmnNames); Console.WriteLine("{0} {1} Finished", dbName, dmName); }
private void SaveSpanToText(DwSpan span, StreamWriter writer) { writer.WriteLine(span.ToString()); }
private void SaveSpanToDB(string dbName, string tableName, DwSpan span) { DwSpanDAO spanDao = new DwSpanDAO(ConfigHelper.GetDwSpanTableName(tableName), ConfigHelper.GetConnString(dbName)); spanDao.Insert(span); }