Пример #1
0
        public BlittableJsonReaderObject ToBlittable(object entity, DocumentInfo documentInfo)
        {
            //maybe we don't need to do anything..
            if (entity is BlittableJsonReaderObject blittable)
            {
                return(blittable);
            }

            if (documentInfo != null)
            {
                _session.OnBeforeConversionToDocumentInvoke(documentInfo.Id, entity);
            }

            using (DefaultRavenContractResolver.RegisterExtensionDataGetter(FillMissingProperties))
                using (var writer = new BlittableJsonWriter(_session.Context, documentInfo))
                {
                    var document = ToBlittableInternal(entity, _session.Conventions, _session.Context, _session.JsonSerializer, writer);

                    if (documentInfo != null)
                    {
                        _session.OnAfterConversionToDocumentInvoke(documentInfo.Id, entity, ref document);
                    }

                    return(document);
                }
        }