private void Stat(object dbName) { string name = dbName.ToString(); DwPeroidSpanBiz biz = new DwPeroidSpanBiz(name, "C2"); List <DwPeroidSpan> allNumbers = biz.GetAll("NumberId", "P", "Spans"); string[] numberIds = NumberBiz.Instance.C2.Keys.ToArray(); string fileName = string.Format("Dw{0}_{1}.txt", name, "C2_PeroidSpanLimit"); string filePath = string.Format("{0}\\{1}", this._rootPath, fileName); StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8); foreach (string numberId in numberIds) { var numbers = allNumbers .Where(x => x.NumberId.Trim().Equals(numberId) && x.Spans > -1) .OrderBy(x => x.P) .ToList(); if (numbers.Count == 0) { continue; } int tAvg = Convert.ToInt32(numbers.Average(x => x.Spans)); for (int i = 0; i < numbers.Count; i++) { for (int n = 3; n < numbers.Count; n++) { if (i + n >= numbers.Count) { break; } var avg = Convert.ToInt32(numbers.GetRange(i, n).Average(x => x.Spans)); int absAvg = Convert.ToInt32(Math.Abs(tAvg - avg)); if (absAvg > 1) { continue; } string line = string.Format("{0},{1}", numbers[i].NumberId, n); writer.WriteLine(line); break; } } } writer.Close(); Console.WriteLine("{0},C2PeroidSpanLimit,Finished", dbName); }
private void Stat(object dbName) { string name = dbName.ToString(); DwPeroidSpanBiz biz = new DwPeroidSpanBiz(name, "A5"); List<DwPeroidSpan> allNumbers = biz.GetAll("NumberId", "P", "Spans"); string[] numberIds = NumberBiz.Instance.A5.Keys.ToArray(); string fileName = string.Format("Dw{0}_{1}.txt", name, "A5_PeroidSpanLimit"); string filePath = string.Format("{0}\\{1}", this._rootPath, fileName); StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8); foreach (string numberId in numberIds) { var numbers = allNumbers .Where(x => x.NumberId.Trim().Equals(numberId) && x.Spans > -1) .OrderBy(x => x.P) .ToList(); if (numbers.Count == 0) continue; int tAvg = Convert.ToInt32(numbers.Average(x => x.Spans)); for (int i = 0; i < numbers.Count; i++) { for (int n = 3; n < numbers.Count; n++) { if (i + n >= numbers.Count) break; var avg = Convert.ToInt32(numbers.GetRange(i, n).Average(x => x.Spans)); int absAvg = Convert.ToInt32(Math.Abs(tAvg - avg)); if (absAvg > 1) continue; string line = string.Format("{0},{1}", numbers[i].NumberId, n); writer.WriteLine(line); break; } } } writer.Close(); Console.WriteLine("{0},A5PeroidSpanLimit,Finished", dbName); }