示例#1
0
        private void WriteDefinition()
        {
            string metadataPath = System.IO.Path.Combine(this.Path, AnnotationStoreCommon.GetDefinitionFileName(this.Name) + this.Extension);

            using (var file = File.CreateText(metadataPath))
                using (var writer = new JsonTextWriter(file))
                    using (var validatingWriter = new JSchemaValidatingWriter(writer))
                    {
                        validatingWriter.Schema = JSchema.Parse(AnnotationStoreCommon.DefinitionSchema, this.Resolver);
                        validatingWriter.ValidationEventHandler += (s, e) => throw new InvalidDataException(e.Message);
                        this.Serializer.Serialize(validatingWriter, this.definition);
                    }
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AnnotationStoreReader"/> class.
        /// </summary>
        /// <param name="name">The name of the application that generated the persisted files, or the root name of the files</param>
        /// <param name="path">The directory in which the main persisted file resides or will reside, or null to create a volatile data store</param>
        public AnnotationStoreReader(string name, string path)
            : base(name, path, AnnotationStoreCommon.DataSchema, AnnotationStoreCommon.DefaultExtension, AnnotationStoreCommon.PreloadSchemas)
        {
            // load definition
            string metadataPath = System.IO.Path.Combine(this.Path, AnnotationStoreCommon.GetDefinitionFileName(this.Name) + this.Extension);

            using (var file = File.OpenText(metadataPath))
                using (var reader = new JsonTextReader(file))
                    using (var validatingReader = new JSchemaValidatingReader(reader))
                    {
                        validatingReader.Schema = JSchema.Parse(AnnotationStoreCommon.DefinitionSchema, this.Resolver);
                        validatingReader.ValidationEventHandler += (s, e) => throw new InvalidDataException(e.Message);
                        this.definition = this.Serializer.Deserialize <AnnotatedEventDefinition>(validatingReader);
                    }
        }