diff --git a/Services/GoogleSheetService.cs b/Services/GoogleSheetService.cs index 0fde520..7faddd9 100644 --- a/Services/GoogleSheetService.cs +++ b/Services/GoogleSheetService.cs @@ -95,6 +95,11 @@ namespace Disco.Plugins.ServiceTracker.Services var rawTask = RawGet(fields, _config.ColTask); var rawIssue = RawGet(fields, _config.ColIssue); + // Location: prefer the Location/Classroom column; fall back to Campus column if empty + var location = SafeGet(fields, _config.ColLocation); + if (string.IsNullOrEmpty(location) && _config.ColCampus >= 0) + location = SafeGet(fields, _config.ColCampus); + var ticket = new ExternalTicket { Source = "ntt", @@ -103,7 +108,7 @@ namespace Disco.Plugins.ServiceTracker.Services RequesterName = SafeGet(fields, _config.ColRequestedBy), TaskTitle = SafeGet(fields, _config.ColTask), DeviceName = SafeGet(fields, _config.ColTask), - Location = SafeGet(fields, _config.ColLocation), + Location = location, IssueDescription = SafeGet(fields, _config.ColIssue) ?? SafeGet(fields, _config.ColTask), RawPriority = SafeGet(fields, _config.ColPriority), RawStatus = SafeGet(fields, _config.ColStatus), @@ -153,8 +158,8 @@ namespace Disco.Plugins.ServiceTracker.Services } private string SafeGet(List fields, int index) { if (index < 0 || index >= fields.Count) return null; var val = fields[index].Trim(); return string.IsNullOrEmpty(val) ? null : val; } - private DateTime SafeGetDate(List fields, int index) { var val = SafeGet(fields, index); if (val == null) return DateTime.MinValue; DateTime dt; if (DateTime.TryParse(val, out dt)) return dt; return DateTime.MinValue; } - private DateTime? SafeGetDateNullable(List fields, int index) { var val = SafeGet(fields, index); if (val == null) return null; DateTime dt; if (DateTime.TryParse(val, out dt)) return dt; return null; } + private DateTime SafeGetDate(List fields, int index) { var val = SafeGet(fields, index); if (val == null) return DateTime.MinValue; DateTime dt; if (DateTime.TryParse(val, System.Globalization.CultureInfo.GetCultureInfo("en-AU"), System.Globalization.DateTimeStyles.None, out dt)) return dt; if (DateTime.TryParse(val, out dt)) return dt; return DateTime.MinValue; } + private DateTime? SafeGetDateNullable(List fields, int index) { var val = SafeGet(fields, index); if (val == null) return null; DateTime dt; if (DateTime.TryParse(val, System.Globalization.CultureInfo.GetCultureInfo("en-AU"), System.Globalization.DateTimeStyles.None, out dt)) return dt; if (DateTime.TryParse(val, out dt)) return dt; return null; } private List ParseCsvLine(string line) {