/// <summary> /// Reads variables /// </summary> /// <param name="clsID"></param> /// <returns></returns> internal List <VariableRecordDTO_Create> ReadClassificationVariables(int clsID) { var inputParams = new List <ADO_inputParams>() { new ADO_inputParams() { name = "@ClsID", value = clsID } }; var clsVars = ado.ExecuteReaderProcedure("Data_Variable_Read", inputParams); var dtoList = new List <VariableRecordDTO_Create>(); foreach (var item in clsVars.data) { VariableRecordDTO_Create dto = new VariableRecordDTO_Create(); dto.ClassificationVariableId = ReadInt(item.VrbID); dto.Code = ReadString(item.VrbCode); dto.Value = ReadString(item.VrbValue); dtoList.Add(dto); } return(dtoList); }
/// <summary> /// Recursive function to package the graph of dimensions into a list of DataItem_DTO /// </summary> /// <param name="dto"></param> /// <param name="item"></param> private void populateDataItem(ref DataItem_DTO dto, object[] item) { foreach (var subItem in item) { if (subItem.GetType().IsArray) { populateDataItem(ref dto, (object[])subItem); } else { var v = (DimensionDetail_DTO)subItem; switch (v.dimensionValue.dimType) { case DimensionType.STATISTIC: dto.statistic.Code = v.key; dto.statistic.Value = v.value; break; case DimensionType.PERIOD: dto.period.Code = v.key; dto.period.Value = v.value; break; case DimensionType.CLASSIFICATION: var cls = new ClassificationRecordDTO_Create(); cls.Code = v.dimensionValue.code; cls.Value = v.dimensionValue.value; var vrb = new VariableRecordDTO_Create(); vrb.Code = v.key; vrb.Value = v.value; cls.Variable = new List <VariableRecordDTO_Create>(); cls.Variable.Add(vrb); dto.classifications.Add(cls); break; } } } }