using System; using System.Collections.Generic; using System.Numerics; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Serializers; namespace LCU.API.Internal.DocumentLib.Containers; [BsonIgnoreExtraElements] public class DocumentInformation { public Guid DocumentId { get; set; } public Guid? DocumentBlobId { get; set; } public Guid? TraceId { get; set; } public string Name { get; set; } public string Type { get; set; } public string Source { get; set; } public string DataSource { get; set; } [BsonSerializer(typeof(BigIntSerializer))] public BigInteger FileSize { get; set; } public bool? ScanStatus { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Utc)] public DateTime UploadDate { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Utc)] public DateTime? LastModifiedDate { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Utc)] public DateTime CreatedDate { get; set; } public string[] PersonNumbers { get; set; } public string[] OrganizationNumbers { get; set; } public string AccountNumber { get; set; } public Dictionary Attributes { get; set; } } public class BigIntSerializer : SerializerBase { public override BigInteger Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) { var val = context.Reader.ReadString(); return BigInteger.Parse(val); } public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, BigInteger value) { context.Writer.WriteString(value.ToString()); } }