private bool SendQuerySubmit(ICodelistMutableObject cl)
        {
            try
            {
                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                int indexOrder = 1;
                foreach (ICodeMutableObject code in cl.Items)
                {
                    IEnumerable<IAnnotationMutableObject> annotations = (from a in code.Annotations where a.Type == "@ORDER@" select a).OfType<IAnnotationMutableObject>();

                    if (annotations.Count() > 0)
                    {
                        IAnnotationMutableObject annotation = annotations.First();

                        ITextTypeWrapperMutableObject iText = new TextTypeWrapperMutableCore();

                        iText.Value = (indexOrder++).ToString();
                        iText.Locale = "en";

                        annotation.Text.Clear();
                        annotation.Text.Add(iText);

                    }
                    else {
                        code.AddAnnotation(GetAnnotationOrder(indexOrder++));
                    }
                    lblCodeListDetail.Text = code.Names[0].Value ;
                }

                sdmxObjects.AddCodelist(cl.ImmutableInstance);
                WSModel modelCodeList = new WSModel();
                XmlDocument result = modelCodeList.SubmitStructure(sdmxObjects);
                Utils.GetXMLResponseError(result);

                return true;

            }
            catch (Exception ex)
            {
                return false;
            }
        }
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            /*
             * 1. Faccio il retrieve dell'artefact da eliminare
             * 2. Ottengo un SDMXObjects
             * 3. Trasformo l'SDMXObjects in un oggetto xml
             * 4. Carico il template
             * 5. Cerco il tag "structures" nell'sdmxobjects che contiene l'artefatto da eliminare
             * 6. Inserisco il contenuto dello structure nel template
             * 7. Richiamo il metodo submitstructure per effettuare l'eliminazione
             * 8. Controllo il successo dell'eliminazione e rifaccio il DataBind()
             */

            WSModel wsModel = new WSModel();
            WSUtils wsUtils = new WSUtils();
            ISdmxObjects sdmxObjects;
            XmlDocument xDocStructure;
            XmlDocument xDocTemplate;
            XmlDocument xDocResponse;

            try
            {
                //sdmxObjects = wsModel.GetCodeList(new ArtefactIdentity(ucID, ucAgency, ucVersion), true);

                sdmxObjects = GetSdmxObjects();

                xDocStructure = wsUtils.GetXMLDocFromSdmxObjects(sdmxObjects, StructureOutputFormatEnumType.SdmxV21StructureDocument);

                //Carico il template
                xDocTemplate = new XmlDocument();
                xDocTemplate.Load(Server.MapPath(@".\SdmxQueryTemplate\SubmitStructureDelete.xml"));

                // Il nodo root "Structure" del template
                XmlNode xTempStructNode = xDocTemplate.SelectSingleNode("//*[local-name()='Structures']");

                // Aggiungo al template lo structure da eliminare
                xTempStructNode.InnerXml = xDocStructure.SelectSingleNode("//*[local-name()='Structures']").InnerXml;

                // Richiamo il SubmitStructure per effettuare la Delete
                xDocResponse = wsModel.SubmitStructure(xDocTemplate);

                string CheckError = Utils.GetXMLResponseError(xDocResponse);

                if (CheckError != String.Empty)
                {
                    //Utils.ShowDialog(CheckError);
                    Utils.ShowDialog( Resources.Messages.err_artefact_is_a_reference );
                    Utils.ForceBlackClosing();
                    return;
                }

                //Utils.ExecuteScript(Parent.Page, "location.reload();");
                Utils.ReloadPage();
               //ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID, "closePopup();", true);
            }
            catch (Exception ex)
            {
                Utils.AppendScript("closePopup();");
                Utils.ShowDialog("An error occurred: " + ex.Message);
            }
        }
        /// <summary>
        /// Salva il DataFlow nel registry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSaveSS_Click(object sender, EventArgs e)
        {
            if (!ValidateSSData())
                return;

            try
            {
                _ssMutable.Id = txtSSID.Text;
                _ssMutable.AgencyId = GetAgencyValue();
                _ssMutable.Version = txtVersion.Text;

                _ssMutable.Names.Clear();
                foreach (ITextTypeWrapperMutableObject name in AddTextName.TextObjectList)
                {
                    _ssMutable.Names.Add(name);
                }

                _ssMutable.Descriptions.Clear();
                if (AddTextDescription.TextObjectList != null)
                {
                    foreach (ITextTypeWrapperMutableObject descr in AddTextDescription.TextObjectList)
                    {
                        _ssMutable.Descriptions.Add(descr);
                    }
                }

                _ssMutable.FinalStructure = TertiaryBool.ParseBoolean(chkIsFinal.Checked);
                if (txtURI.Text != String.Empty)
                    _ssMutable.Uri = new Uri(txtURI.Text);

                if (txtValidFrom.Text != String.Empty)
                    _ssMutable.StartDate = DateTime.ParseExact(txtValidFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                if (txtValidTo.Text != String.Empty)
                    _ssMutable.EndDate = DateTime.ParseExact(txtValidTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                _ssMutable.Annotations.Clear();
                if (AnnotationGeneral.AnnotationObjectList != null)
                    foreach (var annotation in AnnotationGeneral.AnnotationObjectList)
                    {
                        _ssMutable.AddAnnotation(annotation);
                    }

                //string[] DSDValues = txtDSD.Text.Split(',');

                //IStructureReference dsdRef = new StructureReferenceImpl(DSDValues[1],
                //DSDValues[0], DSDValues[2],
                //SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dsd),
                //new string[] { _ntdString });

                //_ssMutable.DataStructureRef = dsdRef;

                SetSSToSession();

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

                string err = Utils.GetXMLResponseError(xRet);

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

                Session[_snInsSS] = null;
                Session[_snSdmxObjects] = null;

                //Utils.ShowDialog("Operation succesfully");
                Utils.ResetBeforeUnload();
                Utils.AppendScript("location.href='./StructureSet.aspx';");
            }
            catch (Exception ex)
            {
                Utils.ShowDialog(ex.Message);
            }
        }
        private bool SendQuerySubmit(IOrganisationUnitSchemeMutableObject ous)
        {
            try
            {

                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                sdmxObjects.AddOrganisationUnitScheme(ous.ImmutableInstance);

                WSModel modelOrganizationUnitScheme = new WSModel();

                XmlDocument result = modelOrganizationUnitScheme.SubmitStructure(sdmxObjects);

                Utils.GetXMLResponseError(result);

                return true;

            }
            catch (Exception ex)
            {
                return false;
            }
        }
        /// <summary>
        /// Salva il DataFlow nel registry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSaveDF_Click(object sender, EventArgs e)
        {
            /*
             * 1. Aggiungo all'oggetto _dfMutable:
             *      Le info della General
             *      La collection di Names
             *      La Collecction delle Desctiptions
             * 2. Richiamo il metodo che prende in input un ISdmxObjects che richiama il SaveStructure
             * 3. Visualizzo un messaggio di conferma,resetto le Session e faccio un redirect alla lista delle DF
             */

            if (!ValidateDFData())
                return;

            try
            {
                _dfMutable.Id = txtDFID.Text;
                _dfMutable.AgencyId = GetAgencyValue();
                _dfMutable.Version = txtVersion.Text;

                _dfMutable.Names.Clear();
                foreach (ITextTypeWrapperMutableObject name in AddTextName.TextObjectList)
                {
                    _dfMutable.Names.Add(name);
                }

                _dfMutable.Descriptions.Clear();
                if (AddTextDescription.TextObjectList != null)
                {
                    foreach (ITextTypeWrapperMutableObject descr in AddTextDescription.TextObjectList)
                    {
                        _dfMutable.Descriptions.Add(descr);
                    }
                }

                _dfMutable.FinalStructure = TertiaryBool.ParseBoolean(chkIsFinal.Checked);
                if (txtURI.Text != String.Empty)
                    _dfMutable.Uri = new Uri(txtURI.Text);

                if (txtValidFrom.Text != String.Empty)
                    _dfMutable.StartDate = DateTime.ParseExact(txtValidFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                if (txtValidTo.Text != String.Empty)
                    _dfMutable.EndDate = DateTime.ParseExact(txtValidTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                _dfMutable.Annotations.Clear();
                if (AnnotationGeneral.AnnotationObjectList != null)
                    foreach (var annotation in AnnotationGeneral.AnnotationObjectList)
                    {
                        _dfMutable.AddAnnotation(annotation);
                    }

                string[] DSDValues = txtDSD.Text.Split(',');

                IStructureReference dsdRef = new StructureReferenceImpl(DSDValues[1],
                DSDValues[0], DSDValues[2],
                SdmxStructureType.GetFromEnum(SdmxStructureEnumType.Dsd),
                new string[] { _ntdString });

                _dfMutable.DataStructureRef = dsdRef;

                SetDfToSession();

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

                string err = Utils.GetXMLResponseError(xRet);

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

                //Session[_snInsDf] = null;
                //Session[_snSdmxObjects] = null;

                //Utils.ShowDialog("Operation succesfully");
                Utils.ResetBeforeUnload();
                Utils.AppendScript("location.href='./DataFlow.aspx';");
            }
            catch (Exception ex)
            {
                Utils.ShowDialog(ex.Message);
            }
        }
        /// <summary>
        /// Salva la DSD nel registry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSaveDSD_Click(object sender, EventArgs e)
        {
            /*
             * 1. Aggiungo all'oggetto _dsdMutable:
             *      Le info della General
             *      La collection di Names
             *      La Collecction delle Descriptions
             *      La Primary Measure
             *      Le Dimension sono presenti nell'oggetto _dsdMutable
             *      I Gruppi sono presenti nell'oggetto _dsdMutable
             *      Gli Attributes sono presenti nell'oggetto _dsdMutable
             * 2. Richiamo il metodo che prende in input un ISdmxObjects che richiama il SaveStructure
             * 3. Visualizzo un messaggio di conferma,resetto le Session e faccio un redirect alla lista delle DSD
             */

            if (!ValidateDSDData())
                return;

            try
            {
                _dsdMutable.Id = txtDSDID.Text;
                _dsdMutable.AgencyId = cmbAgencies.SelectedValue;
                _dsdMutable.Version = txtVersion.Text;

                _dsdMutable.Names.Clear();
                foreach (ITextTypeWrapperMutableObject name in AddTextName.TextObjectList)
                {
                    _dsdMutable.Names.Add(name);
                }

                _dsdMutable.Descriptions.Clear();
                if (AddTextDescription.TextObjectList != null)
                {
                    foreach (ITextTypeWrapperMutableObject descr in AddTextDescription.TextObjectList)
                    {
                        _dsdMutable.Descriptions.Add(descr);
                    }
                }

                _dsdMutable.FinalStructure = TertiaryBool.ParseBoolean(chkIsFinal.Checked);
                if (txtDSDURI.Text != String.Empty)
                    _dsdMutable.Uri = new Uri(txtDSDURI.Text);

                if (txtValidFrom.Text != String.Empty)
                    _dsdMutable.StartDate = DateTime.ParseExact(txtValidFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                if (txtValidTo.Text != String.Empty)
                    _dsdMutable.EndDate = DateTime.ParseExact(txtValidTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                // PM
                string[] pmValues = txtConcept.Text.Substring(0, txtConcept.Text.IndexOf(" ")).Split(',');
                string pmConcept = txtConcept.Text.Substring(txtConcept.Text.LastIndexOf(" ") + 1);
                _dsdMutable.AddPrimaryMeasure(new StructureReferenceImpl(pmValues[1], pmValues[0], pmValues[2], SdmxStructureEnumType.Concept, pmConcept));

                if (txtCodelist.Text != "")
                {
                    string[] pmCLValues = txtCodelist.Text.Split(',');

                    IRepresentationMutableObject rep = new RepresentationMutableCore();
                    rep.Representation = new StructureReferenceImpl(pmCLValues[1], pmCLValues[0], pmCLValues[2], SdmxStructureEnumType.CodeList, null);

                    _dsdMutable.PrimaryMeasure.Representation = rep;
                }

                _dsdMutable.Annotations.Clear();
                if (AnnotationGeneral.AnnotationObjectList != null)
                    foreach (var annotation in AnnotationGeneral.AnnotationObjectList)
                    {
                        _dsdMutable.AddAnnotation(annotation);
                    }

                _dsdMutable.PrimaryMeasure.Annotations.Clear();
                if (AnnotationPrimaryMeasure.AnnotationObjectList != null)
                    foreach (var annotation in AnnotationPrimaryMeasure.AnnotationObjectList)
                    {
                        _dsdMutable.PrimaryMeasure.AddAnnotation(annotation);
                    }

                SetDsdToSession();

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

                string err = Utils.GetXMLResponseError(xRet);

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

                Session[_snInsDSD] = null;
                Session[_snSdmxObjects] = null;

                //Utils.ShowDialog("Operation succesfully");
                Utils.ResetBeforeUnload();
                //Utils.ShowDialog(successMessage, 300);
                Utils.AppendScript("location.href='./KeyFamily.aspx';");
            }
            catch (Exception ex)
            {
                Utils.ShowDialog(ex.Message);
            }
        }
        private bool SendQuerySubmit(IDataConsumerSchemeMutableObject dataConsumerScheme)
        {
            try
            {

                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                sdmxObjects.AddDataConsumerScheme(dataConsumerScheme.ImmutableInstance);

                WSModel modelDataConsumerScheme = new WSModel();

                XmlDocument result = modelDataConsumerScheme.SubmitStructure(sdmxObjects);

                Utils.GetXMLResponseError(result);

                return true;

            }
            catch (Exception ex)
            {
                return false;
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Salva la HCL nel Registry
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSaveHcl_Click(object sender, EventArgs e)
        {
            if (!ValidateHclData())
                return;

            try
            {
                _hclMutable.Id = txtHclID.Text;
                _hclMutable.AgencyId = cmbAgencies.SelectedValue;
                _hclMutable.Version = txtVersion.Text;

                _hclMutable.Names.Clear();
                foreach (ITextTypeWrapperMutableObject name in AddTextName.TextObjectList)
                {
                    _hclMutable.Names.Add(name);
                }

                _hclMutable.Descriptions.Clear();
                if (AddTextDescription.TextObjectList != null)
                {
                    foreach (ITextTypeWrapperMutableObject descr in AddTextDescription.TextObjectList)
                    {
                        _hclMutable.Descriptions.Add(descr);
                    }
                }

                _hclMutable.FinalStructure = TertiaryBool.ParseBoolean(chkIsFinal.Checked);
                if (txtURI.Text != String.Empty)
                    _hclMutable.Uri = new Uri(txtURI.Text);

                if (txtValidFrom.Text != String.Empty)
                    _hclMutable.StartDate = DateTime.ParseExact(txtValidFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                if (txtValidTo.Text != String.Empty)
                    _hclMutable.EndDate = DateTime.ParseExact(txtValidTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

                _hclMutable.Annotations.Clear();
                if (AnnotationGeneral.AnnotationObjectList != null)
                    foreach (var annotation in AnnotationGeneral.AnnotationObjectList)
                    {
                        _hclMutable.AddAnnotation(annotation);
                    }

                SetHclToSession();

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

                string err = Utils.GetXMLResponseError(xRet);

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

                Session[_snInsCC] = null;
                Session[_snSdmxObjects] = null;

                Utils.ResetBeforeUnload();
                Utils.AppendScript("location.href='./Hcl.aspx';");
            }
            catch (Exception ex)
            {
                Utils.ShowDialog(ex.Message);
            }
        }
        private bool SendQuerySubmit(ICategorySchemeMutableObject cs)
        {
            try
            {

                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                for (int i = 0; i < cs.Annotations.Count; )
                    if (cs.Annotations[i].Type.Trim() == "CategoryScheme_node_order")
                        cs.Annotations.RemoveAt(i);
                    else i++;

                sdmxObjects.AddCategoryScheme(cs.ImmutableInstance);

                WSModel modelCategoryScheme = new WSModel();

                XmlDocument result = modelCategoryScheme.SubmitStructure(sdmxObjects);

                if (Utils.GetXMLResponseError(result) != "")
                {
                    Utils.ShowDialog(Utils.GetXMLResponseError(result), 350, "Error");
                    return false;
                }

                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private bool SendQuerySubmit(ICategorisationMutableObject cat)
        {
            try
            {

                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                /* int indexOrder = 1;
                 foreach (ICodeMutableObject code in cl.Items)
                 {
                     IEnumerable<IAnnotationMutableObject> annotations = (from a in code.Annotations where a.Type == "@ORDER@" select a).OfType<IAnnotationMutableObject>();
                     IAnnotationMutableObject annotation = (annotations.Count() > 0) ? annotations.First() : GetAnnotationOrder(indexOrder++);
                     code.AddAnnotation(annotation);

                     lblCodeListDetail.Text = code.Names[0].Value ;

                 }*/

                sdmxObjects.AddCategorisation(cat.ImmutableInstance);

                WSModel modelCategorization = new WSModel();

                XmlDocument result = modelCategorization.SubmitStructure(sdmxObjects);

                if (Utils.GetXMLResponseError(result) != "")
                {
                    Utils.ShowDialog(Utils.GetXMLResponseError(result), 350, "Error");
                    return false;
                }

                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 11
0
        protected void btnConfirmImport_Click(object sender, EventArgs e)
        {
            bool oneRowIsOk = false;
            GridViewRowCollection rows = gridView.Rows;

            foreach (GridViewRow row in rows)
            {
                if (((CheckBox)row.Cells[4].Controls[1]).Checked)
                {
                    oneRowIsOk = true;
                    break;
                }
            }

            if (oneRowIsOk)
            {
                WSModel wsModel = new WSModel();
                XmlDocument xDocStructure = new XmlDocument();
                XmlDocument xDocMessage = new XmlDocument();
                XmlDocument xRet;
                WSUtils utils = new WSUtils();
                List<ImportedItem> myItems = Session[IMPORTED_ITEMS_STRING] as List<ImportedItem>;
                ISdmxObjects sdmxObjects = (ISdmxObjects)Session[IMPORTED_SDMX_OBJECT];
                ISdmxObjects newSdmxObjects = new SdmxObjectsImpl();
                List<ImportedItem> reportItems = new List<ImportedItem>();
                string objectsSummary = string.Empty;

                foreach (GridViewRow row in gridView.Rows)
                {
                    string currentId = ((Label)row.Cells[0].Controls[1]).Text;
                    string currentAgency = ((Label)row.Cells[1].Controls[1]).Text;
                    string currentVersion = ((Label)row.Cells[2].Controls[1]).Text;
                    ImportedItem myCurrentItem = myItems.Find(item => item.ID.Equals(currentId) && item.Agency.Equals(currentAgency) && item.Version.Equals(currentVersion));

                    if (((CheckBox)row.Cells[4].Controls[1]).Checked)
                    {
                        switch (myCurrentItem._type)
                        {
                            case "CODELIST":
                                ICodelistObject tmpCodeList = sdmxObjects.Codelists.First(codelist => codelist.Id.Equals(currentId) && codelist.AgencyId.Equals(currentAgency) && codelist.Version.Equals(currentVersion));
                                newSdmxObjects.AddCodelist(tmpCodeList);
                                objectsSummary += string.Format(Resources.Messages.msg_codelist_imported, tmpCodeList.Id, tmpCodeList.AgencyId, tmpCodeList.Version);
                                break;
                            case "CONCEPT_SCHEME":
                                IConceptSchemeObject tmpConceptScheme = sdmxObjects.ConceptSchemes.First(conceptScheme => conceptScheme.Id.Equals(currentId) && conceptScheme.AgencyId.Equals(currentAgency) && conceptScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddConceptScheme(tmpConceptScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_concept_scheme_imported, tmpConceptScheme.Id, tmpConceptScheme.AgencyId, tmpConceptScheme.Version);
                                break;
                            case "CATEGORY_SCHEME":
                                ICategorySchemeObject tmpCategoryScheme = sdmxObjects.CategorySchemes.First(categoryScheme => categoryScheme.Id.Equals(currentId) && categoryScheme.AgencyId.Equals(currentAgency) && categoryScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddCategoryScheme(tmpCategoryScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_category_scheme_imported, tmpCategoryScheme.Id, tmpCategoryScheme.AgencyId, tmpCategoryScheme.Version);
                                break;
                            case "DSD":
                                IDataStructureObject tmpDataStructure = sdmxObjects.DataStructures.First(dataStructure => dataStructure.Id.Equals(currentId) && dataStructure.AgencyId.Equals(currentAgency) && dataStructure.Version.Equals(currentVersion));
                                newSdmxObjects.AddDataStructure(tmpDataStructure);
                                objectsSummary += string.Format(Resources.Messages.msg_data_structure_imported, tmpDataStructure.Id, tmpDataStructure.AgencyId, tmpDataStructure.Version);
                                break;
                            case "AGENCY_SCHEME":
                                IAgencyScheme tmpAgencyScheme = sdmxObjects.AgenciesSchemes.First(agencyScheme => agencyScheme.Id.Equals(currentId) && agencyScheme.AgencyId.Equals(currentAgency) && agencyScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddAgencyScheme(tmpAgencyScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_agency_scheme_imported, tmpAgencyScheme.Id, tmpAgencyScheme.AgencyId, tmpAgencyScheme.Version);
                                break;
                            case "DATA_PROVIDER_SCHEME":
                                IDataProviderScheme tmpDataProviderScheme = sdmxObjects.DataProviderSchemes.First(dataProviderScheme => dataProviderScheme.Id.Equals(currentId) && dataProviderScheme.AgencyId.Equals(currentAgency) && dataProviderScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddDataProviderScheme(tmpDataProviderScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_data_provider_scheme_imported, tmpDataProviderScheme.Id, tmpDataProviderScheme.AgencyId, tmpDataProviderScheme.Version);
                                break;
                            case "DATA_CONSUMER_SCHEME":
                                IDataConsumerScheme tmpDataConsumerScheme = sdmxObjects.DataConsumerSchemes.First(dataConsumerScheme => dataConsumerScheme.Id.Equals(currentId) && dataConsumerScheme.AgencyId.Equals(currentAgency) && dataConsumerScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddDataConsumerScheme(tmpDataConsumerScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_data_consumer_scheme_imported, tmpDataConsumerScheme.Id, tmpDataConsumerScheme.AgencyId, tmpDataConsumerScheme.Version);
                                break;
                            case "ORGANIZATION_UNIT_SCHEME":
                                IOrganisationUnitSchemeObject tmpOrganizationUnitScheme = sdmxObjects.OrganisationUnitSchemes.First(organizationUnitScheme => organizationUnitScheme.Id.Equals(currentId) && organizationUnitScheme.AgencyId.Equals(currentAgency) && organizationUnitScheme.Version.Equals(currentVersion));
                                newSdmxObjects.AddOrganisationUnitScheme(tmpOrganizationUnitScheme);
                                objectsSummary += string.Format(Resources.Messages.msg_organization_unit_scheme_imported, tmpOrganizationUnitScheme.Id, tmpOrganizationUnitScheme.AgencyId, tmpOrganizationUnitScheme.Version);
                                break;
                            case "STRUCTURE_SET":
                                IStructureSetObject tmpStructureSet = sdmxObjects.StructureSets.First(structureSet => structureSet.Id.Equals(currentId) && structureSet.AgencyId.Equals(currentAgency) && structureSet.Version.Equals(currentVersion));
                                newSdmxObjects.AddStructureSet(tmpStructureSet);
                                objectsSummary += string.Format(Resources.Messages.msg_structure_set_imported, tmpStructureSet.Id, tmpStructureSet.AgencyId, tmpStructureSet.Version);
                                break;
                            case "CONTENT_CONSTRAINT":
                                IContentConstraintObject tmpContentConstraint = sdmxObjects.ContentConstraintObjects.First(contentConstraint => contentConstraint.Id.Equals(currentId) && contentConstraint.AgencyId.Equals(currentAgency) && contentConstraint.Version.Equals(currentVersion));
                                newSdmxObjects.AddContentConstraintObject(tmpContentConstraint);
                                objectsSummary += string.Format(Resources.Messages.msg_content_constraint_imported, tmpContentConstraint.Id, tmpContentConstraint.AgencyId, tmpContentConstraint.Version);
                                break;
                            case "HIERARCHICAL_CODELIST":
                                IHierarchicalCodelistObject tmpHierarchicalCodelist = sdmxObjects.HierarchicalCodelists.First(hierarchicalCodelist => hierarchicalCodelist.Id.Equals(currentId) && hierarchicalCodelist.AgencyId.Equals(currentAgency) && hierarchicalCodelist.Version.Equals(currentVersion));
                                newSdmxObjects.AddHierarchicalCodelist(tmpHierarchicalCodelist);
                                objectsSummary += string.Format(Resources.Messages.msg_hierarchical_codelist_imported, tmpHierarchicalCodelist.Id, tmpHierarchicalCodelist.AgencyId, tmpHierarchicalCodelist.Version);
                                break;
                            case "CATEGORISATION":
                                ICategorisationObject tmpCategorisation = sdmxObjects.Categorisations.First(cat => cat.Id.Equals(currentId) && cat.AgencyId.Equals(currentAgency) && cat.Version.Equals(currentVersion));
                                newSdmxObjects.AddCategorisation(tmpCategorisation);
                                objectsSummary += string.Format(Resources.Messages.msg_categorisation_imported, tmpCategorisation.Id, tmpCategorisation.AgencyId, tmpCategorisation.Version);
                                break;
                        }
                        reportItems.Add(myCurrentItem);
                    }
                }
                Session[REPORT_ITEMS] = reportItems;

                // Carico l'SDMXObject in un XML Message da passare al WS
                //xDocMessage = utils.GetXmlMessage(newSdmxObjects);

                newSdmxObjects = PopolateAnnotationID(newSdmxObjects);

                //Richiamo il metodo SubmitStructure per l'inserimento nel DB
                try
                {
                    xRet = wsModel.SubmitStructure(newSdmxObjects);
                }
                catch (Exception ex)
                {
                    Utils.ShowDialog(ex.Message);
                    Utils.ForceBlackClosing();
                    return;
                }

                string CheckError = Utils.GetXMLResponseError(xRet);

                if (CheckError != String.Empty)
                {
                    Utils.ShowDialog(CheckError);
                    Utils.ForceBlackClosing();
                    return;
                }

                // lblInfo.Text = CreateArtefactImportedString(sdmxObjects);
                lblInfo.Text = objectsSummary;
                gridView.DataSource = null;
                gridView.DataBind();
            }
            else
            {
                Utils.ShowDialog( Resources.Messages.err_at_least_one_row );
                Utils.AppendScript("openPopUp('importedItemsGridDiv', 600);");
                return;
            }
            Utils.AppendScript("openPopUp('dialog-form', 600);");
            /*gridView.DataSource = myItems;
            gridView.DataBind();*/
        }
        private bool SendQuerySubmit(IConceptSchemeMutableObject cs)
        {
            try
            {

                ISdmxObjects sdmxObjects = new SdmxObjectsImpl();

                sdmxObjects.AddConceptScheme(cs.ImmutableInstance);

                WSModel modelConceptScheme = new WSModel();

                XmlDocument result = modelConceptScheme.SubmitStructure(sdmxObjects);

                if (Utils.GetXMLResponseError(result) != "")
                {
                    Utils.ShowDialog(Utils.GetXMLResponseError(result), 350, "Error");
                    return false;
                }

                return true;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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';");
        }