From c82e0c8b9bb2f0d834cdd0f73404faaa48b5da17 Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Wed, 8 Jan 2025 10:49:26 -0700 Subject: [PATCH] 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. --- Helper/StaticHelper.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Helper/StaticHelper.cs b/Helper/StaticHelper.cs index 8041553..f540ed7 100644 --- a/Helper/StaticHelper.cs +++ b/Helper/StaticHelper.cs @@ -1,6 +1,7 @@ using CarCareTracker.Models; using CsvHelper; using System.Globalization; +using System.Security.Cryptography; using System.Text; using System.Text.Json; @@ -771,10 +772,10 @@ namespace CarCareTracker.Helper { var dtStart = reminder.Date.Date.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("DTSTAMP:" + DateTime.Now.ToString("yyyyMMddTHHmm00")); - sb.AppendLine("UID:" + Guid.NewGuid()); + sb.AppendLine("UID:" + calendarUID); sb.AppendLine("DTSTART:" + dtStart); sb.AppendLine("DTEND:" + dtEnd); sb.AppendLine($"SUMMARY:{reminder.Description}");