From ee541d567f6df7c5c43db9a60edbaabd1158d695 Mon Sep 17 00:00:00 2001 From: jessikitty Date: Wed, 22 Apr 2026 09:51:34 +1000 Subject: [PATCH] Downgrade to C# 5 - remove interpolation, null-conditional, expression-bodied members --- WebHandler/ADCompareWebHandler.cs | 55 ++++++++++++++++++------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/WebHandler/ADCompareWebHandler.cs b/WebHandler/ADCompareWebHandler.cs index 090f3f5..723f6a0 100644 --- a/WebHandler/ADCompareWebHandler.cs +++ b/WebHandler/ADCompareWebHandler.cs @@ -12,9 +12,9 @@ namespace Disco.Plugins.ADCompare.WebHandler { public override ActionResult ExecuteAction(string ActionName) { - switch (ActionName?.ToLower()) + var action = ActionName != null ? ActionName.ToLower() : ""; + switch (action) { - case null: case "": case "index": return Index(); @@ -58,28 +58,39 @@ namespace Disco.Plugins.ADCompare.WebHandler foreach (var r in summary.Results.Where(r => !r.IsMatch)) { sb.AppendLine(string.Join(",", - Csv(r.SerialNumber), Csv(r.ComputerName), - Csv(r.DiscoAssignedUserId), Csv(r.DiscoAssignedUserDisplayName), - Csv(r.ADManagedByUserId), Csv(r.ADManagedByDisplayName), - r.IsMatch.ToString(), Csv(r.MismatchReason))); + CsvEscape(r.SerialNumber), CsvEscape(r.ComputerName), + CsvEscape(r.DiscoAssignedUserId), CsvEscape(r.DiscoAssignedUserDisplayName), + CsvEscape(r.ADManagedByUserId), CsvEscape(r.ADManagedByDisplayName), + r.IsMatch.ToString(), CsvEscape(r.MismatchReason))); } + var fileName = "AD_ManagedBy_Compare_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".csv"; HostController.Response.Headers.Add("Content-Disposition", - $"attachment; filename=\"AD_ManagedBy_Compare_{DateTime.Now:yyyyMMdd_HHmmss}.csv\""); - return new ContentResult { Content = sb.ToString(), ContentType = "text/csv", ContentEncoding = Encoding.UTF8 }; + "attachment; filename=\"" + fileName + "\""); + return new ContentResult + { + Content = sb.ToString(), + ContentType = "text/csv", + ContentEncoding = Encoding.UTF8 + }; } - private string Csv(string v) => $"\"{(v ?? "").Replace("\"", "\"\"")}\""; + private string CsvEscape(string v) + { + if (v == null) v = ""; + return "\"" + v.Replace("\"", "\"\"") + "\""; + } private string BuildDashboardHtml() { var pluginUrl = Url.Action(MVC.API.Disco.Plugin.PluginWebAction(Manifest.Id, null)); - return $@" + + return @"

AD Compare — Device Managed By

Compares the AD computer Managed By field against the Disco Assigned User.

- +
"; } }