54 lines
1.7 KiB
C#
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());
|
|
}
|
|
} |