/// <summary> /// Get_Attributes /// </summary> /// <param name="idset">ID of Structure</param> /// <returns>return list of attributes form specific structure</returns> public static List<ISTAT.ENTITY.Attribute> Get_Attributes(int idset) { DataWrapper dtw = new DataWrapper(DataWrapper.ECONNECTIONTYPE.SQL, DataAccess.SQLConnString_DB.ConnectionString); if (dtw.TestConnection()) { dtw.DBConnection.Open(); try { //////////////////////// List<ISTAT.ENTITY.Attribute> atts = new List<ISTAT.ENTITY.Attribute>(); System.Data.IDbCommand cmd = dtw.DBConnection.CreateCommand(); cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "dbo.proc_GET_ATTRIBUTES"; System.Data.IDbDataParameter _idset = cmd.CreateParameter(); _idset.DbType = System.Data.DbType.Int32; _idset.ParameterName = "IDSet"; _idset.Value = idset; cmd.Parameters.Add(_idset); System.Data.IDbDataParameter _twoLetterISO = cmd.CreateParameter(); _twoLetterISO.DbType = System.Data.DbType.String; _twoLetterISO.ParameterName = "TwoLetterISO"; _twoLetterISO.Value = DataAccess.TwoLetterIso; cmd.Parameters.Add(_twoLetterISO); System.Data.IDataReader _reader = cmd.ExecuteReader(); while (_reader.Read()) { ISTAT.ENTITY.Attribute att = new ISTAT.ENTITY.Attribute(); att.Id = _reader.GetString(_reader.GetOrdinal("Code")); att.IsCodelist = _reader.GetBoolean(_reader.GetOrdinal("IsCodelist")); List<TextTypeWrapper> names = DataAccess.Get_LocalisedStrings(_reader.GetInt32(_reader.GetOrdinal("IDAtt")), "CatAtt"); att.Names.Add(names[TextTypeWrapper.GetIndexLocale(names, DataAccess.TwoLetterIso)]); atts.Add(att); } _reader.Close(); foreach (ISTAT.ENTITY.Attribute att in atts) { System.Data.IDbCommand cmd_attach = dtw.DBConnection.CreateCommand(); cmd_attach.CommandType = System.Data.CommandType.StoredProcedure; cmd_attach.CommandText = "dbo.proc_GET_ATT_ATTACH"; System.Data.IDbDataParameter _idSetAttach = cmd_attach.CreateParameter(); _idSetAttach.DbType = System.Data.DbType.Int32; _idSetAttach.ParameterName = "IDSet"; _idSetAttach.Value = idset; cmd_attach.Parameters.Add(_idSetAttach); System.Data.IDbDataParameter _codeAttAttach = cmd_attach.CreateParameter(); _codeAttAttach.DbType = System.Data.DbType.String; _codeAttAttach.ParameterName = "AttCode"; _codeAttAttach.Value = att.Id; cmd_attach.Parameters.Add(_codeAttAttach); System.Data.IDataReader _readerAttach = cmd_attach.ExecuteReader(); bool isTimeDimension = false; att.DimensionReferences = new List<string>(); while (_readerAttach.Read()) { string dimCode = _readerAttach.GetString(_readerAttach.GetOrdinal("Code")); isTimeDimension = _readerAttach.GetBoolean(_readerAttach.GetOrdinal("IsTimeSeriesDim")); att.DimensionReferences.Add(dimCode); } _readerAttach.Close(); if (att.DimensionReferences.Count == 0) { att.AttachmentLevel = Org.Sdmxsource.Sdmx.Api.Constants.AttributeAttachmentLevel.DataSet.ToString(); } else if (att.DimensionReferences.Count == 1 && isTimeDimension) { att.AttachmentLevel = Org.Sdmxsource.Sdmx.Api.Constants.AttributeAttachmentLevel.Observation.ToString(); } else { att.AttachmentLevel = Org.Sdmxsource.Sdmx.Api.Constants.AttributeAttachmentLevel.DimensionGroup.ToString(); } } //////////////////////// dtw.DBConnection.Close(); return atts; } catch { dtw.DBConnection.Close(); return null; } } return null; }
public DataStructure Get_DSD(ISTAT.ENTITY.SDMXIdentifier sdmxIdentity) { DataStructure _ds = new ISTAT.ENTITY.DataStructure(); Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDataStructureObject dsd = ISTAT.DBDAL.DataSDMX.GetDSD(sdmxIdentity); #region Get Dimension List<Dimension> dims = new List<Dimension>(); foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDimension dim in dsd.DimensionList.Dimensions) { Dimension _dim = new Dimension(dim); dims.Add(_dim); } #endregion #region Get Attribute List<ISTAT.ENTITY.Attribute> atts = new List<ISTAT.ENTITY.Attribute>(); foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IAttributeObject att in dsd.Attributes) { ISTAT.ENTITY.Attribute _att = new ISTAT.ENTITY.Attribute(att); atts.Add(_att); } #endregion _ds.Dimensions = dims; _ds.Attributes = atts; _ds.DSDIdentifier = sdmxIdentity; _ds.IDDsd = ISTAT.DBDAL.DataSDMX.Get_IDDsd(sdmxIdentity); _ds.IsFinal = dsd.IsFinal.IsTrue; this._ds = _ds; return _ds; }
public DataStructure Get_DSD(ISTAT.ENTITY.SDMXIdentifier sdmxIdentity) { DataStructure _ds = new ISTAT.ENTITY.DataStructure(); Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDataStructureObject dsd = ISTAT.DBDAL.DataSDMX.GetDSD(sdmxIdentity, false); #region Get Dimension List<Dimension> dims = new List<Dimension>(); foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IDimension dim in dsd.DimensionList.Dimensions) { Dimension _dim = new Dimension(dim); dims.Add(_dim); } #endregion #region Get Attribute List<ISTAT.ENTITY.Attribute> atts = new List<ISTAT.ENTITY.Attribute>(); foreach (Org.Sdmxsource.Sdmx.Api.Model.Objects.DataStructure.IAttributeObject att in dsd.Attributes) { ISTAT.ENTITY.Attribute _att = new ISTAT.ENTITY.Attribute(att); if (att.AttachmentGroup != null) { var group = dsd.Groups.FirstOrDefault(e => e.Id == att.AttachmentGroup); if (group != null) _att.DimensionReferences = new List<string>(group.DimensionRefs); } atts.Add(_att); } #endregion _ds.Dimensions = dims; _ds.Attributes = atts; _ds.DSDIdentifier = sdmxIdentity; _ds.IDDsd = ISTAT.DBDAL.DataSDMX.Get_IDDsd(sdmxIdentity); _ds.IsFinal = dsd.IsFinal.IsTrue; this._ds = _ds; return _ds; }