fix: read ColCampus as location fallback; handle ColCompletionDate=-1 gracefully; update column indices for new sheet layout
This commit is contained in:
@@ -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<string> 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<string> 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<string> 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<string> 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<string> 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<string> ParseCsvLine(string line)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user