diff options
Diffstat (limited to 'BartService.cs')
| -rw-r--r-- | BartService.cs | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/BartService.cs b/BartService.cs index f54ec55..e3bfac1 100644 --- a/BartService.cs +++ b/BartService.cs @@ -2,6 +2,7 @@ using PagerParser.Bart; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using System.Security.Cryptography; using System.Text.Json; using System.Text.Json.Serialization; @@ -46,16 +47,30 @@ namespace PagerParser.Bart { public DateTime? CreatedOn { get; set; } public BartMember? CreatedBy { get; set; } - public int Hashcode { - get => ( - Timestamp, - Member.BartMemberId, - Status, - IsDefault, - ModifiedOn, - ModifiedBy?.BartMemberId, - CreatedOn, - CreatedBy?.BartMemberId).GetHashCode(); + public Guid Hashcode { + get { + int?[] hashes = [ + Timestamp.GetHashCode(), + Member.BartMemberId.GetHashCode(), + Status.GetHashCode(), + IsDefault.GetHashCode(), + ModifiedOn.GetHashCode(), + ModifiedBy?.BartMemberId.GetHashCode(), + CreatedOn.GetHashCode(), + CreatedBy?.BartMemberId.GetHashCode() + ]; + + var bytes = hashes + .Where(x => x is not null) + .Cast<int>() + .SelectMany(BitConverter.GetBytes) + .ToArray(); + + using var md5 = MD5.Create(); + + return new Guid(md5.ComputeHash(bytes)); + } + set => _ = value; } } |
