private IAnnotationMutableObject GetAnnotationOrder(int index) { IAnnotationMutableObject annotation = new AnnotationMutableCore(); ITextTypeWrapperMutableObject iText = new TextTypeWrapperMutableCore(); iText.Value = index.ToString(); iText.Locale = "en"; annotation.AddText(iText); annotation.Type = "@ORDER@"; return annotation; }
/// <summary> /// Initializes a new instance of the <see cref="MetadataTargetCore"/> class. /// </summary> /// <param name="fullTarget">The SDMX v2.0 full target identifier.</param> /// <param name="parent">The parent.</param> protected internal MetadataTargetCore(FullTargetIdentifierType fullTarget, IMetadataStructureDefinitionObject parent) : base(fullTarget, SdmxStructureType.GetFromEnum(SdmxStructureEnumType.MetadataTarget), fullTarget.id, fullTarget.uri, fullTarget.Annotations, parent) { if (fullTarget.IdentifierComponent != null) { foreach (var currentIdentifier in fullTarget.IdentifierComponent) { var identifiableTarget = new IdentifiableTargetMutableCore() { Id = currentIdentifier.id, Uri = currentIdentifier.uri }; if (currentIdentifier.Annotations != null && currentIdentifier.Annotations.Annotation != null) { foreach (var annotationType in currentIdentifier.Annotations.Annotation) { var annotation = new AnnotationMutableCore { Title = annotationType.AnnotationTitle, Type = annotationType.AnnotationType1, Uri = annotationType.AnnotationURL }; foreach (var textType in annotationType.AnnotationText) { annotation.AddText(textType.lang, textType.TypedValue); } identifiableTarget.AddAnnotation(annotation); } } if (currentIdentifier.RepresentationScheme != null) { var id = currentIdentifier.RepresentationScheme.representationScheme; var agency = currentIdentifier.RepresentationScheme.representationSchemeAgency; var schemaType = XmlobjectsEnumUtil.GetSdmxStructureTypeFromRepresentationSchemeTypeV20(currentIdentifier.RepresentationScheme.representationSchemeType1); // Only on .NET var version = currentIdentifier.RepresentationScheme.RepresentationSchemeVersionEstat ?? MaintainableObject.DefaultVersion; var representation = new RepresentationMutableCore(); var representationRef = new StructureReferenceImpl(new MaintainableRefObjectImpl(agency, id, version), schemaType); representation.Representation = representationRef; identifiableTarget.Representation = representation; } if (currentIdentifier.TargetObjectClass != null) { identifiableTarget.ReferencedStructureType = XmlobjectsEnumUtil.GetSdmxStructureType(currentIdentifier.TargetObjectClass); } this._identifiableTarget.Add(new IdentifiableTargetCore(identifiableTarget, this)); } } }
/// <summary> /// Retrieve annotations for the specified SDMX <paramref name="annotable"/> object /// </summary> /// <param name="sysId">The artefact primary key value.</param> /// <param name="annotable">The SDMX object.</param> public void RetrieveAnnotations(long sysId, IAnnotableMutableObject annotable) { using (var command = this._annotationCommandBuilder.Build(new PrimaryKeySqlQuery(this._annotationSqlQueryInfo, sysId))) using (var dataReader = this._mappingStoreDb.ExecuteReader(command)) { int annIdIdx = dataReader.GetOrdinal("ANN_ID"); int idIdx = dataReader.GetOrdinal("ID"); int txtIdx = dataReader.GetOrdinal("TEXT"); int langIdx = dataReader.GetOrdinal("LANGUAGE"); int typeIdx = dataReader.GetOrdinal("TYPE"); int titleIdx = dataReader.GetOrdinal("TITLE"); int urlIdx = dataReader.GetOrdinal("URL"); IDictionary<long, IAnnotationMutableObject> annotationMap = new Dictionary<long, IAnnotationMutableObject>(); while (dataReader.Read()) { var annId = dataReader.GetInt64(annIdIdx); IAnnotationMutableObject annotation; if (!annotationMap.TryGetValue(annId, out annotation)) { annotation = new AnnotationMutableCore { Id = DataReaderHelper.GetString(dataReader, idIdx), Title = DataReaderHelper.GetString(dataReader, titleIdx), Type = DataReaderHelper.GetString(dataReader, typeIdx) }; var url = DataReaderHelper.GetString(dataReader, urlIdx); Uri uri; if (!string.IsNullOrWhiteSpace(url) && Uri.TryCreate(url, UriKind.RelativeOrAbsolute, out uri)) { annotation.Uri = uri; } annotable.AddAnnotation(annotation); } var text = DataReaderHelper.GetString(dataReader, txtIdx); if (!string.IsNullOrWhiteSpace(text)) { annotation.AddText(DataReaderHelper.GetString(dataReader, langIdx), text); } } } }
public IAnnotationMutableObject AddAnnotation(string title, string type, string url) { IAnnotationMutableObject mutable = new AnnotationMutableCore(); mutable.Title = title; mutable.Type = type; mutable.Uri = new Uri(url); AddAnnotation(mutable); return mutable; }
private IAnnotationMutableObject CreateAnnotation(string id, string title, string type, string uri, IList<ITextTypeWrapperMutableObject> texts) { IAnnotationMutableObject annotation = new AnnotationMutableCore(); annotation.Id = id; annotation.Title = title; annotation.Type = type; annotation.Uri = (uri != string.Empty) ? new Uri(uri) : null; foreach (ITextTypeWrapperMutableObject text in texts) annotation.AddText(text); return annotation; }