From e809c63e37932c928e40794b73cccb6c1214f1e6 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Mon, 26 Jan 2026 12:31:01 +1100 Subject: [PATCH] #184: optionally set managed group descriptions --- .../ADManagedGroupConfiguration.cs | 1 + .../Interop/ActiveDirectory/ADManagedGroup.cs | 20 +-- .../ActiveDirectoryManagedGroups.cs | 23 +-- .../API/Controllers/DeviceBatchController.cs | 38 ++--- .../API/Controllers/DeviceFlagController.cs | 36 ++--- .../Controllers/DeviceProfileController.cs | 38 ++--- .../Controllers/DocumentTemplateController.cs | 42 +++--- .../API/Controllers/UserFlagController.cs | 56 ++++--- .../Views/Shared/LinkedGroupInstance.cshtml | 6 +- .../Shared/LinkedGroupInstance.generated.cs | 54 +++++-- .../Views/Shared/LinkedGroupShared.cshtml | 31 +++- .../Shared/LinkedGroupShared.generated.cs | 142 +++++++++++------- .../API.DeviceBatchController.generated.cs | 24 +-- .../API.DeviceFlagController.generated.cs | 32 ++-- .../API.DeviceProfileController.generated.cs | 24 +-- ...PI.DocumentTemplateController.generated.cs | 32 ++-- .../T4MVC/API.UserFlagController.generated.cs | 32 ++-- 17 files changed, 351 insertions(+), 280 deletions(-) diff --git a/Disco.Models/Services/Interop/ActiveDirectory/ADManagedGroupConfiguration.cs b/Disco.Models/Services/Interop/ActiveDirectory/ADManagedGroupConfiguration.cs index 815e38a0..c2fca86a 100644 --- a/Disco.Models/Services/Interop/ActiveDirectory/ADManagedGroupConfiguration.cs +++ b/Disco.Models/Services/Interop/ActiveDirectory/ADManagedGroupConfiguration.cs @@ -6,5 +6,6 @@ namespace Disco.Models.Services.Interop.ActiveDirectory { public string GroupId { get; set; } public DateTime? FilterBeginDate { get; set; } + public bool UpdateDescription { get; set; } = true; } } diff --git a/Disco.Services/Interop/ActiveDirectory/ADManagedGroup.cs b/Disco.Services/Interop/ActiveDirectory/ADManagedGroup.cs index 0f908c58..45e02c16 100644 --- a/Disco.Services/Interop/ActiveDirectory/ADManagedGroup.cs +++ b/Disco.Services/Interop/ActiveDirectory/ADManagedGroup.cs @@ -80,21 +80,23 @@ namespace Disco.Services.Interop.ActiveDirectory return JsonConvert.DeserializeObject(ConfigurationJson); } public static string ValidConfigurationToJson(string GroupKey, string GroupId, DateTime? FilterBeginDate) + => ValidConfigurationToJson(GroupKey, GroupId, FilterBeginDate, true); + public static string ValidConfigurationToJson(string groupKey, string groupId, DateTime? filterBeginDate, bool updateDescription) { - if (string.IsNullOrWhiteSpace(GroupId)) - GroupId = null; + if (string.IsNullOrWhiteSpace(groupId)) + groupId = null; - if (GroupId != null) - GroupId = ActiveDirectory.Context.ManagedGroups.ValidateGroupId(GroupId, GroupKey); - - if (GroupId == null) + if (groupId != null) + groupId = ActiveDirectory.Context.ManagedGroups.ValidateGroupId(groupId, groupKey); + if (groupId == null) return null; else return JsonConvert.SerializeObject(new ADManagedGroupConfiguration() { - GroupId = GroupId, - FilterBeginDate = FilterBeginDate - }, new JsonSerializerSettings() { DefaultValueHandling = DefaultValueHandling.Ignore }); + GroupId = groupId, + FilterBeginDate = filterBeginDate, + UpdateDescription = updateDescription, + }, new JsonSerializerSettings()); } public abstract void Dispose(); diff --git a/Disco.Services/Interop/ActiveDirectory/ActiveDirectoryManagedGroups.cs b/Disco.Services/Interop/ActiveDirectory/ActiveDirectoryManagedGroups.cs index 98561cab..13b9cbe4 100644 --- a/Disco.Services/Interop/ActiveDirectory/ActiveDirectoryManagedGroups.cs +++ b/Disco.Services/Interop/ActiveDirectory/ActiveDirectoryManagedGroups.cs @@ -13,9 +13,9 @@ namespace Disco.Services.Interop.ActiveDirectory public class ActiveDirectoryManagedGroups : IDisposable { - private ConcurrentDictionary managedGroups; - private Subject actionBuffer; - private IDisposable actionBufferSubscription; + private readonly ConcurrentDictionary managedGroups; + private readonly Subject actionBuffer; + private readonly IDisposable actionBufferSubscription; internal ActiveDirectoryManagedGroups() { @@ -379,13 +379,16 @@ namespace Disco.Services.Interop.ActiveDirectory throw new InvalidOperationException($"This group [{adGroup.DistinguishedName}] is a Critical System Active Directory Object and Disco ICT refuses to modify it"); // Update Description - var groupDescription = $"Disco ICT: {actionGroup.Item1.GroupDescription}"; - if (adGroupEntry.Entry.Properties.Value("description") != groupDescription) + if (actionGroup.Item1.Configuration.UpdateDescription) { - var adGroupEntryDescription = adGroupEntry.Entry.Properties["description"]; - if (adGroupEntryDescription.Count > 0) - adGroupEntryDescription.Clear(); - adGroupEntryDescription.Add(groupDescription); + var groupDescription = $"Disco ICT: {actionGroup.Item1.GroupDescription}"; + if (adGroupEntry.Entry.Properties.Value("description") != groupDescription) + { + var adGroupEntryDescription = adGroupEntry.Entry.Properties["description"]; + if (adGroupEntryDescription.Count > 0) + adGroupEntryDescription.Clear(); + adGroupEntryDescription.Add(groupDescription); + } } // Sync Members @@ -430,7 +433,7 @@ namespace Disco.Services.Interop.ActiveDirectory internal class ADManagedGroupScheduledAction { - private Func> memberResolver; + private readonly Func> memberResolver; public ADManagedGroup ManagedGroup { get; private set; } public ADManagedGroupScheduledActionType ActionType { get; private set; } diff --git a/Disco.Web/Areas/API/Controllers/DeviceBatchController.cs b/Disco.Web/Areas/API/Controllers/DeviceBatchController.cs index 0355c339..2d74247b 100644 --- a/Disco.Web/Areas/API/Controllers/DeviceBatchController.cs +++ b/Disco.Web/Areas/API/Controllers/DeviceBatchController.cs @@ -32,8 +32,6 @@ namespace Disco.Web.Areas.API.Controllers private const string pInsuredUntil = "insureduntil"; private const string pInsuranceDetails = "insurancedetails"; private const string pComments = "comments"; - private const string pDevicesLinkedGroup = "deviceslinkedgroup"; - private const string pAssignedUsersLinkedGroup = "assigneduserslinkedgroup"; [DiscoAuthorize(Claims.Config.DeviceBatch.Configure)] [HttpPost, ValidateAntiForgeryToken] @@ -94,12 +92,6 @@ namespace Disco.Web.Areas.API.Controllers case pComments: UpdateComments(deviceBatch, value); break; - case pDevicesLinkedGroup: - UpdateDevicesLinkedGroup(deviceBatch, value); - break; - case pAssignedUsersLinkedGroup: - UpdateAssignedUsersLinkedGroup(deviceBatch, value); - break; default: throw new Exception("Invalid Update Key"); } @@ -224,18 +216,17 @@ namespace Disco.Web.Areas.API.Controllers [DiscoAuthorize(Claims.Config.DeviceBatch.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateDevicesLinkedGroup(int id, string GroupId = null, bool redirect = false) + public virtual ActionResult UpdateDevicesLinkedGroup(int id, string groupId = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var deviceBatch = Database.DeviceBatches.Find(id); - if (deviceBatch == null) - throw new ArgumentException("Invalid Device Batch Id", "id"); + var deviceBatch = Database.DeviceBatches.Find(id) + ?? throw new ArgumentException("Invalid Device Batch Id", nameof(id)); - var syncTaskStatus = UpdateDevicesLinkedGroup(deviceBatch, GroupId); + var syncTaskStatus = UpdateDevicesLinkedGroup(deviceBatch, groupId, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DeviceBatch.Index(deviceBatch.Id)); @@ -257,18 +248,17 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.DeviceBatch.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId = null, bool redirect = false) + public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var deviceBatch = Database.DeviceBatches.Find(id); - if (deviceBatch == null) - throw new ArgumentException("Invalid Device Batch Id", "id"); + var deviceBatch = Database.DeviceBatches.Find(id) + ?? throw new ArgumentException("Invalid Device Batch Id", nameof(id)); - var syncTaskStatus = UpdateAssignedUsersLinkedGroup(deviceBatch, GroupId); + var syncTaskStatus = UpdateAssignedUsersLinkedGroup(deviceBatch, groupId, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DeviceBatch.Index(deviceBatch.Id)); @@ -486,9 +476,9 @@ namespace Disco.Web.Areas.API.Controllers Database.SaveChanges(); } - private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceBatch DeviceBatch, string devicesLinkedGroup) + private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceBatch DeviceBatch, string devicesLinkedGroup, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceBatchDevicesManagedGroup.GetKey(DeviceBatch), devicesLinkedGroup, null); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceBatchDevicesManagedGroup.GetKey(DeviceBatch), devicesLinkedGroup, null, updateDescription); if (DeviceBatch.DevicesLinkedGroup != configJson) { @@ -503,9 +493,9 @@ namespace Disco.Web.Areas.API.Controllers return null; } - private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(DeviceBatch DeviceBatch, string assignedUsersLinkedGroup) + private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(DeviceBatch DeviceBatch, string assignedUsersLinkedGroup, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceBatchAssignedUsersManagedGroup.GetKey(DeviceBatch), assignedUsersLinkedGroup, null); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceBatchAssignedUsersManagedGroup.GetKey(DeviceBatch), assignedUsersLinkedGroup, null, updateDescription); if (DeviceBatch.AssignedUsersLinkedGroup != configJson) { diff --git a/Disco.Web/Areas/API/Controllers/DeviceFlagController.cs b/Disco.Web/Areas/API/Controllers/DeviceFlagController.cs index a504b574..76ebc9de 100644 --- a/Disco.Web/Areas/API/Controllers/DeviceFlagController.cs +++ b/Disco.Web/Areas/API/Controllers/DeviceFlagController.cs @@ -166,19 +166,17 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.DeviceFlag.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateDevicesLinkedGroup(int id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateDevicesLinkedGroup(int id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var deviceFlag = Database.DeviceFlags.Find(id); - if (deviceFlag == null) - throw new ArgumentException("Invalid Device Flag Id", "id"); + var deviceFlag = Database.DeviceFlags.Find(id) + ?? throw new ArgumentException("Invalid Device Flag Id", nameof(id)); - - var syncTaskStatus = UpdateDevicesLinkedGroup(deviceFlag, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateDevicesLinkedGroup(deviceFlag, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DeviceFlag.Index(deviceFlag.Id)); @@ -200,25 +198,23 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.DeviceFlag.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateAssignedUserLinkedGroup(int id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateAssignedUserLinkedGroup(int id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var DeviceFlag = Database.DeviceFlags.Find(id); - if (DeviceFlag == null) - throw new ArgumentException("Invalid Device Flag Id", "id"); + var deviceFlag = Database.DeviceFlags.Find(id) + ?? throw new ArgumentException("Invalid Device Flag Id", nameof(id)); - - var syncTaskStatus = UpdateAssignedUserLinkedGroup(DeviceFlag, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateAssignedUserLinkedGroup(deviceFlag, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) - return RedirectToAction(MVC.Config.DeviceFlag.Index(DeviceFlag.Id)); + return RedirectToAction(MVC.Config.DeviceFlag.Index(deviceFlag.Id)); else { - syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.DeviceFlag.Index(DeviceFlag.Id))); + syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.DeviceFlag.Index(deviceFlag.Id))); return RedirectToAction(MVC.Config.Logging.TaskStatus(syncTaskStatus.SessionId)); } else @@ -340,9 +336,9 @@ namespace Disco.Web.Areas.API.Controllers DeviceFlagService.Update(Database, deviceFlag); } - private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceFlag deviceFlag, string devicesLinkedGroup, DateTime? filterBeginDate) + private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceFlag deviceFlag, string devicesLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceFlagDevicesManagedGroup.GetKey(deviceFlag), devicesLinkedGroup, filterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceFlagDevicesManagedGroup.GetKey(deviceFlag), devicesLinkedGroup, filterBeginDate, updateDescription); if (deviceFlag.DevicesLinkedGroup != configJson) { @@ -358,9 +354,9 @@ namespace Disco.Web.Areas.API.Controllers return null; } - private ScheduledTaskStatus UpdateAssignedUserLinkedGroup(DeviceFlag deviceFlag, string assignedUserLinkedGroup, DateTime? filterBeginDate) + private ScheduledTaskStatus UpdateAssignedUserLinkedGroup(DeviceFlag deviceFlag, string assignedUserLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceFlagDeviceAssignedUsersManagedGroup.GetKey(deviceFlag), assignedUserLinkedGroup, filterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceFlagDeviceAssignedUsersManagedGroup.GetKey(deviceFlag), assignedUserLinkedGroup, filterBeginDate, updateDescription); if (deviceFlag.DeviceUsersLinkedGroup != configJson) { diff --git a/Disco.Web/Areas/API/Controllers/DeviceProfileController.cs b/Disco.Web/Areas/API/Controllers/DeviceProfileController.cs index 44e2e882..a2c5ff5b 100644 --- a/Disco.Web/Areas/API/Controllers/DeviceProfileController.cs +++ b/Disco.Web/Areas/API/Controllers/DeviceProfileController.cs @@ -38,8 +38,6 @@ namespace Disco.Web.Areas.API.Controllers private const string pAssignedUserLocalAdmin = "assigneduserlocaladmin"; private const string pSetAssignedUserForLogon = "setassigneduserforlogon"; private const string pAllowUntrustedReimageJobEnrolment = "allowuntrustedreimagejobrnrolment"; - private const string pDevicesLinkedGroup = "deviceslinkedgroup"; - private const string pAssignedUsersLinkedGroup = "assigneduserslinkedgroup"; [DiscoAuthorize(Claims.Config.DeviceProfile.Configure)] [HttpPost, ValidateAntiForgeryToken] @@ -106,12 +104,6 @@ namespace Disco.Web.Areas.API.Controllers case pAllowUntrustedReimageJobEnrolment: UpdateAllowUntrustedReimageJobEnrolment(deviceProfile, value); break; - case pDevicesLinkedGroup: - UpdateDevicesLinkedGroup(deviceProfile, value); - break; - case pAssignedUsersLinkedGroup: - UpdateAssignedUsersLinkedGroup(deviceProfile, value); - break; default: throw new Exception("Invalid Update Key"); } @@ -385,18 +377,17 @@ namespace Disco.Web.Areas.API.Controllers [DiscoAuthorize(Claims.Config.DeviceProfile.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateDevicesLinkedGroup(int id, string GroupId = null, bool redirect = false) + public virtual ActionResult UpdateDevicesLinkedGroup(int id, string groupId = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var deviceProfile = Database.DeviceProfiles.Find(id); - if (deviceProfile == null) - throw new ArgumentException("Invalid Device Profile Id", "id"); + var deviceProfile = Database.DeviceProfiles.Find(id) + ?? throw new ArgumentException("Invalid Device Profile Id", nameof(id)); - var syncTaskStatus = UpdateDevicesLinkedGroup(deviceProfile, GroupId); + var syncTaskStatus = UpdateDevicesLinkedGroup(deviceProfile, groupId, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DeviceProfile.Index(deviceProfile.Id)); @@ -418,18 +409,17 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.DeviceProfile.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId = null, bool redirect = false) + public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) - throw new ArgumentOutOfRangeException("id"); + throw new ArgumentOutOfRangeException(nameof(id)); - var deviceProfile = Database.DeviceProfiles.Find(id); - if (deviceProfile == null) - throw new ArgumentException("Invalid Device Profile Id", "id"); + var deviceProfile = Database.DeviceProfiles.Find(id) + ?? throw new ArgumentException("Invalid Device Profile Id", nameof(id)); - var syncTaskStatus = UpdateAssignedUsersLinkedGroup(deviceProfile, GroupId); + var syncTaskStatus = UpdateAssignedUsersLinkedGroup(deviceProfile, groupId, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DeviceProfile.Index(deviceProfile.Id)); @@ -725,9 +715,9 @@ namespace Disco.Web.Areas.API.Controllers throw new Exception("Invalid Boolean Value"); } - private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceProfile deviceProfile, string devicesLinkedGroup) + private ScheduledTaskStatus UpdateDevicesLinkedGroup(DeviceProfile deviceProfile, string devicesLinkedGroup, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceProfileDevicesManagedGroup.GetKey(deviceProfile), devicesLinkedGroup, null); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceProfileDevicesManagedGroup.GetKey(deviceProfile), devicesLinkedGroup, null, updateDescription); if (deviceProfile.DevicesLinkedGroup != configJson) { @@ -742,9 +732,9 @@ namespace Disco.Web.Areas.API.Controllers return null; } - private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(DeviceProfile deviceProfile, string assignedUsersLinkedGroup) + private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(DeviceProfile deviceProfile, string assignedUsersLinkedGroup, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceProfileAssignedUsersManagedGroup.GetKey(deviceProfile), assignedUsersLinkedGroup, null); + var configJson = ADManagedGroup.ValidConfigurationToJson(DeviceProfileAssignedUsersManagedGroup.GetKey(deviceProfile), assignedUsersLinkedGroup, null, updateDescription); if (deviceProfile.AssignedUsersLinkedGroup != configJson) { diff --git a/Disco.Web/Areas/API/Controllers/DocumentTemplateController.cs b/Disco.Web/Areas/API/Controllers/DocumentTemplateController.cs index 68f18345..78e076ef 100644 --- a/Disco.Web/Areas/API/Controllers/DocumentTemplateController.cs +++ b/Disco.Web/Areas/API/Controllers/DocumentTemplateController.cs @@ -255,18 +255,17 @@ namespace Disco.Web.Areas.API.Controllers [DiscoAuthorize(Claims.Config.DocumentTemplate.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateDevicesLinkedGroup(string id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateDevicesLinkedGroup(string id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (string.IsNullOrWhiteSpace(id)) - throw new ArgumentNullException("id"); + throw new ArgumentNullException(nameof(id)); - var documentTemplate = Database.DocumentTemplates.Find(id); - if (documentTemplate == null) - throw new ArgumentException("Invalid Document Template Id", "id"); + var documentTemplate = Database.DocumentTemplates.Find(id) + ?? throw new ArgumentException("Invalid Document Template Id", nameof(id)); - var syncTaskStatus = UpdateDevicesLinkedGroup(documentTemplate, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateDevicesLinkedGroup(documentTemplate, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DocumentTemplate.Index(documentTemplate.Id)); @@ -289,18 +288,17 @@ namespace Disco.Web.Areas.API.Controllers [DiscoAuthorize(Claims.Config.DocumentTemplate.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateUsersLinkedGroup(string id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateUsersLinkedGroup(string id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (string.IsNullOrWhiteSpace(id)) - throw new ArgumentNullException("id"); + throw new ArgumentNullException(nameof(id)); - var documentTemplate = Database.DocumentTemplates.Find(id); - if (documentTemplate == null) - throw new ArgumentException("Invalid Document Template Id", "id"); + var documentTemplate = Database.DocumentTemplates.Find(id) + ?? throw new ArgumentException("Invalid Document Template Id", nameof(id)); - var syncTaskStatus = UpdateUsersLinkedGroup(documentTemplate, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateUsersLinkedGroup(documentTemplate, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) return RedirectToAction(MVC.Config.DocumentTemplate.Index(documentTemplate.Id)); @@ -470,16 +468,16 @@ namespace Disco.Web.Areas.API.Controllers Database.SaveChanges(); } - private ScheduledTaskStatus UpdateDevicesLinkedGroup(DocumentTemplate DocumentTemplate, string DevicesLinkedGroup, DateTime? FilterBeginDate) + private ScheduledTaskStatus UpdateDevicesLinkedGroup(DocumentTemplate documentTemplate, string devicesLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DocumentTemplateDevicesManagedGroup.GetKey(DocumentTemplate), DevicesLinkedGroup, FilterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(DocumentTemplateDevicesManagedGroup.GetKey(documentTemplate), devicesLinkedGroup, filterBeginDate, updateDescription); - if (DocumentTemplate.DevicesLinkedGroup != configJson) + if (documentTemplate.DevicesLinkedGroup != configJson) { - DocumentTemplate.DevicesLinkedGroup = configJson; + documentTemplate.DevicesLinkedGroup = configJson; Database.SaveChanges(); - var managedGroup = DocumentTemplateDevicesManagedGroup.Initialize(DocumentTemplate); + var managedGroup = DocumentTemplateDevicesManagedGroup.Initialize(documentTemplate); if (managedGroup != null) // Sync Group return ADManagedGroupsSyncTask.ScheduleSync(managedGroup); } @@ -487,16 +485,16 @@ namespace Disco.Web.Areas.API.Controllers return null; } - private ScheduledTaskStatus UpdateUsersLinkedGroup(DocumentTemplate DocumentTemplate, string UsersLinkedGroup, DateTime? FilterBeginDate) + private ScheduledTaskStatus UpdateUsersLinkedGroup(DocumentTemplate documentTemplate, string usersLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(DocumentTemplateUsersManagedGroup.GetKey(DocumentTemplate), UsersLinkedGroup, FilterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(DocumentTemplateUsersManagedGroup.GetKey(documentTemplate), usersLinkedGroup, filterBeginDate, updateDescription); - if (DocumentTemplate.UsersLinkedGroup != configJson) + if (documentTemplate.UsersLinkedGroup != configJson) { - DocumentTemplate.UsersLinkedGroup = configJson; + documentTemplate.UsersLinkedGroup = configJson; Database.SaveChanges(); - var managedGroup = DocumentTemplateUsersManagedGroup.Initialize(DocumentTemplate); + var managedGroup = DocumentTemplateUsersManagedGroup.Initialize(documentTemplate); if (managedGroup != null) // Sync Group return ADManagedGroupsSyncTask.ScheduleSync(managedGroup); } diff --git a/Disco.Web/Areas/API/Controllers/UserFlagController.cs b/Disco.Web/Areas/API/Controllers/UserFlagController.cs index fa21d016..ff73f9c8 100644 --- a/Disco.Web/Areas/API/Controllers/UserFlagController.cs +++ b/Disco.Web/Areas/API/Controllers/UserFlagController.cs @@ -166,25 +166,23 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.UserFlag.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) throw new ArgumentOutOfRangeException(nameof(id)); - var UserFlag = Database.UserFlags.Find(id); - if (UserFlag == null) - throw new ArgumentException("Invalid User Flag Id", nameof(id)); + var userFlag = Database.UserFlags.Find(id) + ?? throw new ArgumentException("Invalid User Flag Id", nameof(id)); - - var syncTaskStatus = UpdateAssignedUsersLinkedGroup(UserFlag, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateAssignedUsersLinkedGroup(userFlag, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) - return RedirectToAction(MVC.Config.UserFlag.Index(UserFlag.Id)); + return RedirectToAction(MVC.Config.UserFlag.Index(userFlag.Id)); else { - syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(UserFlag.Id))); + syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(userFlag.Id))); return RedirectToAction(MVC.Config.Logging.TaskStatus(syncTaskStatus.SessionId)); } else @@ -200,25 +198,23 @@ namespace Disco.Web.Areas.API.Controllers } [DiscoAuthorize(Claims.Config.UserFlag.Configure)] [HttpPost, ValidateAntiForgeryToken] - public virtual ActionResult UpdateAssignedUserDevicesLinkedGroup(int id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false) + public virtual ActionResult UpdateAssignedUserDevicesLinkedGroup(int id, string groupId = null, DateTime? filterBeginDate = null, bool? updateDescription = null, bool redirect = false) { try { if (id < 0) throw new ArgumentOutOfRangeException(nameof(id)); - var UserFlag = Database.UserFlags.Find(id); - if (UserFlag == null) - throw new ArgumentException("Invalid User Flag Id", nameof(id)); + var userFlag = Database.UserFlags.Find(id) + ?? throw new ArgumentException("Invalid User Flag Id", nameof(id)); - - var syncTaskStatus = UpdateAssignedUserDevicesLinkedGroup(UserFlag, GroupId, FilterBeginDate); + var syncTaskStatus = UpdateAssignedUserDevicesLinkedGroup(userFlag, groupId, filterBeginDate, updateDescription ?? true); if (redirect) if (syncTaskStatus == null) - return RedirectToAction(MVC.Config.UserFlag.Index(UserFlag.Id)); + return RedirectToAction(MVC.Config.UserFlag.Index(userFlag.Id)); else { - syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(UserFlag.Id))); + syncTaskStatus.SetFinishedUrl(Url.Action(MVC.Config.UserFlag.Index(userFlag.Id))); return RedirectToAction(MVC.Config.Logging.TaskStatus(syncTaskStatus.SessionId)); } else @@ -340,19 +336,19 @@ namespace Disco.Web.Areas.API.Controllers UserFlagService.Update(Database, UserFlag); } - private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(UserFlag UserFlag, string AssignedUsersLinkedGroup, DateTime? FilterBeginDate) + private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(UserFlag userFlag, string assignedUsersLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(UserFlagUsersManagedGroup.GetKey(UserFlag), AssignedUsersLinkedGroup, FilterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(UserFlagUsersManagedGroup.GetKey(userFlag), assignedUsersLinkedGroup, filterBeginDate, updateDescription); - if (UserFlag.UsersLinkedGroup != configJson) + if (userFlag.UsersLinkedGroup != configJson) { - UserFlag.UsersLinkedGroup = configJson; - UserFlagService.Update(Database, UserFlag); + userFlag.UsersLinkedGroup = configJson; + UserFlagService.Update(Database, userFlag); - if (UserFlag.UsersLinkedGroup != null) + if (userFlag.UsersLinkedGroup != null) { // Sync Group - if (UserFlagUsersManagedGroup.TryGetManagedGroup(UserFlag, out var managedGroup)) + if (UserFlagUsersManagedGroup.TryGetManagedGroup(userFlag, out var managedGroup)) { return ADManagedGroupsSyncTask.ScheduleSync(managedGroup); } @@ -361,19 +357,19 @@ namespace Disco.Web.Areas.API.Controllers return null; } - private ScheduledTaskStatus UpdateAssignedUserDevicesLinkedGroup(UserFlag UserFlag, string AssignedUserDevicesLinkedGroup, DateTime? FilterBeginDate) + private ScheduledTaskStatus UpdateAssignedUserDevicesLinkedGroup(UserFlag userFlag, string assignedUserDevicesLinkedGroup, DateTime? filterBeginDate, bool updateDescription) { - var configJson = ADManagedGroup.ValidConfigurationToJson(UserFlagUserDevicesManagedGroup.GetKey(UserFlag), AssignedUserDevicesLinkedGroup, FilterBeginDate); + var configJson = ADManagedGroup.ValidConfigurationToJson(UserFlagUserDevicesManagedGroup.GetKey(userFlag), assignedUserDevicesLinkedGroup, filterBeginDate, updateDescription); - if (UserFlag.UserDevicesLinkedGroup != configJson) + if (userFlag.UserDevicesLinkedGroup != configJson) { - UserFlag.UserDevicesLinkedGroup = configJson; - UserFlagService.Update(Database, UserFlag); + userFlag.UserDevicesLinkedGroup = configJson; + UserFlagService.Update(Database, userFlag); - if (UserFlag.UserDevicesLinkedGroup != null) + if (userFlag.UserDevicesLinkedGroup != null) { // Sync Group - if (UserFlagUserDevicesManagedGroup.TryGetManagedGroup(UserFlag, out var managedGroup)) + if (UserFlagUserDevicesManagedGroup.TryGetManagedGroup(userFlag, out var managedGroup)) { return ADManagedGroupsSyncTask.ScheduleSync(managedGroup); } diff --git a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.cshtml b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.cshtml index c9ce8f93..ff82d8a6 100644 --- a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.cshtml +++ b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.cshtml @@ -22,7 +22,7 @@
@group.Domain.FriendlyDistinguishedNamePath(group.DistinguishedName)
- + using (Html.BeginForm(MVC.API.System.SyncActiveDirectoryManagedGroup(Model.ManagedGroup.Key, Context.Request.Path))) { @Html.AntiForgeryToken() @@ -34,12 +34,12 @@
Group Not Found: @Model.ManagedGroup.Configuration.GroupId
- + } } else { - + } } else diff --git a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.generated.cs b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.generated.cs index 0056e958..12946d50 100644 --- a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.generated.cs +++ b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupInstance.generated.cs @@ -177,22 +177,33 @@ WriteLiteral(" data-linkedgroupfilterdate=\""); #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupdescription=\""); +WriteLiteral(" data-linkedgroupdescription=\""); #line 25 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.CategoryDescription); + Write(Model.CategoryDescription); #line default #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupupdateurl=\""); +WriteLiteral(" data-linkedgroupupdateurl=\""); #line 25 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.UpdateUrl); + Write(Model.UpdateUrl); + + + #line default + #line hidden +WriteLiteral("\""); + +WriteLiteral(" data-linkedgroupupdatedescription=\""); + + + #line 25 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" + Write(Model.ManagedGroup.Configuration.UpdateDescription); #line default @@ -303,22 +314,33 @@ WriteLiteral(" data-linkedgroupfilterdate=\""); #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupdescription=\""); +WriteLiteral(" data-linkedgroupdescription=\""); #line 37 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.CategoryDescription); + Write(Model.CategoryDescription); #line default #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupupdateurl=\""); +WriteLiteral(" data-linkedgroupupdateurl=\""); #line 37 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.UpdateUrl); + Write(Model.UpdateUrl); + + + #line default + #line hidden +WriteLiteral("\""); + +WriteLiteral(" data-linkedgroupupdatedescription=\""); + + + #line 37 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" + Write(Model.ManagedGroup.Configuration.UpdateDescription); #line default @@ -356,28 +378,30 @@ WriteLiteral(" data-linkedgroupfilterdateoption=\""); #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupdescription=\""); +WriteLiteral(" data-linkedgroupdescription=\""); #line 42 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.CategoryDescription); + Write(Model.CategoryDescription); #line default #line hidden WriteLiteral("\""); -WriteLiteral(" data-linkedroupupdateurl=\""); +WriteLiteral(" data-linkedgroupupdateurl=\""); #line 42 "..\..\Areas\Config\Views\Shared\LinkedGroupInstance.cshtml" - Write(Model.UpdateUrl); + Write(Model.UpdateUrl); #line default #line hidden WriteLiteral("\""); +WriteLiteral(" data-linkedgroupupdatedescription=\"True\""); + WriteLiteral(">Link Group\r\n"); @@ -398,14 +422,14 @@ WriteLiteral(" (group.Id +, Tuple.Create(Tuple.Create("", 3201), Tuple.Create(group.Id #line default #line hidden -, 2974), false) +, 3201), false) ); WriteLiteral(">\r\n Linked Group: - + @@ -20,7 +20,15 @@ - + + + + +   + + + + @@ -30,6 +38,7 @@

