Ejemplo n.º 1
0
        public override bool ValidValue(object aValue)
        {
            Check.Require(aValue != null, string.Format(CommonStrings.XMustNotBeNull, "aValue"));

            if (this.AnyAllowed())
            {
                return(true);
            }

            bool IsValidValue = true;

            DvOrdinal aValueDvOrdinal = aValue as DvOrdinal;

            if (aValueDvOrdinal != null)
            {
                bool foundInList = false;

                foreach (DvOrdinal dvOrdinal in this.List)
                {
                    if (dvOrdinal == aValueDvOrdinal)
                    {
                        if (string.IsNullOrEmpty(aValueDvOrdinal.Symbol.DefiningCode.CodeString) ||
                            string.IsNullOrEmpty(aValueDvOrdinal.Symbol.DefiningCode.TerminologyId.Value))
                        {
                            aValueDvOrdinal.Symbol.DefiningCode.CodeString =
                                dvOrdinal.Symbol.DefiningCode.CodeString;

                            aValueDvOrdinal.Symbol.DefiningCode.TerminologyId =
                                new TerminologyId(dvOrdinal.Symbol.DefiningCode.TerminologyId.Value);
                        }

                        foundInList = true;
                        break;
                    }
                }

                if (!foundInList)
                {
                    IsValidValue = false;
                    this.ValidationContext.AcceptValidationError(this,
                                                                 string.Format(AmValidationStrings.XNotInCDvOrdinalList, aValueDvOrdinal));
                }
                else
                {
                    if (!ValidationUtility.ValidValueTermDef(aValueDvOrdinal.Symbol, this.Parent, ValidationContext.TerminologyService))
                    {
                        IsValidValue = false;
                        this.ValidationContext.AcceptValidationError(this, string.Format(
                                                                         AmValidationStrings.DvOrdinalSymbolXIncorrectForCodeY,
                                                                         aValueDvOrdinal.Symbol.Value, aValueDvOrdinal.Symbol.DefiningCode.CodeString));
                    }
                }
            }
            else
            {
                IsValidValue = false;
                this.ValidationContext.AcceptValidationError(this,
                                                             string.Format(AmValidationStrings.InvalidDvOrdinalX, aValue));
            }

            return(IsValidValue);
        }
Ejemplo n.º 2
0
        private void ReadXml(CDvOrdinal cDomainType)
        {
            reader.ReadStartElement();
            reader.MoveToContent();

            this.ReadXmlBase((CObject)cDomainType);

            if (reader.LocalName == "assumed_value")
            {
                DvOrdinal assumedValue = new DvOrdinal();
                assumedValue.ReadXml(reader);
                cDomainType.AssumedValue = assumedValue;
            }

            if (reader.LocalName == "list")
            {
                System.Collections.Generic.List<DvOrdinal> ordinalList =
                    new System.Collections.Generic.List<DvOrdinal>();
                do
                {
                    DvOrdinal ordinal = new DvOrdinal();
                    ordinal.ReadXml(reader);
                    ordinalList.Add(ordinal);
                } while (reader.LocalName == "list" && reader.NodeType== XmlNodeType.Element);

                Check.Assert(ordinalList.Count>0, "ordinalList may not be empty.");
                cDomainType.List = new Set<DvOrdinal>(ordinalList);
            }

            reader.ReadEndElement();
            reader.MoveToContent();
        }