Files
monorepo/LCU.API.Internal.Document/LCU.API.Internal.DocumentLib/Containers/DocumentInformation.cs
T
2026-03-13 09:11:35 -05:00

54 lines
1.7 KiB
C#

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<string, string> Attributes { get; set; }
}
public class BigIntSerializer : SerializerBase<BigInteger>
{
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());
}
}