private DwC5CXSpan GetC5CXSpan(Dictionary<string, Dictionary<string, int>> lastSpanDict, DwNumber number, string[] dmNames, DmC5CX cxNumber) { DwC5CXSpan c5cxSpan = new DwC5CXSpan(); c5cxSpan.P = number.P; c5cxSpan.Seq = number.Seq; c5cxSpan.C5 = number.C5; c5cxSpan.CX = cxNumber.CX; foreach (string dmName in dmNames) { if (!lastSpanDict.ContainsKey(dmName)) lastSpanDict.Add(dmName, new Dictionary<string, int>(1000)); string propertyName = dmName + "Spans"; int spans = number.Seq - 1; string dmValue = cxNumber.CX.GetDmValue(2, dmName, 5); if (lastSpanDict[dmName].ContainsKey(dmValue)) { spans = number.Seq - lastSpanDict[dmName][dmValue] - 1; lastSpanDict[dmName][dmValue] = number.Seq; } else { lastSpanDict[dmName].Add(dmValue, number.Seq); } c5cxSpan[propertyName] = spans; } return c5cxSpan; }
public static void C5CX(string name, string type, int length, string output) { List<DmDPC> srcNumbers = null; if (length > 5) { srcNumbers = NumberCache.Instance.GetNumberList(type); } else { srcNumbers = NumberCache.Instance.GetNumberList("C5"); } DmC5CXBiz biz = new DmC5CXBiz(name); List<DmC5CX> entities = new List<DmC5CX>(srcNumbers.Count * 56); foreach (var srcNumber in srcNumbers) { string number = srcNumber.Number.Replace(' ', ','); var cxNumbers = new Combinations<int>(number.ToList(), length > 5 ? 5 : length); foreach (var cxNumber in cxNumbers) { string cx = NumberCache.Instance.GetNumberId(length > 5 ? "C5" : type, cxNumber.Format("D2", ",")); DmC5CX entity = new DmC5CX(); entity.C5 = (length > 5) ? cx : srcNumber.Id; entity.CX = (length > 5) ? srcNumber.Id : cx; entity.C5Number = (length > 5) ? cx.ToString(2, " ") : srcNumber.Number; entity.CXNumber = (length > 5) ? srcNumber.Number : cx.ToString(2, " "); entity.NumberType = type; entities.Add(entity); } } //biz.DataAccessor.Truncate(); biz.DataAccessor.Insert(entities, SqlInsertMethod.SqlBulkCopy); }
public static void C5CX(string name, string type, int length, string output) { List <DmDPC> srcNumbers = null; if (length > 5) { srcNumbers = NumberCache.Instance.GetNumberList(type); } else { srcNumbers = NumberCache.Instance.GetNumberList("C5"); } DmC5CXBiz biz = new DmC5CXBiz(name); List <DmC5CX> entities = new List <DmC5CX>(srcNumbers.Count * 56); foreach (var srcNumber in srcNumbers) { string number = srcNumber.Number.Replace(' ', ','); var cxNumbers = new Combinations <int>(number.ToList(), length > 5 ? 5 : length); foreach (var cxNumber in cxNumbers) { string cx = NumberCache.Instance.GetNumberId(length > 5 ? "C5" : type, cxNumber.Format("D2", ",")); DmC5CX entity = new DmC5CX(); entity.C5 = (length > 5) ? cx : srcNumber.Id; entity.CX = (length > 5) ? srcNumber.Id : cx; entity.C5Number = (length > 5) ? cx.ToString(2, " ") : srcNumber.Number; entity.CXNumber = (length > 5) ? srcNumber.Number : cx.ToString(2, " "); entity.NumberType = type; entities.Add(entity); } } biz.DataAccessor.Insert(entities, SqlInsertMethod.SqlBulkCopy); }
private DwC5CXSpan GetC5CXSpan(Dictionary <string, Dictionary <string, int> > lastSpanDict, DwNumber number, string[] dmNames, DmC5CX cxNumber) { DwC5CXSpan c5cxSpan = new DwC5CXSpan(); c5cxSpan.P = number.P; c5cxSpan.Seq = number.Seq; c5cxSpan.C5 = number.C5; c5cxSpan.CX = cxNumber.CX; foreach (string dmName in dmNames) { if (!lastSpanDict.ContainsKey(dmName)) { lastSpanDict.Add(dmName, new Dictionary <string, int>(1000)); } string propertyName = dmName + "Spans"; int spans = number.Seq - 1; string dmValue = cxNumber.CX.GetDmValue(2, dmName, 5); if (lastSpanDict[dmName].ContainsKey(dmValue)) { spans = number.Seq - lastSpanDict[dmName][dmValue] - 1; lastSpanDict[dmName][dmValue] = number.Seq; } else { lastSpanDict[dmName].Add(dmValue, number.Seq); } c5cxSpan[propertyName] = spans; } return(c5cxSpan); }