private byte[] BuildExtendedInfo() { if (ExtendedInfo != null) { if (ExtendedInfo.Length != 48) { throw new ArgumentException("Extended info needs to be 48 bytes in length."); } return(ExtendedInfo); } if (BirthVolumeId.HasValue || BirthObjectId.HasValue || DomainId.HasValue) { MemoryStream stm = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stm); writer.Write(BirthVolumeId?.ToByteArray() ?? new byte[16]); writer.Write(BirthObjectId?.ToByteArray() ?? new byte[16]); writer.Write(DomainId?.ToByteArray() ?? new byte[16]); return(stm.ToArray()); } return(new byte[48]); }
// public Guid ObjectId { get; } // public Guid BirthVolumeId { get; } // public Guid BirthObjectId { get; } // public Guid DomainId { get; } // ObjectId = new Guid(br.ReadBytes(16)); // BirthVolumeId = new Guid(br.ReadBytes(16)); // BirthObjectId = new Guid(br.ReadBytes(16)); // DomainId = new Guid(br.ReadBytes(16)); public override string ToString() { var sb = new StringBuilder(); sb.AppendLine("**** OBJECT ID ****"); sb.AppendLine(base.ToString()); sb.AppendLine(); var tempMac = ObjectId.ToString().Split('-').Last(); var objectIdMacAddress = Regex.Replace(tempMac, ".{2}", "$0:"); var objectIdCreatedOn = GetDateTimeOffsetFromGuid(ObjectId); tempMac = BirthObjectId.ToString().Split('-').Last(); var birthVolumeIdMacAddress = Regex.Replace(tempMac, ".{2}", "$0:"); var birthVolumeIdCreatedOn = GetDateTimeOffsetFromGuid(BirthObjectId); var extra = $"\tBirth Volume Id MAC: {birthVolumeIdMacAddress}\r\n\tBirth Volume Id Created On: {birthVolumeIdCreatedOn.ToUniversalTime():yyyy-MM-dd HH:mm:ss.fffffff}\r\n"; if (BirthObjectId.ToString() == "00000000-0000-0000-0000-000000000000") { extra = string.Empty; } sb.AppendLine( $"Object Id: {ObjectId}\r\n\tObject Id MAC: {objectIdMacAddress}\r\n\tObject Id Created On: {objectIdCreatedOn.ToUniversalTime():yyyy-MM-dd HH:mm:ss.fffffff}\r\n" + $"Birth Volume Id: {BirthVolumeId}\r\n" + extra + $"Birth Object Id: {BirthObjectId}\r\n" + $"Domain Id: {DomainId}"); return(sb.ToString()); }