コード例 #1
0
        /// <summary>
        /// Convert the specified <paramref name="conceptScheme"/> to CodeList.
        /// </summary>
        /// <param name="conceptScheme">The concept scheme.</param>
        /// <returns>The CodeList.</returns>
        public static ICodelistMutableObject ConvertToCodelist(this IConceptSchemeMutableObject conceptScheme)
        {
            ICodelistMutableObject codelist = new CodelistMutableCore()
            {
                Id             = conceptScheme.Id,
                AgencyId       = conceptScheme.AgencyId,
                Version        = conceptScheme.Version,
                FinalStructure = conceptScheme.FinalStructure,
                IsPartial      = conceptScheme.IsPartial,
            };

            codelist.Names.AddAll(conceptScheme.Names);
            codelist.Descriptions.AddAll(conceptScheme.Descriptions);
            foreach (var item in conceptScheme.Items)
            {
                ICodeMutableObject code = new CodeMutableCore {
                    Id = item.Id,
                };

                code.Names.AddAll(item.Names);
                code.Descriptions.AddAll(item.Descriptions);

                codelist.AddItem(code);
            }

            return(codelist);
        }
コード例 #2
0
        /// <summary>
        /// Handles the ConceptScheme element child elements
        /// </summary>
        /// <param name="parent">
        /// The parent IConceptSchemeMutableObject object
        /// </param>
        /// <param name="localName">
        /// The name of the current xml element
        /// </param>
        private ElementActions HandleChildElements(IConceptSchemeMutableObject parent, object localName)
        {
            ElementActions actions = null;
            if (NameTableCache.IsElement(localName, ElementNameTable.Concept))
            {
                var concept = new ConceptMutableCore();
                ParseAttributes(concept, this.Attributes);

                string representation = Helper.TrySetFromAttribute(
                    this.Attributes, AttributeNameTable.coreRepresentation, string.Empty);
                if (!string.IsNullOrWhiteSpace(representation))
                {
                    concept.CoreRepresentation = new RepresentationMutableCore();
                    string coreRepresentationAgency = Helper.TrySetFromAttribute(
                        this.Attributes, AttributeNameTable.coreRepresentationAgency, string.Empty);
                    concept.CoreRepresentation.Representation = new StructureReferenceImpl(
                        coreRepresentationAgency, representation, null, SdmxStructureEnumType.CodeList);

                    /* TODO check if coreRepresentationVersion was used somewhere.
                     * var coreRepresentationVersion = Helper.TrySetFromAttribute(
                        this.Attributes, AttributeNameTable.coreRepresentationVersion, string.Empty); */
                }

                concept.ParentConcept = Helper.TrySetFromAttribute(
                    this.Attributes, AttributeNameTable.parent, concept.ParentConcept);
                concept.ParentAgency = Helper.TrySetFromAttribute(
                    this.Attributes, AttributeNameTable.parentAgency, concept.ParentAgency);
                parent.AddItem(concept);

                actions = this.AddNameableAction(concept, this.HandleChildElements);
            }

            return actions;
        }
        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;
            }
        }
        private bool SaveInMemory(IConceptSchemeMutableObject cs)
        {
            if (cs == null) return false;

            Session[KEY_PAGE_SESSION] = cs;

            return true;
        }
        private IConceptSchemeMutableObject InsertConceptInConceptscheme(IConceptSchemeMutableObject cs)
        {
            if (cs == null) return null;

            IConceptMutableObject concept = new ConceptMutableCore();

            string concept_id = txt_id_new.Text.Trim();

            IList<ITextTypeWrapperMutableObject> concept_names = AddTextName_new.TextObjectList;
            IList<ITextTypeWrapperMutableObject> concept_descs = AddTextDescription_new.TextObjectList;
            string concept_parent_id = txt_parentid_new.Text.Trim();
            // string code_order_str = txtOrderNewCode.Text.Trim();     ----- ORDINE

            #region CONCEPT ID
            if (ValidationUtils.CheckIdFormat(concept_id))
            {
                concept.Id = concept_id;
            }
            else
            {
                lblErrorOnNewInsert.Text = Resources.Messages.err_id_format;
                Utils.AppendScript("openPopUp('df-Dimension', 600);");
                Utils.AppendScript("location.href= '#concepts';");
                return null;
            }

            IEnumerable<IConceptMutableObject> concepts = (from c in cs.Items where c.Id == concept_id select c).OfType<IConceptMutableObject>();
            if (concepts.Count() > 0)
            {
                lblErrorOnNewInsert.Text = Resources.Messages.err_id_exist;
                Utils.AppendScript("openPopUp('df-Dimension', 600);");
                Utils.AppendScript("location.href= '#concepts';");
                return null;
            }
            #endregion

            #region CODE NAMES
            if (concept_names != null)
            {
                foreach (var tmpName in concept_names)
                {
                    concept.AddName(tmpName.Locale, tmpName.Value);
                }
            }
            else
            {
                lblErrorOnNewInsert.Text = Resources.Messages.err_list_name_format;
                Utils.AppendScript("openPopUp('df-Dimension', 600);");
                Utils.AppendScript("location.href= '#concepts';");
                return null;
            }
            #endregion

            #region CONCEPT DESCRIPTIONS
            if (concept_descs != null)
            {
                foreach (var tmpDescription in concept_descs)
                {
                    concept.AddDescription(tmpDescription.Locale, tmpDescription.Value);
                }
            }
            #endregion

            #region PARANT ID

            if (concept_id.Equals(concept_parent_id))
            {
                lblErrorOnNewInsert.Text = Resources.Messages.err_parent_id_same_value;
                Utils.AppendScript("openPopUp('df-Dimension-update', 600 );");
                Utils.AppendScript("location.href= '#concepts';");
                return null;
            }

            if (!concept_parent_id.Equals(string.Empty) && ValidationUtils.CheckIdFormat(concept_id))
            {
                IEnumerable<IConceptMutableObject> parentConcept = (from c in cs.Items where c.Id == concept_parent_id select c).OfType<IConceptMutableObject>();
                if (parentConcept.Count() > 0)
                    concept.ParentConcept = concept_parent_id;
                else
                {
                    lblErrorOnNewInsert.Text = Resources.Messages.err_parent_id_not_found;
                    Utils.AppendScript("openPopUp('df-Dimension', 600);");
                    Utils.AppendScript("location.href= '#concepts';");
                    return null;
                }
            }
            #endregion

            cs.Items.Add(concept);

            try
            {
                // Ultimo controllo se ottengo Immutable istanze validazione completa
                var canRead = cs.ImmutableInstance;
            }
            catch (Exception ex)
            {
                cs.Items.Remove(concept);

                return null;
            }

            return cs;
        }
        private IConceptSchemeMutableObject GetConceptschemeForm(IConceptSchemeMutableObject cs)
        {
            if (cs == null) return GetConceptschemeForm();

            bool isInError = false;                 // Indicatore di errore
            string messagesGroup = string.Empty;    // Stringa di raggruppamento errori
            int errorCounter = 1;                   // Contatore errori

            #region CONCEPTSCHEME ID
            if (!ValidationUtils.CheckIdFormat(txtDSDID.Text))
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_id_format + "<br /><br />";
                errorCounter++;
                isInError = true;
            }
            #endregion

            #region CONCEPTSCHEME AGENCY
            if (cmbAgencies.Text.Trim().Equals(string.Empty))
            {
                messagesGroup += Convert.ToString(errorCounter) + ") " + Resources.Messages.err_agency_missing + "<br /><br />";
                errorCounter++;
                isInError = true;
            }
            #endregion

            #region CONCEPTSCHEME VERSION
            if (!ValidationUtils.CheckVersionFormat(txtVersion.Text))
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_version_format + "<br /><br />";
                errorCounter++;
                isInError = true;
            }
            #endregion

            /* URI NOT REQUIRED */
            #region CONCEPTSCHEME URI
            if ((txtDSDURI.Text != string.Empty) && !ValidationUtils.CheckUriFormat(txtDSDURI.Text))
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_uri_format + "<br /><br />";
                errorCounter++;
                isInError = true;
            }
            #endregion

            #region CONCEPTSCHEME NAMES
            if (AddTextName.TextObjectList == null || AddTextName.TextObjectList.Count == 0)
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_list_name_format + "<br /><br />";
                errorCounter++;
                isInError = true;
            }
            #endregion

            #region CONCEPTSCHEME START END DATE
            bool checkForDatesCombination = true;

            if (!txtValidFrom.Text.Trim().Equals(string.Empty) && !ValidationUtils.CheckDateFormat(txtValidFrom.Text))
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_date_from_format + "<br /><br />";
                errorCounter++;
                checkForDatesCombination = false;
                isInError = true;
            }

            if (!txtValidTo.Text.Trim().Equals(string.Empty) && !ValidationUtils.CheckDateFormat(txtValidTo.Text))
            {
                messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_date_to_format + "<br /><br />";
                errorCounter++;
                checkForDatesCombination = false;
                isInError = true;
            }

            if (!txtValidFrom.Text.Trim().Equals(string.Empty) && !txtValidTo.Text.Trim().Equals(string.Empty))
            {
                // Controllo congruenza date
                if (checkForDatesCombination)
                {
                    if (!ValidationUtils.CheckDates(txtValidFrom.Text, txtValidTo.Text))
                    {
                        messagesGroup += Convert.ToString(errorCounter) + ")" + Resources.Messages.err_date_diff + "<br /><br />";
                        errorCounter++;
                        isInError = true;
                    }
                }
            }
            #endregion

            if (isInError)
            {
                Utils.ShowDialog(messagesGroup, 300);
                return null;
            }

            #region CREATE CONCEPTSCHEME FROM FORM
            cs.AgencyId = GetAgencyValue();
            cs.Id = txtDSDID.Text;
            cs.Version = txtVersion.Text;
            cs.FinalStructure = TertiaryBool.ParseBoolean(chkIsFinal.Checked);
            cs.Uri = (!txtDSDURI.Text.Trim().Equals(string.Empty) && ValidationUtils.CheckUriFormat(txtDSDURI.Text)) ? new Uri(txtDSDURI.Text) : null;
            if (!txtValidFrom.Text.Trim().Equals(string.Empty))
            {
                cs.StartDate = DateTime.ParseExact(txtValidFrom.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            }
            if (!txtValidTo.Text.Trim().Equals(string.Empty))
            {
                cs.EndDate = DateTime.ParseExact(txtValidTo.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            }
            if (cs.Names.Count != 0)
            {
                cs.Names.Clear();
            }
            if (cs.Descriptions.Count != 0)
            {
                cs.Descriptions.Clear();
            }
            foreach (var tmpName in AddTextName.TextObjectList)
            {
                cs.AddName(tmpName.Locale, tmpName.Value);
            }
            if (AddTextDescription.TextObjectList != null)
                foreach (var tmpDescription in AddTextDescription.TextObjectList)
                {
                    cs.AddDescription(tmpDescription.Locale, tmpDescription.Value);
                }

            if (cs.Annotations.Count != 0)
            {
                cs.Annotations.Clear();
            }
            if (AnnotationGeneralControl.AnnotationObjectList != null)
                foreach (var annotation in AnnotationGeneralControl.AnnotationObjectList)
                {
                    cs.AddAnnotation(annotation);
                }

            #endregion

            return cs;
        }