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;
        }
예제 #2
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;
        }
        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;
        }
 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 btnUploadFile_Click(object sender, EventArgs e)
        {
            if (uploadedFiles.HasFile)
            {
                User currentUser = Session[SESSION_KEYS.USER_DATA] as User;

                try
                {
                    //ResetSdmxSession();
                    WSModel wsModel = new WSModel();
                    XmlDocument xDocStructure = new XmlDocument();
                    XmlDocument xDocMessage = new XmlDocument();
                    XmlDocument xRet;
                    WSUtils utils = new WSUtils();
                    ISdmxObjects sdmxObjects;

                    string FilePath = SaveFile();

                    // Carico il file in un XMLDOcument
                    xDocStructure.Load(FilePath);

                    // Carico l'XMLDocument in un SDMXObjects
                    sdmxObjects = utils.GetSdmxObjectsFromXML(xDocStructure);

                    List<ImportedItem> items = new List<ImportedItem>();
                    bool itemIsOk;
                    foreach (ICodelistObject tmpCodeList in sdmxObjects.Codelists)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetCodeList(new ArtefactIdentity(tmpCodeList.Id, tmpCodeList.AgencyId, tmpCodeList.Version), true, false);
                            if (checkedObject.Codelists.Count > 0)
                            {
                                ICodelistObject checkedCodelist = checkedObject.Codelists.First();
                                if (checkedCodelist.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }

                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpCodeList.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpCodeList), tmpCodeList.Id, tmpCodeList.AgencyId, tmpCodeList.Version, "CODELIST", itemIsOk));
                        }
                    }

                    foreach (IConceptSchemeObject tmpConceptScheme in sdmxObjects.ConceptSchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetConceptScheme(new ArtefactIdentity(tmpConceptScheme.Id, tmpConceptScheme.AgencyId, tmpConceptScheme.Version), true, false);
                            if (checkedObject.ConceptSchemes.Count > 0)
                            {
                                IConceptSchemeObject checkedConcepScheme = checkedObject.ConceptSchemes.First();
                                if (checkedConcepScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }

                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpConceptScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpConceptScheme), tmpConceptScheme.Id, tmpConceptScheme.AgencyId, tmpConceptScheme.Version, "CONCEPT_SCHEME", itemIsOk));
                        }
                    }

                    foreach (ICategorySchemeObject tmpCategoryScheme in sdmxObjects.CategorySchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetCategoryScheme(new ArtefactIdentity(tmpCategoryScheme.Id, tmpCategoryScheme.AgencyId, tmpCategoryScheme.Version), true, false);
                            if (checkedObject.CategorySchemes.Count > 0)
                            {
                                ICategorySchemeObject checkedCategoryScheme = checkedObject.CategorySchemes.First();
                                if (checkedCategoryScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }

                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpCategoryScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpCategoryScheme), tmpCategoryScheme.Id, tmpCategoryScheme.AgencyId, tmpCategoryScheme.Version, "CATEGORY_SCHEME", itemIsOk));
                        }
                    }

                    foreach (IDataStructureObject tmpDataStructure in sdmxObjects.DataStructures)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetDataStructure(new ArtefactIdentity(tmpDataStructure.Id, tmpDataStructure.AgencyId, tmpDataStructure.Version), true, false);
                            if (checkedObject.DataStructures.Count > 0)
                            {
                                IDataStructureObject checkedDataStructure = checkedObject.DataStructures.First();
                                if (checkedDataStructure.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpDataStructure.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpDataStructure), tmpDataStructure.Id, tmpDataStructure.AgencyId, tmpDataStructure.Version, "DSD", itemIsOk));
                        }
                    }

                    foreach (IAgencyScheme tmpAgencyScheme in sdmxObjects.AgenciesSchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetAgencyScheme(new ArtefactIdentity(tmpAgencyScheme.Id, tmpAgencyScheme.AgencyId, tmpAgencyScheme.Version), true, false);
                            if (checkedObject.AgenciesSchemes.Count > 0)
                            {
                                IAgencyScheme checkedAgencyScheme = checkedObject.AgenciesSchemes.First();
                                if (checkedAgencyScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpAgencyScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpAgencyScheme), tmpAgencyScheme.Id, tmpAgencyScheme.AgencyId, tmpAgencyScheme.Version, "AGENCY_SCHEME", itemIsOk));
                        }
                    }

                    foreach (IDataProviderScheme tmpDataProviderScheme in sdmxObjects.DataProviderSchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetDataProviderScheme(new ArtefactIdentity(tmpDataProviderScheme.Id, tmpDataProviderScheme.AgencyId, tmpDataProviderScheme.Version), true, false);
                            if (checkedObject.DataProviderSchemes.Count > 0)
                            {
                                IDataProviderScheme checkedDataProviderScheme = checkedObject.DataProviderSchemes.First();
                                if (checkedDataProviderScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpDataProviderScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpDataProviderScheme), tmpDataProviderScheme.Id, tmpDataProviderScheme.AgencyId, tmpDataProviderScheme.Version, "DATA_PROVIDER_SCHEME", itemIsOk));
                        }
                    }

                    foreach (IDataConsumerScheme tmpDataConsumerScheme in sdmxObjects.DataConsumerSchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetDataConsumerScheme(new ArtefactIdentity(tmpDataConsumerScheme.Id, tmpDataConsumerScheme.AgencyId, tmpDataConsumerScheme.Version), true, false);
                            if (checkedObject.DataConsumerSchemes.Count > 0)
                            {
                                IDataConsumerScheme checkedDataConsumerScheme = checkedObject.DataConsumerSchemes.First();
                                if (checkedDataConsumerScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }

                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpDataConsumerScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpDataConsumerScheme), tmpDataConsumerScheme.Id, tmpDataConsumerScheme.AgencyId, tmpDataConsumerScheme.Version, "DATA_CONSUMER_SCHEME", itemIsOk));
                        }
                    }

                    foreach (IOrganisationUnitSchemeObject tmpOrganizationUnitScheme in sdmxObjects.OrganisationUnitSchemes)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetOrganisationUnitScheme(new ArtefactIdentity(tmpOrganizationUnitScheme.Id, tmpOrganizationUnitScheme.AgencyId, tmpOrganizationUnitScheme.Version), true, false);
                            if (checkedObject.OrganisationUnitSchemes.Count > 0)
                            {
                                IOrganisationUnitSchemeObject checkedOrganisationUnitScheme = checkedObject.OrganisationUnitSchemes.First();
                                if (checkedOrganisationUnitScheme.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }

                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpOrganizationUnitScheme.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpOrganizationUnitScheme), tmpOrganizationUnitScheme.Id, tmpOrganizationUnitScheme.AgencyId, tmpOrganizationUnitScheme.Version, "ORGANIZATION_UNIT_SCHEME", itemIsOk));
                        }
                    }

                    foreach (IContentConstraintObject tmpContentConstraint in sdmxObjects.ContentConstraintObjects)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetContentConstraint(new ArtefactIdentity(tmpContentConstraint.Id, tmpContentConstraint.AgencyId, tmpContentConstraint.Version), true, false);
                            if (checkedObject.ContentConstraintObjects.Count > 0)
                            {
                                IContentConstraintObject checkedContentConstraint = checkedObject.ContentConstraintObjects.First();
                                if (checkedContentConstraint.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpContentConstraint.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpContentConstraint), tmpContentConstraint.Id, tmpContentConstraint.AgencyId, tmpContentConstraint.Version, "CONTENT_CONSTRAINT", itemIsOk));
                        }
                    }

                    foreach (IStructureSetObject tmpStructureSet in sdmxObjects.StructureSets)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetStructureSet(new ArtefactIdentity(tmpStructureSet.Id, tmpStructureSet.AgencyId, tmpStructureSet.Version), true, false);
                            if (checkedObject.StructureSets.Count > 0)
                            {
                                IStructureSetObject checkedStructureSet = checkedObject.StructureSets.First();
                                if (checkedStructureSet.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpStructureSet.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpStructureSet), tmpStructureSet.Id, tmpStructureSet.AgencyId, tmpStructureSet.Version, "STRUCTURE_SET", itemIsOk));
                        }
                    }

                    foreach (IHierarchicalCodelistObject tmpHierarchicalCodelist in sdmxObjects.HierarchicalCodelists)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetHcl(new ArtefactIdentity(tmpHierarchicalCodelist.Id, tmpHierarchicalCodelist.AgencyId, tmpHierarchicalCodelist.Version), true, false);
                            if (checkedObject.HierarchicalCodelists.Count > 0)
                            {
                                IHierarchicalCodelistObject checkedHierarchicalCodelist = checkedObject.HierarchicalCodelists.First();
                                if (checkedHierarchicalCodelist.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                          where agency.id.Equals( tmpHierarchicalCodelist.AgencyId.ToString() )
                                          select agency).ToList<UserAgency>();

                        if ( foundAgency.Count > 0 )
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpHierarchicalCodelist), tmpHierarchicalCodelist.Id, tmpHierarchicalCodelist.AgencyId, tmpHierarchicalCodelist.Version, "HIERARCHICAL_CODELIST", itemIsOk));
                        }
                    }

                    foreach (ICategorisationObject tmpCatObj in sdmxObjects.Categorisations)
                    {
                        itemIsOk = true;
                        try
                        {
                            ISdmxObjects checkedObject = wsModel.GetCategorisation(new ArtefactIdentity(tmpCatObj.Id, tmpCatObj.AgencyId, tmpCatObj.Version), true, false);
                            if (checkedObject.Categorisations.Count > 0)
                            {
                                ICategorisationObject checkedCategorisation = checkedObject.Categorisations.First();
                                if (checkedCategorisation.IsFinal.IsTrue)
                                {
                                    itemIsOk = false;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            itemIsOk = true;
                        }
                        var foundAgency = (from agency in currentUser.agencies
                                           where agency.id.Equals(tmpCatObj.AgencyId.ToString())
                                           select agency).ToList<UserAgency>();

                        if (foundAgency.Count > 0)
                        {
                            items.Add(new ImportedItem(localizedUtils.GetNameableName(tmpCatObj), tmpCatObj.Id, tmpCatObj.AgencyId, tmpCatObj.Version, "CATEGORISATION", itemIsOk));
                        }
                    }
                    Session[IMPORTED_ITEMS_STRING] = items;
                    Session[IMPORTED_SDMX_OBJECT] = sdmxObjects;
                    gridView.DataSource = items;
                    gridView.DataBind();
                    if ( items.Count != 0 )
                    {
                        btnConfirmImport.Visible = true;
                        lblNoItemsAllowed.Visible = false;
                    }
                    else
                    {
                        Utils.AppendScript( "$('#chbSelectAll').hide();" );
                        lblSelectAll.Visible = false;
                        lblNoItemsAllowed.Visible = true;
                        btnConfirmImport.Visible = false;
                    }

                    Utils.AppendScript("openPopUp('importedItemsGridDiv', 600);");
                }
                catch (Exception ex)
                {
                    string msg;
                    if (ex.InnerException != null)
                        msg = ex.InnerException.Message;
                    else
                        msg = ex.Message;

                    Utils.ShowDialog(msg);
                }
            }
            else
            {
                Utils.ShowDialog( Resources.Messages.err_no_file_uploaded );
            }
        }
        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';");
        }
        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.GetStructureSet(new ArtefactIdentity(SearchBar1.ucID, SearchBar1.ucAgency, SearchBar1.ucVersion), true,true);

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

                    foreach (IStructureSetObject ss in sdmxInput.StructureSets)
                    {
                        if (localizedUtils.GetNameableName(ss).ToUpper().Contains(SearchBar1.ucName.Trim().ToUpper()))
                            mutableObj.AddStructureSet(ss.MutableInstance);
                    }
                    sdmxFinal = mutableObj.ImmutableObjects;

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

            return sdmxFinal;
        }