/// <summary> /// Createws the Frequency record in the database /// </summary> /// <param name="dto"></param> /// <param name="matrixId"></param> /// <returns></returns> internal int CreateFrequencyRecord(FrequencyRecordDTO_Create dto, int matrixId) { var inputParams = new List <ADO_inputParams>() { new ADO_inputParams() { name = "@FrqValue", value = dto.Value }, new ADO_inputParams() { name = "@FrqCode", value = dto.Code }, new ADO_inputParams() { name = "@FrqMtrId", value = matrixId }, }; var returnParam = new ADO_returnParam() { name = "@ReturnVal", value = 0 }; ado.ExecuteNonQueryProcedure("Data_Frequency_Create", inputParams, ref returnParam); return((int)returnParam.value); }
/// <summary> /// Creates a frequency object and persists it to the database via bulk upload /// </summary> /// <param name="frequency"></param> /// <param name="matrixId"></param> /// <returns></returns> private int CreateFrequency(FrequencyRecordDTO_Create frequency, int matrixId) { Matrix_ADO matrixAdo = new Data.Matrix_ADO(Ado); frequency.FrequencyId = matrixAdo.CreateFrequencyRecord(frequency, matrixId); DataTable dtPeriods = new DataTable(); dtPeriods.Columns.Add("PRD_CODE"); dtPeriods.Columns.Add("PRD_VALUE"); dtPeriods.Columns.Add("PRD_FRQ_ID"); foreach (var p in frequency.Period) { DataRow dr = dtPeriods.NewRow(); dr["PRD_CODE"] = p.Code; dr["PRD_VALUE"] = p.Value; dr["PRD_FRQ_ID"] = frequency.FrequencyId; dtPeriods.Rows.Add(dr); } matrixAdo.CreatePeriodRecordBulk(dtPeriods); //read the period id's for the uploaded periods List <dynamic> periodData = matrixAdo.ReadPeriodsByMatrixId(matrixId).ToList(); foreach (var p in frequency.Period) { p.FrequencyPeriodId = periodData.Where(x => x.PrdCode == p.Code).FirstOrDefault().PrdId; } return(frequency.FrequencyId); }
/// <summary> /// /// </summary> /// <param name="dim"></param> public Dimension_DTO(dynamic dim) { if (dim.FrqCode != null) { this.FrqCode = dim.FrqCode; } if (dim.FrqValue != null) { this.FrqValue = dim.FrqValue; } if (dim.Frequency != null) { Frequency = new FrequencyRecordDTO_Create(); if (dim.Frequency.FrqCode != null) { this.FrqCode = dim.Frequency.FrqCode; Frequency.Code = dim.Frequency.FrqCode; } if (dim.Frequency.FrqValue != null) { this.FrqValue = dim.Frequency.FrqValue; Frequency.Value = dim.Frequency.FrqValue; } if (dim.Frequency.Period != null) { Frequency.Period = new List <PeriodRecordDTO_Create>(); foreach (dynamic per in dim.Frequency.Period) { PeriodRecordDTO_Create prd = new PeriodRecordDTO_Create(); if (per.PrdCode != null) { prd.Code = per.PrdCode; } if (per.PrdValue != null) { prd.Value = prd.Code; } Frequency.Period.Add(prd); } } } //Sometimes Period as a collection of periods may exist at the top level - e.g. PxFileBuild_API.Update if (dim.Period != null) { Periods = new List <PeriodRecordDTO_Create>(); foreach (dynamic per in dim.Period) { PeriodRecordDTO_Create prd = new PeriodRecordDTO_Create(); if (per.PrdCode != null) { prd.Code = per.PrdCode; } if (per.PrdValue != null) { prd.Value = prd.Code; } Periods.Add(prd); } } if (dim.StatisticLabel != null) { this.StatisticLabel = dim.StatisticLabel; } if (dim.CprValue != null) { this.CprValue = dim.CprValue; } if (dim.LngIsoCode != null) { this.LngIsoCode = dim.LngIsoCode; } if (dim.MtrNote != null) { this.MtrNote = dim.MtrNote; } if (dim.MtrTitle != null) { this.MtrTitle = dim.MtrTitle; } if (dim.Classification != null) { this.Classifications = new List <ClassificationRecordDTO_Create>(); foreach (var pCls in dim.Classification) { ClassificationRecordDTO_Create cls = new ClassificationRecordDTO_Create(pCls); this.Classifications.Add(cls); } } }