Warning: This group will be managed by Disco ICT.
Any existing members will be removed from the group, and it will be automatically synchronized with related members. + If the 'Update Group Description' option is selected, the group's description will also be updated to reflect its managed status.

@@ -38,9 +47,10 @@ let dialog; let dialogGroupId; let dialogFilterDate; + let dialogUpdateDescription; let dialogTitle; - function showDialog(groupId, filterDateOption, filterDateValue, updateUrl, title) { + function showDialog(groupId, filterDateOption, filterDateValue, updateUrl, title, updateDescription) { if (dialog == null) { dialog = $('#Config_LinkedGroup_Dialog').dialog({ width: 450, @@ -57,6 +67,10 @@ dateFormat: 'yy/mm/dd' }); + dialogUpdateDescription = $('#Config_LinkedGroup_UpdateDescription').on('change', function () { + $('#Config_LinkedGroup_UpdateDescriptionOff').prop('disabled', $(this).prop('checked')); + }); + dialogGroupId = $('#Config_LinkedGroup_Id'); dialogGroupId.focus(function () { $(this).select(); }); dialogGroupId.autocomplete({ @@ -109,6 +123,8 @@ dialogFilterDate.closest('tr').hide(); } + dialogUpdateDescription.prop('checked', updateDescription); + dialogTitle.text(title); dialog.dialog('option', 'buttons', dialogButtons); dialog.dialog('option', 'title', 'Linked Group: ' + title); @@ -120,11 +136,12 @@ var configuredGroupId = $this.attr('data-linkedgroupid'); var configuredFilterBeginDate = $this.attr('data-linkedgroupfilterdate'); - var filterDateOption = $this.attr('data-linkedgroupfilterdateoption') == 'True'; - var description = $this.attr('data-linkedroupdescription'); - var updateUrl = $this.attr('data-linkedroupupdateurl'); + var filterDateOption = $this.attr('data-linkedgroupfilterdateoption') === 'True'; + var description = $this.attr('data-linkedgroupdescription'); + var updateUrl = $this.attr('data-linkedgroupupdateurl'); + var updateDescription = $this.attr('data-linkedgroupupdatedescription') === 'True'; - showDialog(configuredGroupId, filterDateOption, configuredFilterBeginDate, updateUrl, description); + showDialog(configuredGroupId, filterDateOption, configuredFilterBeginDate, updateUrl, description, updateDescription); return false; }); diff --git a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupShared.generated.cs b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupShared.generated.cs index 125b2bfa..7dbe478b 100644 --- a/Disco.Web/Areas/Config/Views/Shared/LinkedGroupShared.generated.cs +++ b/Disco.Web/Areas/Config/Views/Shared/LinkedGroupShared.generated.cs @@ -96,7 +96,7 @@ WriteLiteral(" id=\"Config_LinkedGroup_Id\""); WriteLiteral(" type=\"text\""); -WriteLiteral(" name=\"GroupId\""); +WriteLiteral(" name=\"groupId\""); WriteLiteral(" data-sourceurl=\""); @@ -121,14 +121,40 @@ WriteLiteral(" id=\"Config_LinkedGroup_FilterDate\""); WriteLiteral(" type=\"text\""); -WriteLiteral(" name=\"FilterBeginDate\""); +WriteLiteral(" name=\"filterBeginDate\""); WriteLiteral(" placeholder=\"No Filter\""); WriteLiteral(" autocomplete=\"off\""); -WriteLiteral(" />\r\n \r\n \r\n \r\n " + -" \r\n \r\n \r\n \r\n \r\n \r\n " + +"  \r\n \r\n " + +" \r\n \r\n Update Group Description\r\n \r\n \r\n \r\n \r\n \r\n Warning: This group will be managed by Disco ICT.
\r\n " + " Any existing members will be removed from the group, " + -"and it will be automatically synchronized with related members.\r\n

\r\n " + -" \r\n\r\n" + +"and it will be automatically synchronized with related members.\r\n If " + +"the \'Update Group Description\' option is selected, the group\'s description will " + +"also be updated to reflect its managed status.\r\n

\r\n \r\n" + +"\r\n" + "\r\n"); } diff --git a/Disco.Web/Extensions/T4MVC/API.DeviceBatchController.generated.cs b/Disco.Web/Extensions/T4MVC/API.DeviceBatchController.generated.cs index 2e6c63d4..d1f7791b 100644 --- a/Disco.Web/Extensions/T4MVC/API.DeviceBatchController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.DeviceBatchController.generated.cs @@ -443,7 +443,8 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateDevicesLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; + public readonly string groupId = "groupId"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_UpdateAssignedUsersLinkedGroup s_params_UpdateAssignedUsersLinkedGroup = new ActionParamsClass_UpdateAssignedUsersLinkedGroup(); @@ -453,7 +454,8 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateAssignedUsersLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; + public readonly string groupId = "groupId"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_Delete s_params_Delete = new ActionParamsClass_Delete(); @@ -753,30 +755,32 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] - partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, bool redirect); + partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string GroupId, bool redirect) + public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string groupId, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDevicesLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateDevicesLinkedGroupOverride(callInfo, id, GroupId, redirect); + UpdateDevicesLinkedGroupOverride(callInfo, id, groupId, updateDescription, redirect); return callInfo; } [NonAction] - partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, bool redirect); + partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId, bool redirect) + public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUsersLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateAssignedUsersLinkedGroupOverride(callInfo, id, GroupId, redirect); + UpdateAssignedUsersLinkedGroupOverride(callInfo, id, groupId, updateDescription, redirect); return callInfo; } diff --git a/Disco.Web/Extensions/T4MVC/API.DeviceFlagController.generated.cs b/Disco.Web/Extensions/T4MVC/API.DeviceFlagController.generated.cs index 5b977ed5..cc1d64b3 100644 --- a/Disco.Web/Extensions/T4MVC/API.DeviceFlagController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.DeviceFlagController.generated.cs @@ -326,8 +326,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateDevicesLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_UpdateAssignedUserLinkedGroup s_params_UpdateAssignedUserLinkedGroup = new ActionParamsClass_UpdateAssignedUserLinkedGroup(); @@ -337,8 +338,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateAssignedUserLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_Delete s_params_Delete = new ActionParamsClass_Delete(); @@ -550,32 +552,34 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] - partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDevicesLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateDevicesLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateDevicesLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; } [NonAction] - partial void UpdateAssignedUserLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateAssignedUserLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateAssignedUserLinkedGroup(int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateAssignedUserLinkedGroup(int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUserLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateAssignedUserLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateAssignedUserLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; } diff --git a/Disco.Web/Extensions/T4MVC/API.DeviceProfileController.generated.cs b/Disco.Web/Extensions/T4MVC/API.DeviceProfileController.generated.cs index 1eefab76..ef58e6e8 100644 --- a/Disco.Web/Extensions/T4MVC/API.DeviceProfileController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.DeviceProfileController.generated.cs @@ -474,7 +474,8 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateDevicesLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; + public readonly string groupId = "groupId"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_UpdateAssignedUsersLinkedGroup s_params_UpdateAssignedUsersLinkedGroup = new ActionParamsClass_UpdateAssignedUsersLinkedGroup(); @@ -484,7 +485,8 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateAssignedUsersLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; + public readonly string groupId = "groupId"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_Delete s_params_Delete = new ActionParamsClass_Delete(); @@ -802,30 +804,32 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] - partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, bool redirect); + partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string GroupId, bool redirect) + public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(int id, string groupId, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDevicesLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateDevicesLinkedGroupOverride(callInfo, id, GroupId, redirect); + UpdateDevicesLinkedGroupOverride(callInfo, id, groupId, updateDescription, redirect); return callInfo; } [NonAction] - partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, bool redirect); + partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId, bool redirect) + public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUsersLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateAssignedUsersLinkedGroupOverride(callInfo, id, GroupId, redirect); + UpdateAssignedUsersLinkedGroupOverride(callInfo, id, groupId, updateDescription, redirect); return callInfo; } diff --git a/Disco.Web/Extensions/T4MVC/API.DocumentTemplateController.generated.cs b/Disco.Web/Extensions/T4MVC/API.DocumentTemplateController.generated.cs index 46d0adf5..cc7aa68d 100644 --- a/Disco.Web/Extensions/T4MVC/API.DocumentTemplateController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.DocumentTemplateController.generated.cs @@ -545,8 +545,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateDevicesLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_UpdateUsersLinkedGroup s_params_UpdateUsersLinkedGroup = new ActionParamsClass_UpdateUsersLinkedGroup(); @@ -556,8 +557,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateUsersLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_ImporterThumbnail s_params_ImporterThumbnail = new ActionParamsClass_ImporterThumbnail(); @@ -1016,32 +1018,34 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] - partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(string id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateDevicesLinkedGroup(string id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDevicesLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateDevicesLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateDevicesLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; } [NonAction] - partial void UpdateUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, string id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateUsersLinkedGroup(string id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateUsersLinkedGroup(string id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateUsersLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateUsersLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateUsersLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; } diff --git a/Disco.Web/Extensions/T4MVC/API.UserFlagController.generated.cs b/Disco.Web/Extensions/T4MVC/API.UserFlagController.generated.cs index 217d37f0..07cc0911 100644 --- a/Disco.Web/Extensions/T4MVC/API.UserFlagController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.UserFlagController.generated.cs @@ -326,8 +326,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateAssignedUsersLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_UpdateAssignedUserDevicesLinkedGroup s_params_UpdateAssignedUserDevicesLinkedGroup = new ActionParamsClass_UpdateAssignedUserDevicesLinkedGroup(); @@ -337,8 +338,9 @@ namespace Disco.Web.Areas.API.Controllers public class ActionParamsClass_UpdateAssignedUserDevicesLinkedGroup { public readonly string id = "id"; - public readonly string GroupId = "GroupId"; - public readonly string FilterBeginDate = "FilterBeginDate"; + public readonly string groupId = "groupId"; + public readonly string filterBeginDate = "filterBeginDate"; + public readonly string updateDescription = "updateDescription"; public readonly string redirect = "redirect"; } static readonly ActionParamsClass_Delete s_params_Delete = new ActionParamsClass_Delete(); @@ -550,32 +552,34 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] - partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateAssignedUsersLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateAssignedUsersLinkedGroup(int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUsersLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateAssignedUsersLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateAssignedUsersLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; } [NonAction] - partial void UpdateAssignedUserDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect); + partial void UpdateAssignedUserDevicesLinkedGroupOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect); [NonAction] - public override System.Web.Mvc.ActionResult UpdateAssignedUserDevicesLinkedGroup(int id, string GroupId, System.DateTime? FilterBeginDate, bool redirect) + public override System.Web.Mvc.ActionResult UpdateAssignedUserDevicesLinkedGroup(int id, string groupId, System.DateTime? filterBeginDate, bool? updateDescription, bool redirect) { var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUserDevicesLinkedGroup); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "GroupId", GroupId); - ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "FilterBeginDate", FilterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "groupId", groupId); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "filterBeginDate", filterBeginDate); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "updateDescription", updateDescription); ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); - UpdateAssignedUserDevicesLinkedGroupOverride(callInfo, id, GroupId, FilterBeginDate, redirect); + UpdateAssignedUserDevicesLinkedGroupOverride(callInfo, id, groupId, filterBeginDate, updateDescription, redirect); return callInfo; }