private void HandleLevels(AbsRowData rowdata, SourceMappingsElement item, List <KeyValuePair <T, T> > retlist) { for (var i = 0; i < item.Labels.Length; i++) { var dimension = _schema.Dimensions[item.Labels[i]]; if (dimension.TypeOf == DimensionType.Date) { var dtDimension = (DimensionDateTime <T>)dimension; var value = ((DateTime?)rowdata[item.Field]).Value; T segment = DateTimeMemberGenerator.TransformToDateId <T>(value, dtDimension.DateLevel); KeyValuePair <T, T> pair = new KeyValuePair <T, T>(dimension.ID, segment); retlist.Add(pair); if (!dtDimension.Members.ContainsKey(segment)) { dtDimension.Members.Add(new Member <T> { ID = segment, Name = DateTimeMemberGenerator.GetLevelName(value, dtDimension.DateLevel) }); } } } }
public KeyValuePair <T, T>[] GetDimensions(AbsRowData rowdata) { List <KeyValuePair <T, T> > retlist = new List <KeyValuePair <T, T> >(); foreach (SourceMappingsElement item in _config.Fields) { if (rowdata[item.Field] == null) { continue; } if (!string.IsNullOrEmpty(item.Dimension)) { HandleSimpleDimension(rowdata, item, retlist); } else if (item.Labels?.Length > 0) { HandleLevels(rowdata, item, retlist); } } retlist.Sort(ComparePairs); return(retlist.ToArray()); }
private void HandleSimpleDimension(AbsRowData rowdata, SourceMappingsElement item, List <KeyValuePair <T, T> > retlist) { Dimension <T> dimension = _schema.Dimensions[item.Dimension]; T segment = (T)Convert.ChangeType(rowdata[item.Field], typeof(T)); if (dimension.Members.ContainsKey(segment)) { KeyValuePair <T, T> pair = new KeyValuePair <T, T>(dimension.ID, segment); retlist.Add(pair); } }
public MeasureValuesCollection <T> GetMeasureData(AbsRowData rowdata) { MeasureValuesCollection <T> vars = new MeasureValuesCollection <T>(); foreach (var item in _schema.Measures) { if (rowdata[item.Config.ValueFieldName] != null) { vars.Add(item.ID, rowdata[item.Config.ValueFieldName]); } } return(vars); }