Use a MD5 hash to get exactly 16 bytes so the GUID is always valid and identical for the calendar event with same date and description.

This commit is contained in:
DESKTOP-T0O5CDB\DESK-555BD
2025-01-08 10:49:26 -07:00
parent c72877e16b
commit c82e0c8b9b

View File

@@ -1,6 +1,7 @@
using CarCareTracker.Models; using CarCareTracker.Models;
using CsvHelper; using CsvHelper;
using System.Globalization; using System.Globalization;
using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Text.Json; using System.Text.Json;
@@ -771,10 +772,10 @@ namespace CarCareTracker.Helper
{ {
var dtStart = reminder.Date.Date.ToString("yyyyMMddTHHmm00"); var dtStart = reminder.Date.Date.ToString("yyyyMMddTHHmm00");
var dtEnd = reminder.Date.Date.AddDays(1).AddMilliseconds(-1).ToString("yyyyMMddTHHmm00"); var dtEnd = reminder.Date.Date.AddDays(1).AddMilliseconds(-1).ToString("yyyyMMddTHHmm00");
var calendarUID = new Guid(MD5.HashData(Encoding.UTF8.GetBytes($"{dtStart}_{reminder.Description}")));
sb.AppendLine("BEGIN:VEVENT"); sb.AppendLine("BEGIN:VEVENT");
sb.AppendLine("DTSTAMP:" + DateTime.Now.ToString("yyyyMMddTHHmm00")); sb.AppendLine("DTSTAMP:" + DateTime.Now.ToString("yyyyMMddTHHmm00"));
sb.AppendLine("UID:" + Guid.NewGuid()); sb.AppendLine("UID:" + calendarUID);
sb.AppendLine("DTSTART:" + dtStart); sb.AppendLine("DTSTART:" + dtStart);
sb.AppendLine("DTEND:" + dtEnd); sb.AppendLine("DTEND:" + dtEnd);
sb.AppendLine($"SUMMARY:{reminder.Description}"); sb.AppendLine($"SUMMARY:{reminder.Description}");