private ISdmxObjects GetSdmxObjects()
        {
            WSModel wsModel = new WSModel();
            ISdmxObjects sdmxInput;
            ISdmxObjects sdmxFinal;
            IMutableObjects mutableObj = new MutableObjectsImpl();
            LocalizedUtils localizedUtils = new LocalizedUtils(Utils.LocalizedCulture);

            sdmxFinal = new SdmxObjectsImpl();

            try
            {
                sdmxInput = wsModel.GetDataFlow(new ArtefactIdentity(SearchBar1.ucID, SearchBar1.ucAgency, SearchBar1.ucVersion, ucIsFinalArtefact), true, true);

                if (SearchBar1.ucName.Trim() != string.Empty)
                {

                    foreach (IDataflowObject df in sdmxInput.Dataflows)
                    {
                        if (localizedUtils.GetNameableName(df).Contains(SearchBar1.ucName.Trim()))
                            mutableObj.AddDataflow(df.MutableInstance);

                    }
                    sdmxFinal = mutableObj.ImmutableObjects;

                }
                else
                    sdmxFinal = sdmxInput;
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return sdmxFinal;
        }
        private ISdmxObjects GetSdmxObjects()
        {
            ISdmxObjects sdmxObjects = null;
            WSModel dal = new WSModel();

            switch (ucArtefactType)
            {
                case "CodeList":
                    sdmxObjects = dal.GetCodeList(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "ConceptScheme":
                    sdmxObjects = dal.GetConceptScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "CategoryScheme":
                    sdmxObjects = dal.GetCategoryScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "DataFlow":
                    sdmxObjects = dal.GetDataFlow(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), false, false);
                    break;
                case "KeyFamily":
                    sdmxObjects = dal.GetDataStructure(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "Categorization":    // Aggiunto per il recupero di una Categorization   ------ Fabrizio Alonzi
                    sdmxObjects = dal.GetCategorisation(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), false, false);
                    break;
                case "AgencyScheme":
                    sdmxObjects = dal.GetAgencyScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "DataProviderScheme":
                    sdmxObjects = dal.GetDataProviderScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "DataConsumerScheme":
                    sdmxObjects = dal.GetDataConsumerScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "OrganizationUnitScheme":
                    sdmxObjects = dal.GetOrganisationUnitScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "ContentConstraint":
                    sdmxObjects = dal.GetContentConstraint(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "StructureSet":
                    sdmxObjects = dal.GetStructureSet(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                case "Hcl":
                    sdmxObjects = dal.GetHcl(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), true, false);
                    break;
                default:
                    return null;
            }

            return sdmxObjects;
        }
        private ISdmxObjects GetSdmxObjects()
        {
            ISdmxObjects sdmxObjects = null;
            WSModel dal = new WSModel();

            switch (ucArtefactType.ToUpper())
            {
                case "CODELIST":
                    sdmxObjects = dal.GetCodeList(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked,false);
                    break;
                case "CONCEPTSCHEME":
                    sdmxObjects = dal.GetConceptScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "CATEGORYSCHEME":
                    sdmxObjects = dal.GetCategoryScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DATAFLOW":
                    sdmxObjects = dal.GetDataFlow(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "KEYFAMILY":

                        if ( chkExportCodeListAndConcept.Checked )
                        {
                            sdmxObjects = dal.GetDataStructureWithRef(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                        }
                        else
                        {
                            sdmxObjects = dal.GetDataStructure(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                        }
                    break;
                case "CATEGORIZATION":
                    sdmxObjects = dal.GetCategorisation(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "AGENCYSCHEME":
                    sdmxObjects = dal.GetAgencyScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DATAPROVIDERSCHEME":
                    sdmxObjects = dal.GetDataProviderScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DATACONSUMERSCHEME":
                    sdmxObjects = dal.GetDataConsumerScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "ORGANIZATIONUNITSCHEME":
                    sdmxObjects = dal.GetOrganisationUnitScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "CONTENTCONSTRAINT":
                    sdmxObjects = dal.GetContentConstraint(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "STRUCTURESET":
                    sdmxObjects = dal.GetStructureSet(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "HCL":
                    sdmxObjects = dal.GetHcl(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;

                default:
                    return null;
            }

            return sdmxObjects;
        }
Ejemplo n.º 4
0
        private ISdmxObjects GetSdmxObjects()
        {
            ISdmxObjects sdmxObjects = null;
            WSModel dal = new WSModel();

            switch (ucArtefactType)
            {
                case "CodeList":
                    sdmxObjects = dal.GetCodeList(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked,false);
                    break;
                case "ConceptScheme":
                    sdmxObjects = dal.GetConceptScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "CategoryScheme":
                    sdmxObjects = dal.GetCategoryScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DataFlow":
                    sdmxObjects = dal.GetDataFlow(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "KeyFamily":

                        if ( chkExportCodeListAndConcept.Checked )
                        {
                            sdmxObjects = dal.GetDataStructureWithRef(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                        }
                        else
                        {
                            sdmxObjects = dal.GetDataStructure(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                        }
                    break;
                case "Categorization":
                    sdmxObjects = dal.GetCategorisation(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "AgencyScheme":
                    sdmxObjects = dal.GetAgencyScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DataProviderScheme":
                    sdmxObjects = dal.GetDataProviderScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "DataConsumerScheme":
                    sdmxObjects = dal.GetDataConsumerScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "OrganizationUnitScheme":
                    sdmxObjects = dal.GetOrganisationUnitScheme(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "ContentConstraint":
                    sdmxObjects = dal.GetContentConstraint(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "StructureSet":
                    sdmxObjects = dal.GetStructureSet(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;
                case "Hcl":
                    sdmxObjects = dal.GetHcl(new ISTAT.Entity.ArtefactIdentity(ucID, ucAgency, ucVersion), chkStub.Checked, false);
                    break;

                default:
                    return null;
            }

            return sdmxObjects;
        }
 protected void structuresGrid_PageIndexChanging(object sender, GridViewPageEventArgs e)
 {
     structuresGrid.PageSize = 12;
     structuresGrid.PageIndex = e.NewPageIndex;
     WSModel wsModel = new WSModel();
     ISdmxObjects sdmxInput;
     switch (ddlAvailableStructures.Text)
     {
         case "CODELIST":
             sdmxInput = wsModel.GetCodeList(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<ICodelistObject> codelist = sdmxInput.Codelists.ToList();
             structuresGrid.DataSource = codelist;
             break;
         case "CONCEPT_SCHEME":
             sdmxInput = wsModel.GetConceptScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IConceptSchemeObject> conceptScheme = sdmxInput.ConceptSchemes.ToList();
             structuresGrid.DataSource = conceptScheme;
             break;
         case "CATEGORY_SCHEME":
             sdmxInput = wsModel.GetCategoryScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<ICategorySchemeObject> categorySchemeFound = sdmxInput.CategorySchemes.ToList();
             structuresGrid.DataSource = categorySchemeFound;
             break;
         case "AGENCY_SCHEME":
             sdmxInput = wsModel.GetAgencyScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IAgencyScheme> agencyScheme = sdmxInput.AgenciesSchemes.ToList();
             structuresGrid.DataSource = agencyScheme;
             break;
         case "DATA_PROVIDER_SCHEME":
             sdmxInput = wsModel.GetDataProviderScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IDataProviderScheme> dataProviderScheme = sdmxInput.DataProviderSchemes.ToList();
             structuresGrid.DataSource = dataProviderScheme;
             break;
         case "DATA_CONSUMER_SCHEME":
             sdmxInput = wsModel.GetDataConsumerScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IDataConsumerScheme> dataConsumerScheme = sdmxInput.DataConsumerSchemes.ToList();
             structuresGrid.DataSource = dataConsumerScheme;
             break;
         case "ORGANIZATION_UNIT_SCHEME":
             sdmxInput = wsModel.GetOrganisationUnitScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IOrganisationUnitSchemeObject> organizationUnitScheme = sdmxInput.OrganisationUnitSchemes.ToList();
             structuresGrid.DataSource = organizationUnitScheme;
             break;
         case "KEY_FAMILY":
             sdmxInput = wsModel.GetDataStructure(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IDataStructureObject> dataStructure = sdmxInput.DataStructures.ToList();
             structuresGrid.DataSource = dataStructure;
             break;
         case "DATAFLOW":
             sdmxInput = wsModel.GetDataFlow(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IDataflowObject> dataFlow = sdmxInput.Dataflows.ToList();
             structuresGrid.DataSource = dataFlow;
             break;
         case "STRUCTURE_SET":
             sdmxInput = wsModel.GetStructureSet(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IStructureSetObject> structureSet = sdmxInput.StructureSets.ToList();
             structuresGrid.DataSource = structureSet;
             break;
         case "CONTENT_CONSTRAINT":
             sdmxInput = wsModel.GetContentConstraint(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
             List<IContentConstraintObject> contentConstraint = sdmxInput.ContentConstraintObjects.ToList();
             structuresGrid.DataSource = contentConstraint;
             break;
     }
     structuresGrid.DataBind();
     Utils.AppendScript("openP('gridDiv',650);");
     Utils.AppendScript("location.href= '#structure';");
 }
        private void SetStructureDetailPanel()
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    string[] skipElements = { "CATEGORIZATION" };
                    Utils.PopulateCmbArtefacts(ddlAvailableStructures, skipElements);
                    WSModel wsModel = new WSModel();
                    ISdmxObjects sdmxInput = wsModel.GetCategoryScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, true);

                    foreach (ICategorySchemeObject cs in sdmxInput.CategorySchemes)
                    {
                        if (cs.IsFinal.IsTrue)
                        {
                            ddlCategorySchemeList.Items.Add(new ListItem(string.Format("{0}-{1}-{2}", cs.Id.ToUpper(), cs.AgencyId.ToUpper(), cs.Version), string.Format("{0}-{1}-{2}", cs.Id, cs.AgencyId, cs.Version)));
                        }
                    }

                    string[] splittedElementsOfCategoryScheme = ddlCategorySchemeList.Text.Split('-');
                    sdmxInput = wsModel.GetCategoryScheme(new ArtefactIdentity(splittedElementsOfCategoryScheme[0], splittedElementsOfCategoryScheme[1], splittedElementsOfCategoryScheme[2]), false, false);
                    //sdmxInput = wsModel.GetCategoryScheme(new ArtefactIdentity( "cat_sch3", "ESTAT", "1.1"), false,false);

                    ICategorySchemeObject categoryScheme = sdmxInput.CategorySchemes.First();

                    foreach (var category in categoryScheme.Items)
                    {
                        TreeNode node = new TreeNode(string.Format("[ {0} ] {1}", category.Id, _localizedUtils.GetNameableName(category)));
                        //node.Value = string.Format( "[ {0} ] {1}", category.Id, _localizedUtils.GetNameableName( category ) );
                        node.Value = category.Id;
                        node.Text = string.Format("[ {0} ] {1}", category.Id, _localizedUtils.GetNameableName(category));
                        node.SelectAction = TreeNodeSelectAction.Select;
                        CreateTreeWithRecursion(category, node);
                        TreeView1.Nodes.Add(node);
                    }

                    TreeView1.CollapseAll();

                    switch (ddlAvailableStructures.Text)
                    {
                        case "CODELIST":
                            sdmxInput = wsModel.GetCodeList(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            List<ICodelistObject> codelist = sdmxInput.Codelists.ToList();
                            structuresGrid.DataSource = codelist;
                            break;
                        case "CONCEPT_SCHEME":
                            sdmxInput = wsModel.GetConceptScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            List<IConceptSchemeObject> conceptScheme = sdmxInput.ConceptSchemes.ToList();
                            structuresGrid.DataSource = conceptScheme;
                            break;
                        case "CATEGORY_SCHEME":
                            sdmxInput = wsModel.GetCategoryScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            List<ICategorySchemeObject> categorySchemeFound = sdmxInput.CategorySchemes.ToList();
                            structuresGrid.DataSource = categorySchemeFound;
                            break;
                        case "DATAFLOW":
                            sdmxInput = wsModel.GetDataFlow(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "KEY_FAMILY":
                            sdmxInput = wsModel.GetDataStructure(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            /* List<ICodelistObject> codelist = sdmxInput.Codelists.ToList();
                             foreach ( var currentCodelist in codelist )
                             {
                                 ddlAvailableItems.Items.Add( new ListItem( string.Format( "{0} - {1} - {2}", currentCodelist.Id, currentCodelist.AgencyId, currentCodelist.Version ),  string.Format( "{0} - {1} - {2}", currentCodelist.Id, currentCodelist.AgencyId, currentCodelist.Version ) ) );
                             }*/
                            break;
                        case "DATA_PROVIDER_SCHEME":
                            sdmxInput = wsModel.GetDataProviderScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "DATA_CONSUMER_SCHEME":
                            sdmxInput = wsModel.GetDataConsumerScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "ORGANIZATION_UNIT_SCHEME":
                            sdmxInput = wsModel.GetOrganisationUnitScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "STRUCTURE_SET":
                            sdmxInput = wsModel.GetStructureSet(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "CONTENT_CONSTRAINT":
                            sdmxInput = wsModel.GetContentConstraint(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                        case "AGENCY_SCHEME":
                            sdmxInput = wsModel.GetAgencyScheme(new ArtefactIdentity(string.Empty, string.Empty, string.Empty), true, false);
                            break;
                    }
                    structuresGrid.DataSourceID = null;
                    structuresGrid.DataBind();
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("error: " + ex.Message);

                }

            }
            // Verifico se la codelist è final
            /* if (cl.IsFinal.IsTrue || Request["ACTION"].ToString().Equals("VIEW"))
             {
                 // Se final il pulsante di add e le colonne di modifica
                 // dei codici non devono apparire
                 btnSaveMemoryCodeList.Visible = false;
                 btnAddNewCode.Visible = false;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 1].Visible = false;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 2].Visible = false;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 3].Visible = false;
                 cmbLanguageForCsv.Visible = false;
                 imgImportCsv.Visible = false;
             }
             else
             {
                 btnSaveMemoryCodeList.Visible = true;
                 btnAddNewCode.Visible = true;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 1].Visible = true;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 2].Visible = true;
                 gvCodelistsItem.Columns[gvCodelistsItem.Columns.Count - 3].Visible = true;
                 Utils.PopulateCmbLanguages(cmbLanguageForCsv);
                 cmbLanguageForCsv.Visible = true;
                 imgImportCsv.Visible = true;
             }*/
        }
        protected void btnDuplicate_Click(object sender, EventArgs e)
        {
            string Error = ValidateDSDData();

            if (Error != String.Empty)
            {
                OpenDuplicatePopUp();
                Utils.ShowDialog(Error, 300, Resources.Messages.err_duplicate_artefact);
                return;
            }

            if ( ucMaintanableArtefact.Id.ToString().Equals( txtDSDID.Text.Trim() )
                &&  ucMaintanableArtefact.AgencyId.ToString().Equals( cmbAgencies.SelectedValue.ToString().Trim() )
                && ucMaintanableArtefact.Version.ToString().Equals( txtVersion.Text.Trim() ) )
            {
                OpenDuplicatePopUp();
                Utils.ShowDialog( Resources.Messages.equal_global_identificators );
                return;
            }

            ucMaintanableArtefact.Id = txtDSDID.Text;
            ucMaintanableArtefact.AgencyId = cmbAgencies.SelectedValue;
            ucMaintanableArtefact.Version = txtVersion.Text;
            ucMaintanableArtefact.FinalStructure = TertiaryBool.ParseBoolean(false);

            ISdmxObjects sdmxObjects = new SdmxObjectsImpl();
            ISdmxObjects tmpSdmxObject = null;
            WSModel tmpWsModel = new WSModel();
            bool itemAdded = false;
            switch (ucStructureType)
            {
                case SdmxStructureEnumType.AgencyScheme:
                    sdmxObjects.AddAgencyScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IAgencyScheme)ucMaintanableArtefact.ImmutableInstance);
                    break;
                case SdmxStructureEnumType.Categorisation:
                    sdmxObjects.AddCategorisation((Org.Sdmxsource.Sdmx.Api.Model.Objects.CategoryScheme.ICategorisationObject)ucMaintanableArtefact.ImmutableInstance);
                    break;
                case SdmxStructureEnumType.CategoryScheme:
                    sdmxObjects.AddCategoryScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.CategoryScheme.ICategorySchemeObject)ucMaintanableArtefact.ImmutableInstance);
                    break;
                case SdmxStructureEnumType.CodeList:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetCodeList(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                            sdmxObjects.AddCodelist((Org.Sdmxsource.Sdmx.Api.Model.Objects.Codelist.ICodelistObject)ucMaintanableArtefact.ImmutableInstance);
                            itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.ConceptScheme:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetConceptScheme(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                            sdmxObjects.AddConceptScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.ConceptScheme.IConceptSchemeObject)ucMaintanableArtefact.ImmutableInstance);
                            itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.ContentConstraint:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetContentConstraint(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                             sdmxObjects.AddContentConstraintObject((Org.Sdmxsource.Sdmx.Api.Model.Objects.Registry.IContentConstraintObject)ucMaintanableArtefact.ImmutableInstance);
                             itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.DataConsumerScheme:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetDataConsumerScheme(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                             sdmxObjects.AddDataConsumerScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IDataConsumerScheme)ucMaintanableArtefact.ImmutableInstance);
                             itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.DataProviderScheme:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetDataProviderScheme(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                             sdmxObjects.AddDataProviderScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IDataProviderScheme)ucMaintanableArtefact.ImmutableInstance);
                            itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.Dataflow:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetDataFlow(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                            sdmxObjects.AddDataflow((IDataflowObject)ucMaintanableArtefact.ImmutableInstance);
                             itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.Dsd:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetDataStructure(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                            sdmxObjects.AddDataStructure((IDataStructureObject)ucMaintanableArtefact.ImmutableInstance);
                            itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.HierarchicalCodelist:

                    sdmxObjects.AddHierarchicalCodelist((Org.Sdmxsource.Sdmx.Api.Model.Objects.Codelist.IHierarchicalCodelistObject)ucMaintanableArtefact.ImmutableInstance);
                    break;
                case SdmxStructureEnumType.OrganisationUnitScheme:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetOrganisationUnitScheme(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                           sdmxObjects.AddOrganisationUnitScheme((Org.Sdmxsource.Sdmx.Api.Model.Objects.Base.IOrganisationUnitSchemeObject)ucMaintanableArtefact.ImmutableInstance);
                         itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
                case SdmxStructureEnumType.StructureSet:
                    try
                    {
                        tmpSdmxObject = tmpWsModel.GetStructureSet(new ArtefactIdentity( txtDSDID.Text.Trim(), cmbAgencies.SelectedValue.ToString().Trim(),txtVersion.Text.Trim() ) , true ,false );
                    }
                    catch (Exception ex)
                    {
                        if ( ex.Message.ToLower().Equals( "no results found" ) )
                        {
                            sdmxObjects.AddStructureSet((Org.Sdmxsource.Sdmx.Api.Model.Objects.Mapping.IStructureSetObject)ucMaintanableArtefact.ImmutableInstance);
                            itemAdded = true;
                        }
                    }
                    if ( !itemAdded )
                    {
                        Utils.ShowDialog( "Oggetto già presente nel database" );
                        return;
                    }
                    break;
            }

            WSModel wsModel = new WSModel();
            XmlDocument xRet = wsModel.SubmitStructure(sdmxObjects);

            string err = Utils.GetXMLResponseError(xRet);

            if (err != "")
            {
                Utils.ShowDialog(err);
                return;
            }

            ucMaintanableArtefact.Id = lblArtID.Text;
            ucMaintanableArtefact.AgencyId = lblArtAgency.Text;
            ucMaintanableArtefact.Version = lblArtVersion.Text;

            Utils.ShowDialog(Resources.Messages.succ_operation);
            Utils.ResetBeforeUnload();
            //Utils.AppendScript("location.href='./KeyFamily.aspx';");
        }