private void frmSelectValueDomain_Load(object sender, EventArgs e)
        {
            try
            {
                CommonItem.WaitOn();
                BaseArtefactInfo[] vlList;

                SelectedValueDomain = null;

                VTLInt_Service.ServiceClient VTL_service = VTLInt_ServiceManager.GetClient(CommonItem.CurrentSettings.InteractionWebService);
                vlList = VTL_service.GetValueDomains();


                ValuDomainListBox.Items.Clear();

                if (vlList == null)
                {
                    MessageBox.Show("There are not ValueDomain available into the database. Please, import the metadata from the metadata repository. (Metadata import)", "Empty", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                foreach (BaseArtefactInfo aInfo in vlList)
                {
                    ValuDomainListBox.Items.Add(aInfo);
                }

                CommonItem.WaitOff();
            }
            catch (Exception ex)
            {
                CommonItem.ErrManger.ErrorManagement(ex, false, this);
            }
        }
        public List <ValueDomainInfo> GetValueDomain()
        {
            string queryString = VTLSqlStatement.ValueDomain;

            IDataReader reader = _provider.ExecuteReader(queryString);

            if (reader == null)
            {
                throw new Exception("Database connection failed");
            }

            var posIdVD = reader.GetOrdinal("ARTEFACT_ID");
            var posSdmxId = reader.GetOrdinal("SDMX_ID");
            var posAgency = reader.GetOrdinal("SDMX_AGENCY");
            var posVersion = reader.GetOrdinal("SDMX_VERSION");
            var posLocale = reader.GetOrdinal("LANGUAGE");
            var posLabel = reader.GetOrdinal("NAME");
            var posDataType = reader.GetOrdinal("DATA_TYPE");
            var posIsEnumerated = reader.GetOrdinal("IS_ENUMERATED");
            var posValueRestr = reader.GetOrdinal("VALUE_RESTRICTION");
            var posCreationType = reader.GetOrdinal("CREATION_TYPE");
            List <ValueDomainInfo> l = new List <ValueDomainInfo>();
            string vtlOld = String.Empty;
            string vtlNew = String.Empty;
            string locale, label, vtlId, sdmxId, sdmxAg, sdmxVer, dataType, valueRetriction;
            int    creation_Type;
            int    isEnumerated;
            bool   bFirst             = true;
            List <LocalizedValue> lv  = null;
            ValueDomainInfo       vdi = null;;

            try
            {
                while (reader.Read())
                {
                    if (bFirst)
                    {
                        bFirst          = false;
                        vtlId           = reader.GetString(posIdVD).Trim();
                        sdmxId          = reader.GetString(posSdmxId).Trim();
                        sdmxAg          = reader.GetString(posAgency).Trim();
                        sdmxVer         = reader.GetString(posVersion).Trim();
                        dataType        = Util.SafeGetString(reader, posDataType);
                        isEnumerated    = reader.GetInt32(posIsEnumerated);
                        valueRetriction = Util.SafeGetString(reader, posValueRestr);
                        creation_Type   = reader.GetInt32(posCreationType);

                        locale = reader.GetString(posLocale).Trim();
                        label  = reader.GetString(posLabel).Trim();

                        vdi = new ValueDomainInfo {
                            vtlId = vtlId, sdmxId = sdmxId, sdmxAgency = sdmxAg, sdmxVersion = sdmxVer, dataSource = "VTL", isEnumerated = Util.IntToBool(isEnumerated), data_type = dataType, value_restriction = valueRetriction, creationType = creation_Type
                        };

                        lv = new List <LocalizedValue>();

                        lv.Add(new LocalizedValue {
                            lang = locale, value = label
                        });

                        vtlOld = vtlId;
                    }
                    else
                    {
                        vtlId = reader.GetString(posIdVD).TrimEnd();

                        if (!String.Equals(vtlOld, vtlId))
                        {
                            vdi.name = lv;
                            l.Add(vdi);

                            sdmxId   = reader.GetString(posSdmxId).Trim();
                            sdmxAg   = reader.GetString(posAgency).Trim();
                            sdmxVer  = reader.GetString(posVersion).Trim();
                            dataType = Util.SafeGetString(reader, posDataType);

                            isEnumerated    = reader.GetInt32(posIsEnumerated);
                            valueRetriction = Util.SafeGetString(reader, posValueRestr);
                            creation_Type   = reader.GetInt32(posCreationType);

                            vdi = new ValueDomainInfo {
                                vtlId = vtlId, sdmxId = sdmxId, sdmxAgency = sdmxAg, sdmxVersion = sdmxVer, dataSource = "VTL", isEnumerated = Util.IntToBool(isEnumerated), data_type = dataType, value_restriction = valueRetriction, creationType = creation_Type
                            };
                            lv     = new List <LocalizedValue>();
                            vtlOld = vtlId;
                        }

                        locale = reader.GetString(posLocale).Trim();
                        label  = reader.GetString(posLabel).Trim();

                        lv.Add(new LocalizedValue {
                            lang = locale, value = label
                        });
                    }
                }

                if (lv == null)
                {
                    return(null);
                }

                vdi.name = lv;
                l.Add(vdi);

                return(l);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                reader.Close();
            }
        }
 private void OkButton_Click(object sender, EventArgs e)
 {
     SelectedValueDomain = (ValueDomainInfo)ValuDomainListBox.SelectedItem;
     DialogResult        = DialogResult.OK;
     this.Close();
 }