Example #1
0
        public Metadata CreateMetadata()
        {
            var metadata = new Metadata
            {
                DocumentType = _documentType,
                Classes = GetAll().Select(UserDefinedClassProxy.FromUserDefinedClass).ToList(),
                DateTimeFormats = _dateTimeFormats,
                References = _references,
                Usings = _usings
            };

            return metadata;
        }
Example #2
0
        public void LoadFromMetadata(Metadata metadata, IFactory factory)
        {
            foreach (var classProxy in metadata.Classes)
            {
                var domPath = classProxy.GetDomPath(factory);
                var userDefinedClass = GetOrAdd(domPath);
                userDefinedClass.CustomName = classProxy.CustomName;

                foreach (var propertyProxy in classProxy.Properties)
                {
                    // We're sending 'true' for the isParentClassNew parameter, since we don't want to mark anything as nullable.
                    userDefinedClass.AddProperty(propertyProxy.ToProperty(this, factory), true, true);
                }
            }

            _documentType = metadata.DocumentType;

            if (metadata.References != null)
            {
                foreach (var reference in metadata.References)
                {
                    _references.Add(reference);
                }
            }

            if (metadata.Usings != null)
            {
                foreach (var @using in metadata.Usings)
                {
                    _usings.Add(@using);
                }
            }

            if (metadata.DateTimeFormats != null)
            {
                foreach (var dateTimeFormat in metadata.DateTimeFormats)
                {
                    _dateTimeFormats.Add(dateTimeFormat);
                }
            }
        }