diff --git a/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchCreateModel.cs b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchCreateModel.cs new file mode 100644 index 00000000..8b4e552e --- /dev/null +++ b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchCreateModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceBatch +{ + public interface ConfigDeviceBatchCreateModel : BaseUIModel + { + Models.Repository.DeviceBatch DeviceBatch { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModel.cs b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModel.cs new file mode 100644 index 00000000..46eb2bf6 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceBatch +{ + public interface ConfigDeviceBatchIndexModel : BaseUIModel + { + List DeviceBatches { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModelItem.cs b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModelItem.cs new file mode 100644 index 00000000..b8abcfcf --- /dev/null +++ b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchIndexModelItem.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceBatch +{ + public interface ConfigDeviceBatchIndexModelItem + { + int Id { get; set; } + string Name { get; set; } + [Required(), DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] + DateTime PurchaseDate { get; set; } + int DeviceCount { get; set; } + int DeviceDecommissionedCount { get; set; } + int? PurchaseUnitQuantity { get; set; } + string DefaultDeviceModel { get; set; } + DateTime? WarrantyExpires { get; set; } + DateTime? InsuredUntil { get; set; } + string InsuranceSupplier { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchShowModel.cs b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchShowModel.cs new file mode 100644 index 00000000..513eebe0 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchShowModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceBatch +{ + public interface ConfigDeviceBatchShowModel : BaseUIModel + { + Disco.Models.Repository.DeviceBatch DeviceBatch { get; set; } + List DeviceModels { get; set; } + int DeviceCount { get; set; } + int DeviceDecommissionedCount { get; set; } + bool CanDelete { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchTimelineModel.cs b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchTimelineModel.cs new file mode 100644 index 00000000..7ff3546c --- /dev/null +++ b/Disco.Models/UI/Config/DeviceBatch/ConfigDeviceBatchTimelineModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceBatch +{ + public interface ConfigDeviceBatchTimelineModel : BaseUIModel + { + + } +} diff --git a/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModel.cs b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModel.cs new file mode 100644 index 00000000..69f8df00 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceModel +{ + public interface ConfigDeviceModelIndexModel : BaseUIModel + { + List DeviceModels { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModelItem.cs b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModelItem.cs new file mode 100644 index 00000000..f52f5b90 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelIndexModelItem.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceModel +{ + public interface ConfigDeviceModelIndexModelItem + { + int Id { get; set; } + string Name { get; set; } + string Manufacturer { get; set; } + string Model { get; set; } + string ModelType { get; set; } + int DeviceCount { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModel.cs b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModel.cs new file mode 100644 index 00000000..f23551c1 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceModel +{ + public interface ConfigDeviceModelShowModel : BaseUIModel + { + Disco.Models.Repository.DeviceModel DeviceModel { get; set; } + + ConfigDeviceModelComponentsModel DeviceComponentsModel { get; set; } + + bool CanDelete { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModelComponents.cs b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModelComponents.cs new file mode 100644 index 00000000..0b38d068 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelShowModelComponents.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceModel +{ + public interface ConfigDeviceModelComponentsModel : BaseUIModel + { + int? DeviceModelId { get; set; } + List DeviceComponents { get; set; } + + List JobSubTypes { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileCreateModel.cs b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileCreateModel.cs new file mode 100644 index 00000000..05288a39 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileCreateModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceProfile +{ + public interface ConfigDeviceProfileCreateModel : BaseUIModel + { + Models.Repository.DeviceProfile DeviceProfile { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileDefaultsModel.cs b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileDefaultsModel.cs new file mode 100644 index 00000000..1677c425 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileDefaultsModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceProfile +{ + public interface ConfigDeviceProfileDefaultsModel : BaseUIModel + { + List DeviceProfiles { get; set; } + List DeviceProfilesAndNone { get; set; } + int Default { get; set; } + int DefaultAddDeviceOffline { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModel.cs b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModel.cs new file mode 100644 index 00000000..d7a9be59 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceProfile +{ + public interface ConfigDeviceProfileIndexModel : BaseUIModel + { + List DeviceProfiles { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModelItem.cs b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModelItem.cs new file mode 100644 index 00000000..db4414d5 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileIndexModelItem.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceProfile +{ + public interface ConfigDeviceProfileIndexModelItem + { + int Id { get; set; } + string Name { get; set; } + string ShortName { get; set; } + int? Address { get; set; } + string AddressName { get; set; } + string Description { get; set; } + int DistributionTypeId { get; set; } + + string DistributionType { get; } + + int DeviceCount { get; set; } + int DeviceDecommissionedCount { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileShowModel.cs b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileShowModel.cs new file mode 100644 index 00000000..2c415984 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceProfile/ConfigDeviceProfileShowModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DeviceProfile +{ + public interface ConfigDeviceProfileShowModel : BaseUIModel + { + Disco.Models.Repository.DeviceProfile DeviceProfile { get; set; } + List OrganisationAddresses { get; set; } + + bool CanDelete { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateCreateModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateCreateModel.cs new file mode 100644 index 00000000..bede3e76 --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateCreateModel.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateCreateModel : BaseUIModel + { + Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; } + + List Types { get; set; } + List SubTypes { get; set; } + + List JobTypes { get; set; } + List JobSubTypes { get; set; } + + List Scopes { get; } + + List GetJobTypes { get; } + List GetJobSubTypes { get; } + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateExpressionBrowserModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateExpressionBrowserModel.cs new file mode 100644 index 00000000..77586212 --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateExpressionBrowserModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateExpressionBrowserModel : BaseUIModel + { + string DeviceType { get; set; } + string UserType { get; set; } + string JobType { get; set; } + + Dictionary Variables { get; set; } + Dictionary ExtensionLibraries { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateImportStatusModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateImportStatusModel.cs new file mode 100644 index 00000000..fe9dd509 --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateImportStatusModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateImportStatusModel : BaseUIModel + { + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateIndexModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateIndexModel.cs new file mode 100644 index 00000000..734f2a97 --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateIndexModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateIndexModel : BaseUIModel + { + List DocumentTemplates { get; set; } + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateShowModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateShowModel.cs new file mode 100644 index 00000000..148cb03b --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateShowModel.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateShowModel : BaseUIModel + { + Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; } + int StoredInstanceCount { get; set; } + + List Types { get; set; } + List SubTypes { get; set; } + + List JobTypes { get; set; } + List JobSubTypes { get; set; } + + List Scopes { get; } + } +} diff --git a/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateUndetectedPagesModel.cs b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateUndetectedPagesModel.cs new file mode 100644 index 00000000..c21d83e5 --- /dev/null +++ b/Disco.Models/UI/Config/DocumentTemplate/ConfigDocumentTemplateUndetectedPagesModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.DocumentTemplate +{ + public interface ConfigDocumentTemplateUndetectedPagesModel : BaseUIModel + { + List DocumentTemplates { get; set; } + } +} diff --git a/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentIndexModel.cs b/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentIndexModel.cs new file mode 100644 index 00000000..77d442e4 --- /dev/null +++ b/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentIndexModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.Enrolment +{ + public interface ConfigEnrolmentIndexModel : BaseUIModel + { + string MacSshUsername { get; set; } + } +} diff --git a/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentStatusModel.cs b/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentStatusModel.cs new file mode 100644 index 00000000..82e50dbc --- /dev/null +++ b/Disco.Models/UI/Config/Enrolment/ConfigEnrolmentStatusModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.Enrolment +{ + public interface ConfigEnrolmentStatusModel : BaseUIModel + { + } +} diff --git a/Disco.Models/UI/Config/Logging/ConfigLoggingIndexModel.cs b/Disco.Models/UI/Config/Logging/ConfigLoggingIndexModel.cs new file mode 100644 index 00000000..f33ce7e0 --- /dev/null +++ b/Disco.Models/UI/Config/Logging/ConfigLoggingIndexModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.Logging +{ + public interface ConfigLoggingIndexModel : BaseUIModel + { + } +} diff --git a/Disco.Models/UI/Config/Logging/ConfigLoggingTaskStatusModel.cs b/Disco.Models/UI/Config/Logging/ConfigLoggingTaskStatusModel.cs new file mode 100644 index 00000000..3e292ae7 --- /dev/null +++ b/Disco.Models/UI/Config/Logging/ConfigLoggingTaskStatusModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.Logging +{ + public interface ConfigLoggingTaskStatusModel : BaseUIModel + { + string SessionId { get; set; } + } +} diff --git a/Disco.Models/UI/Config/Organisation/ConfigOrganisationIndexModel.cs b/Disco.Models/UI/Config/Organisation/ConfigOrganisationIndexModel.cs new file mode 100644 index 00000000..1edd5642 --- /dev/null +++ b/Disco.Models/UI/Config/Organisation/ConfigOrganisationIndexModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Config.Organisation +{ + public interface ConfigOrganisationIndexModel : BaseUIModel + { + string OrganisationName { get; set; } + bool MultiSiteMode { get; set; } + List OrganisationAddresses { get; set; } + } +} diff --git a/Disco.Models/UI/Device/DeviceAddOfflineModel.cs b/Disco.Models/UI/Device/DeviceAddOfflineModel.cs new file mode 100644 index 00000000..28500092 --- /dev/null +++ b/Disco.Models/UI/Device/DeviceAddOfflineModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Device +{ + public interface DeviceAddOfflineModel : BaseUIModel + { + Disco.Models.Repository.Device Device { get; set; } + List DeviceProfiles { get; set; } + List DeviceBatches { get; set; } + int DefaultDeviceProfileId { get; set; } + } +} diff --git a/Disco.Models/UI/Search/SearchQueryModel.cs b/Disco.Models/UI/Search/SearchQueryModel.cs new file mode 100644 index 00000000..e9db0072 --- /dev/null +++ b/Disco.Models/UI/Search/SearchQueryModel.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Disco.Models.UI.Search +{ + public interface SearchQueryModel : BaseUIModel + { + string FriendlyTerm { get; set; } + string Term { get; set; } + bool Success { get; set; } + string ErrorMessage { get; set; } + List Devices { get; set; } + Disco.Models.BI.Job.JobTableModel Jobs { get; set; } + List Users { get; set; } + } +} diff --git a/Disco.Web/Areas/Config/Controllers/DeviceBatchController.cs b/Disco.Web/Areas/Config/Controllers/DeviceBatchController.cs index 873cd1b3..217953dd 100644 --- a/Disco.Web/Areas/Config/Controllers/DeviceBatchController.cs +++ b/Disco.Web/Areas/Config/Controllers/DeviceBatchController.cs @@ -6,6 +6,8 @@ using System.Web.Mvc; using Disco.BI; using Disco.BI.Extensions; using Disco.Web.Extensions; +using Disco.Services.Plugins.Features.UIExtension; +using Disco.Models.UI.Config.DeviceBatch; namespace Disco.Web.Areas.Config.Controllers { @@ -31,35 +33,50 @@ namespace Disco.Web.Areas.Config.Controllers m.DeviceCount = m.DeviceBatch.Devices.Count(); m.DeviceDecommissionedCount = m.DeviceBatch.Devices.Count(d => d.DecommissionedDate.HasValue); - m.DeviceModels = dbContext.DeviceModels.ToSelectListItems(); + m.DeviceModels = dbContext.DeviceModels.ToList(); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); return View(MVC.Config.DeviceBatch.Views.Show, m); } else { - return View(Models.DeviceBatch.IndexModel.Build(dbContext)); + var m = Models.DeviceBatch.IndexModel.Build(dbContext); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } } public virtual ActionResult Create() { // Default Batch - var m = BI.DeviceBI.BatchUtilities.DefaultNewDeviceBatch(dbContext); + var m = new Models.DeviceBatch.CreateModel() + { + DeviceBatch = BI.DeviceBI.BatchUtilities.DefaultNewDeviceBatch(dbContext) + }; + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } [HttpPost] - public virtual ActionResult Create(Disco.Models.Repository.DeviceBatch model) + public virtual ActionResult Create(Models.DeviceBatch.CreateModel model) { if (ModelState.IsValid) { // Check for Existing - var existing = dbContext.DeviceBatches.Where(m => m.Name == model.Name).FirstOrDefault(); + var existing = dbContext.DeviceBatches.Where(m => m.Name == model.DeviceBatch.Name).FirstOrDefault(); if (existing == null) { - dbContext.DeviceBatches.Add(model); + dbContext.DeviceBatches.Add(model.DeviceBatch); dbContext.SaveChanges(); - return RedirectToAction(MVC.Config.DeviceBatch.Index(model.Id)); + return RedirectToAction(MVC.Config.DeviceBatch.Index(model.DeviceBatch.Id)); } else { @@ -67,11 +84,19 @@ namespace Disco.Web.Areas.Config.Controllers } } + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, model); + return View(model); } public virtual ActionResult Timeline() { + var m = new Models.DeviceBatch.TimelineModel(); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(); } diff --git a/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs b/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs index 9e33c654..a6b54d41 100644 --- a/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs +++ b/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs @@ -6,6 +6,8 @@ using System.Web.Mvc; using Disco.Services.Plugins.Features.WarrantyProvider; using Disco.Services.Plugins; using Disco.BI.Extensions; +using Disco.Services.Plugins.Features.UIExtension; +using Disco.Models.UI.Config.DeviceModel; namespace Disco.Web.Areas.Config.Controllers { @@ -21,7 +23,7 @@ namespace Disco.Web.Areas.Config.Controllers WarrantyProviders = Plugins.GetPluginFeatures(typeof(WarrantyProviderFeature)) }; - m.DeviceComponentsModel = new Models.DeviceModel.DeviceComponentsModel() + m.DeviceComponentsModel = new Models.DeviceModel.ComponentsModel() { DeviceModelId = m.DeviceModel.Id, DeviceComponents = m.DeviceModel.DeviceComponents.ToList(), @@ -35,22 +37,33 @@ namespace Disco.Web.Areas.Config.Controllers //m.Devices = dbContext.Devices.Include("DeviceModel").Include("DeviceProfile").Include("AssignedUser") // .Where(d => d.DeviceModelId == m.DeviceModel.Id).ToList(); + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(MVC.Config.DeviceModel.Views.Show, m); } else { - return View(Models.DeviceModel.IndexModel.Build(dbContext)); + var m = Models.DeviceModel.IndexModel.Build(dbContext); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } } public virtual ActionResult GenericComponents() { - var m = new Models.DeviceModel.DeviceComponentsModel() + var m = new Models.DeviceModel.ComponentsModel() { DeviceComponents = dbContext.DeviceComponents.Include("JobSubTypes").Where(dc => !dc.DeviceModelId.HasValue).ToList(), JobSubTypes = dbContext.JobSubTypes.Where(jst => jst.JobTypeId == Disco.Models.Repository.JobType.JobTypeIds.HNWar).ToList() }; + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } } diff --git a/Disco.Web/Areas/Config/Controllers/DeviceProfileController.cs b/Disco.Web/Areas/Config/Controllers/DeviceProfileController.cs index 6e470e72..e5676c38 100644 --- a/Disco.Web/Areas/Config/Controllers/DeviceProfileController.cs +++ b/Disco.Web/Areas/Config/Controllers/DeviceProfileController.cs @@ -8,6 +8,8 @@ using Disco.BI; using Disco.BI.Extensions; using Disco.Services.Plugins.Features.CertificateProvider; using Disco.Services.Plugins; +using Disco.Services.Plugins.Features.UIExtension; +using Disco.Models.UI.Config.DeviceProfile; namespace Disco.Web.Areas.Config.Controllers { @@ -45,33 +47,46 @@ namespace Disco.Web.Areas.Config.Controllers //m.OrganisationalUnit = m.DeviceProfile.OrganisationalUnit; //m.ComputerNameTemplate = m.DeviceProfile.ComputerNameTemplate; + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(MVC.Config.DeviceProfile.Views.Show, m); } else { - return View(Models.DeviceProfile.IndexModel.Build(dbContext)); + var m = Models.DeviceProfile.IndexModel.Build(dbContext); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } } public virtual ActionResult Create() { - return View(); + var m = new Models.DeviceProfile.CreateModel(); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } [HttpPost] - public virtual ActionResult Create(Disco.Models.Repository.DeviceProfile model) + public virtual ActionResult Create(Models.DeviceProfile.CreateModel model) { if (ModelState.IsValid) { // Check for Existing - var existing = dbContext.DeviceProfiles.Where(m => m.Name == model.Name).FirstOrDefault(); + var existing = dbContext.DeviceProfiles.Where(m => m.Name == model.DeviceProfile.Name).FirstOrDefault(); if (existing == null) { - model.ProvisionADAccount = true; + model.DeviceProfile.ProvisionADAccount = true; - dbContext.DeviceProfiles.Add(model); + dbContext.DeviceProfiles.Add(model.DeviceProfile); dbContext.SaveChanges(); - return RedirectToAction(MVC.Config.DeviceProfile.Index(model.Id)); + return RedirectToAction(MVC.Config.DeviceProfile.Index(model.DeviceProfile.Id)); } else { @@ -79,6 +94,9 @@ namespace Disco.Web.Areas.Config.Controllers } } + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, model); + return View(model); } @@ -93,6 +111,9 @@ namespace Disco.Web.Areas.Config.Controllers m.DeviceProfilesAndNone = m.DeviceProfiles.ToList(); m.DeviceProfilesAndNone.Insert(0, new Disco.Models.Repository.DeviceProfile() { Id = 0, Name = "" }); + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } diff --git a/Disco.Web/Areas/Config/Controllers/DocumentTemplateController.cs b/Disco.Web/Areas/Config/Controllers/DocumentTemplateController.cs index 46f57e05..7a48194b 100644 --- a/Disco.Web/Areas/Config/Controllers/DocumentTemplateController.cs +++ b/Disco.Web/Areas/Config/Controllers/DocumentTemplateController.cs @@ -5,6 +5,8 @@ using System.Web; using System.Web.Mvc; using Disco.BI; using Disco.BI.Extensions; +using Disco.Services.Plugins.Features.UIExtension; +using Disco.Models.UI.Config.DocumentTemplate; namespace Disco.Web.Areas.Config.Controllers { @@ -16,6 +18,10 @@ namespace Disco.Web.Areas.Config.Controllers if (string.IsNullOrEmpty(id)) { var m = new Models.DocumentTemplate.IndexModel() { DocumentTemplates = dbContext.DocumentTemplates.ToList() }; + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } else @@ -26,12 +32,21 @@ namespace Disco.Web.Areas.Config.Controllers }; m.TemplateExpressions = m.DocumentTemplate.ExtractPdfExpressions(dbContext); m.UpdateModel(dbContext); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(MVC.Config.DocumentTemplate.Views.Show, m); } } public virtual ActionResult ImportStatus() { + var m = new Models.DocumentTemplate.ImportStatusModel(); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(); } public virtual ActionResult UndetectedPages() @@ -41,6 +56,9 @@ namespace Disco.Web.Areas.Config.Controllers DocumentTemplates = dbContext.DocumentTemplates.ToList() }; + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } @@ -49,6 +67,9 @@ namespace Disco.Web.Areas.Config.Controllers var m = new Models.DocumentTemplate.CreateModel(); m.UpdateModel(dbContext); + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } @@ -87,6 +108,10 @@ namespace Disco.Web.Areas.Config.Controllers ModelState.AddModelError("Name", "A Document Template with this Name already exists."); } } + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, model); + return View(model); } @@ -103,6 +128,9 @@ namespace Disco.Web.Areas.Config.Controllers ExtensionLibraries = BI.Expressions.Expression.ExtensionLibraryTypes() }; + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } else diff --git a/Disco.Web/Areas/Config/Controllers/EnrolmentController.cs b/Disco.Web/Areas/Config/Controllers/EnrolmentController.cs index d0aac70e..84ebffe1 100644 --- a/Disco.Web/Areas/Config/Controllers/EnrolmentController.cs +++ b/Disco.Web/Areas/Config/Controllers/EnrolmentController.cs @@ -1,4 +1,6 @@ -using System; +using Disco.Models.UI.Config.Enrolment; +using Disco.Services.Plugins.Features.UIExtension; +using System; using System.Collections.Generic; using System.Linq; using System.Web; @@ -18,11 +20,19 @@ namespace Disco.Web.Areas.Config.Controllers MacSshUsername = dbContext.DiscoConfiguration.Bootstrapper.MacSshUsername }; + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } public virtual ActionResult Status() { - return View(); + var m = new Models.Enrolment.StatusModel(); + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } } diff --git a/Disco.Web/Areas/Config/Controllers/LoggingController.cs b/Disco.Web/Areas/Config/Controllers/LoggingController.cs index b6574702..4f17a52b 100644 --- a/Disco.Web/Areas/Config/Controllers/LoggingController.cs +++ b/Disco.Web/Areas/Config/Controllers/LoggingController.cs @@ -5,6 +5,8 @@ using System.Web; using System.Web.Mvc; using Disco.Services.Logging; using Disco.Services.Logging.Models; +using Disco.Services.Plugins.Features.UIExtension; +using Disco.Models.UI.Config.Logging; namespace Disco.Web.Areas.Config.Controllers { @@ -24,6 +26,9 @@ namespace Disco.Web.Areas.Config.Controllers m.LogModules.Add(logModule, logModule.EventTypes.Values.Where(et => et.UsePersist).ToList()); } + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + return View(m); } @@ -36,7 +41,12 @@ namespace Disco.Web.Areas.Config.Controllers if (taskStatus == null) return RedirectToAction(MVC.Config.Logging.Index()); - return View(new Models.Logging.TaskStatusModel() { SessionId = taskStatus.SessionId }); + var m = new Models.Logging.TaskStatusModel() { SessionId = taskStatus.SessionId }; + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, m); + + return View(m); } } diff --git a/Disco.Web/Areas/Config/Controllers/OrganisationController.cs b/Disco.Web/Areas/Config/Controllers/OrganisationController.cs index 2575739a..ee758b1b 100644 --- a/Disco.Web/Areas/Config/Controllers/OrganisationController.cs +++ b/Disco.Web/Areas/Config/Controllers/OrganisationController.cs @@ -1,4 +1,6 @@ -using System; +using Disco.Models.UI.Config.Organisation; +using Disco.Services.Plugins.Features.UIExtension; +using System; using System.Collections.Generic; using System.Linq; using System.Web; @@ -18,7 +20,10 @@ namespace Disco.Web.Areas.Config.Controllers viewModel.OrganisationName = dbContext.DiscoConfiguration.OrganisationName; viewModel.MultiSiteMode = dbContext.DiscoConfiguration.MultiSiteMode; viewModel.OrganisationAddresses = dbContext.DiscoConfiguration.OrganisationAddresses.Addresses; - + + // UI Extensions + UIExtensions.ExecuteExtensions(this.ControllerContext, viewModel); + return View(viewModel); } diff --git a/Disco.Web/Areas/Config/Models/DeviceBatch/CreateModel.cs b/Disco.Web/Areas/Config/Models/DeviceBatch/CreateModel.cs new file mode 100644 index 00000000..e70f9641 --- /dev/null +++ b/Disco.Web/Areas/Config/Models/DeviceBatch/CreateModel.cs @@ -0,0 +1,13 @@ +using Disco.Models.UI.Config.DeviceBatch; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Disco.Web.Areas.Config.Models.DeviceBatch +{ + public class CreateModel : ConfigDeviceBatchCreateModel + { + public Disco.Models.Repository.DeviceBatch DeviceBatch { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/DeviceBatch/IndexModel.cs b/Disco.Web/Areas/Config/Models/DeviceBatch/IndexModel.cs index 48396275..45b0fc80 100644 --- a/Disco.Web/Areas/Config/Models/DeviceBatch/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceBatch/IndexModel.cs @@ -3,29 +3,30 @@ using System.Collections.Generic; using System.Linq; using System.Web; using Disco.Data.Repository; +using Disco.Models.UI.Config.DeviceBatch; namespace Disco.Web.Areas.Config.Models.DeviceBatch { - public class IndexModel + public class IndexModel : ConfigDeviceBatchIndexModel { - public List<_IndexModelDeviceBatch> DeviceBatches { get; set; } + public List DeviceBatches { get; set; } public static IndexModel Build(DiscoDataContext dbContext) { var m = new IndexModel(); - m.DeviceBatches = dbContext.DeviceBatches.OrderBy(db => db.Name).Select(db => new _IndexModelDeviceBatch() + m.DeviceBatches = dbContext.DeviceBatches.OrderBy(db => db.Name).Select(db => new _IndexModelItem() { Id = db.Id, Name = db.Name, PurchaseDate = db.PurchaseDate, PurchaseUnitQuantity = db.UnitQuantity, DeviceCount = db.Devices.Count, - DeviceDecommissionedCount = db.Devices.Count(d=> d.DecommissionedDate.HasValue), + DeviceDecommissionedCount = db.Devices.Count(d => d.DecommissionedDate.HasValue), DefaultDeviceModel = db.DefaultDeviceModel.Description, WarrantyExpires = db.WarrantyValidUntil, InsuranceSupplier = db.InsuranceSupplier, InsuredUntil = db.InsuredUntil - }).ToList(); + }).Cast().ToList(); return m; } diff --git a/Disco.Web/Areas/Config/Models/DeviceBatch/ShowModel.cs b/Disco.Web/Areas/Config/Models/DeviceBatch/ShowModel.cs index 15df627c..f7b15988 100644 --- a/Disco.Web/Areas/Config/Models/DeviceBatch/ShowModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceBatch/ShowModel.cs @@ -1,4 +1,5 @@ -using System; +using Disco.Models.UI.Config.DeviceBatch; +using System; using System.Collections.Generic; using System.Linq; using System.Web; @@ -6,10 +7,10 @@ using System.Web.Mvc; namespace Disco.Web.Areas.Config.Models.DeviceBatch { - public class ShowModel + public class ShowModel : ConfigDeviceBatchShowModel { public Disco.Models.Repository.DeviceBatch DeviceBatch { get; set; } - public List DeviceModels { get; set; } + public List DeviceModels { get; set; } public int DeviceCount { get; set; } public int DeviceDecommissionedCount { get; set; } public bool CanDelete { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceBatch/TimelineModel.cs b/Disco.Web/Areas/Config/Models/DeviceBatch/TimelineModel.cs new file mode 100644 index 00000000..b483d01c --- /dev/null +++ b/Disco.Web/Areas/Config/Models/DeviceBatch/TimelineModel.cs @@ -0,0 +1,12 @@ +using Disco.Models.UI.Config.DeviceBatch; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Disco.Web.Areas.Config.Models.DeviceBatch +{ + public class TimelineModel : ConfigDeviceBatchTimelineModel + { + } +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelDeviceBatch.cs b/Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelItem.cs similarity index 88% rename from Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelDeviceBatch.cs rename to Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelItem.cs index 0ccc1cda..5ff2fc67 100644 --- a/Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelDeviceBatch.cs +++ b/Disco.Web/Areas/Config/Models/DeviceBatch/_IndexModelItem.cs @@ -3,10 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; +using Disco.Models.UI.Config.DeviceBatch; namespace Disco.Web.Areas.Config.Models.DeviceBatch { - public class _IndexModelDeviceBatch + public class _IndexModelItem : ConfigDeviceBatchIndexModelItem { public int Id { get; set; } public string Name { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceModel/DeviceComponentsModel.cs b/Disco.Web/Areas/Config/Models/DeviceModel/ComponentsModel.cs similarity index 74% rename from Disco.Web/Areas/Config/Models/DeviceModel/DeviceComponentsModel.cs rename to Disco.Web/Areas/Config/Models/DeviceModel/ComponentsModel.cs index 4b68dddf..3cde2018 100644 --- a/Disco.Web/Areas/Config/Models/DeviceModel/DeviceComponentsModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceModel/ComponentsModel.cs @@ -1,11 +1,12 @@ -using System; +using Disco.Models.UI.Config.DeviceModel; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.DeviceModel { - public class DeviceComponentsModel + public class ComponentsModel : ConfigDeviceModelComponentsModel { public int? DeviceModelId { get; set; } public List DeviceComponents { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceModel/IndexModel.cs b/Disco.Web/Areas/Config/Models/DeviceModel/IndexModel.cs index 10749a4d..9540490a 100644 --- a/Disco.Web/Areas/Config/Models/DeviceModel/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceModel/IndexModel.cs @@ -3,17 +3,18 @@ using System.Collections.Generic; using System.Linq; using System.Web; using Disco.Data.Repository; +using Disco.Models.UI.Config.DeviceModel; namespace Disco.Web.Areas.Config.Models.DeviceModel { - public class IndexModel + public class IndexModel : ConfigDeviceModelIndexModel { - public List<_IndexModelDeviceModel> DeviceModels { get; set; } + public List DeviceModels { get; set; } public static IndexModel Build(DiscoDataContext dbContext) { var m = new IndexModel(); - m.DeviceModels = dbContext.DeviceModels.OrderBy(dm => dm.Description).Select(dm => new _IndexModelDeviceModel() + m.DeviceModels = dbContext.DeviceModels.OrderBy(dm => dm.Description).Select(dm => new _IndexModelItem() { Id = dm.Id, Name = dm.Description, @@ -21,10 +22,9 @@ namespace Disco.Web.Areas.Config.Models.DeviceModel Model = dm.Model, ModelType = dm.ModelType, DeviceCount = dm.Devices.Count - }).ToList(); + }).Cast().ToList(); return m; } - } } \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/DeviceModel/ShowModel.cs b/Disco.Web/Areas/Config/Models/DeviceModel/ShowModel.cs index 7a3b99e3..8218b2d0 100644 --- a/Disco.Web/Areas/Config/Models/DeviceModel/ShowModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceModel/ShowModel.cs @@ -3,15 +3,16 @@ using System.Collections.Generic; using System.Linq; using System.Web; using Disco.Services.Plugins; +using Disco.Models.UI.Config.DeviceModel; namespace Disco.Web.Areas.Config.Models.DeviceModel { - public class ShowModel + public class ShowModel : ConfigDeviceModelShowModel { public Disco.Models.Repository.DeviceModel DeviceModel { get; set; } - public Models.DeviceModel.DeviceComponentsModel DeviceComponentsModel { get; set; } - + public ConfigDeviceModelComponentsModel DeviceComponentsModel { get; set; } + public List WarrantyProviders { get; set; } public bool CanDelete { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelDeviceModel.cs b/Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelItem.cs similarity index 86% rename from Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelDeviceModel.cs rename to Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelItem.cs index 4f89240c..ee47c29e 100644 --- a/Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelDeviceModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceModel/_IndexModelItem.cs @@ -3,10 +3,11 @@ using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; +using Disco.Models.UI.Config.DeviceModel; namespace Disco.Web.Areas.Config.Models.DeviceModel { - public class _IndexModelDeviceModel + public class _IndexModelItem : ConfigDeviceModelIndexModelItem { public int Id { get; set; } public string Name { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceProfile/CreateModel.cs b/Disco.Web/Areas/Config/Models/DeviceProfile/CreateModel.cs new file mode 100644 index 00000000..2cd89685 --- /dev/null +++ b/Disco.Web/Areas/Config/Models/DeviceProfile/CreateModel.cs @@ -0,0 +1,13 @@ +using Disco.Models.UI.Config.DeviceProfile; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Disco.Web.Areas.Config.Models.DeviceProfile +{ + public class CreateModel : ConfigDeviceProfileCreateModel + { + public Disco.Models.Repository.DeviceProfile DeviceProfile { get; set; } + } +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/DeviceProfile/DefaultsModel.cs b/Disco.Web/Areas/Config/Models/DeviceProfile/DefaultsModel.cs index 005d90de..0608e66e 100644 --- a/Disco.Web/Areas/Config/Models/DeviceProfile/DefaultsModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceProfile/DefaultsModel.cs @@ -1,11 +1,12 @@ -using System; +using Disco.Models.UI.Config.DeviceProfile; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.DeviceProfile { - public class DefaultsModel + public class DefaultsModel : ConfigDeviceProfileDefaultsModel { public List DeviceProfiles { get; set; } public List DeviceProfilesAndNone { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceProfile/IndexModel.cs b/Disco.Web/Areas/Config/Models/DeviceProfile/IndexModel.cs index 5f29013c..c6924cc3 100644 --- a/Disco.Web/Areas/Config/Models/DeviceProfile/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceProfile/IndexModel.cs @@ -4,17 +4,18 @@ using System.Linq; using System.Web; using Disco.Data.Repository; using Disco.BI.Extensions; +using Disco.Models.UI.Config.DeviceProfile; namespace Disco.Web.Areas.Config.Models.DeviceProfile { - public class IndexModel + public class IndexModel : ConfigDeviceProfileIndexModel { - public List<_IndexModelDeviceProfile> DeviceProfiles { get; set; } + public List DeviceProfiles { get; set; } public static IndexModel Build(DiscoDataContext dbContext) { var m = new IndexModel(); - m.DeviceProfiles = dbContext.DeviceProfiles.OrderBy(dp => dp.Name).Select(dp => new _IndexModelDeviceProfile() + m.DeviceProfiles = dbContext.DeviceProfiles.OrderBy(dp => dp.Name).Select(dp => new _IndexModelItem() { Id = dp.Id, Name = dp.Name, @@ -24,7 +25,7 @@ namespace Disco.Web.Areas.Config.Models.DeviceProfile DistributionTypeId = dp.DistributionTypeDb, DeviceCount = dp.Devices.Count, DeviceDecommissionedCount = dp.Devices.Count(d => d.DecommissionedDate.HasValue) - }).ToList(); + }).Cast().ToList(); if (DiscoApplication.MultiSiteMode) { diff --git a/Disco.Web/Areas/Config/Models/DeviceProfile/ShowModel.cs b/Disco.Web/Areas/Config/Models/DeviceProfile/ShowModel.cs index bed08f11..e47c552c 100644 --- a/Disco.Web/Areas/Config/Models/DeviceProfile/ShowModel.cs +++ b/Disco.Web/Areas/Config/Models/DeviceProfile/ShowModel.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Web; using System.Web.Mvc; using Disco.Services.Plugins; +using Disco.Models.UI.Config.DeviceProfile; namespace Disco.Web.Areas.Config.Models.DeviceProfile { - public class ShowModel + public class ShowModel : ConfigDeviceProfileShowModel { public Disco.Models.Repository.DeviceProfile DeviceProfile { get; set; } public List DeviceProfileDistributionTypes { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelDeviceProfile.cs b/Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelItem.cs similarity index 88% rename from Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelDeviceProfile.cs rename to Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelItem.cs index cfd8af8c..a0a2fb55 100644 --- a/Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelDeviceProfile.cs +++ b/Disco.Web/Areas/Config/Models/DeviceProfile/_IndexModelItem.cs @@ -4,16 +4,16 @@ using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using Disco.Web.Extensions; +using Disco.Models.UI.Config.DeviceProfile; namespace Disco.Web.Areas.Config.Models.DeviceProfile { - public class _IndexModelDeviceProfile + public class _IndexModelItem : ConfigDeviceProfileIndexModelItem { public int Id { get; set; } public string Name { get; set; } public string ShortName { get; set; } public int? Address { get; set; } - //public string AddressShortName { get; set; } public string AddressName { get; set; } public string Description { get; set; } public int DistributionTypeId { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/CreateModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/CreateModel.cs index 2238dc0c..b2bc7279 100644 --- a/Disco.Web/Areas/Config/Models/DocumentTemplate/CreateModel.cs +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/CreateModel.cs @@ -4,11 +4,12 @@ using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using Disco.Data.Repository; +using Disco.Models.UI.Config.DocumentTemplate; namespace Disco.Web.Areas.Config.Models.DocumentTemplate { [CustomValidation(typeof(CreateModelValidation), "ValidateCreateModel")] - public class CreateModel + public class CreateModel : ConfigDocumentTemplateCreateModel { public Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/ExpressionBrowserModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/ExpressionBrowserModel.cs index fffa23cd..6b01bb72 100644 --- a/Disco.Web/Areas/Config/Models/DocumentTemplate/ExpressionBrowserModel.cs +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/ExpressionBrowserModel.cs @@ -1,20 +1,17 @@ -using System; +using Disco.Models.UI.Config.DocumentTemplate; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.DocumentTemplate { - public class ExpressionBrowserModel + public class ExpressionBrowserModel : ConfigDocumentTemplateExpressionBrowserModel { public string DeviceType { get; set; } public string UserType { get; set; } public string JobType { get; set; } - //public string DataExtType { get; set; } - //public string DeviceExtType { get; set; } - //public string UserExtType { get; set; } - public Dictionary Variables { get; set; } public Dictionary ExtensionLibraries { get; set; } } diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/ImportStatusModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/ImportStatusModel.cs new file mode 100644 index 00000000..bc176971 --- /dev/null +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/ImportStatusModel.cs @@ -0,0 +1,12 @@ +using Disco.Models.UI.Config.DocumentTemplate; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Disco.Web.Areas.Config.Models.DocumentTemplate +{ + public class ImportStatusModel : ConfigDocumentTemplateImportStatusModel + { + } +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/IndexModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/IndexModel.cs index 8e40cb82..1a0875d8 100644 --- a/Disco.Web/Areas/Config/Models/DocumentTemplate/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/IndexModel.cs @@ -1,11 +1,12 @@ -using System; +using Disco.Models.UI.Config.DocumentTemplate; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.DocumentTemplate { - public class IndexModel + public class IndexModel : ConfigDocumentTemplateIndexModel { public List DocumentTemplates { get; set; } } diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/ShowModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/ShowModel.cs index 21d2e126..91f57d18 100644 --- a/Disco.Web/Areas/Config/Models/DocumentTemplate/ShowModel.cs +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/ShowModel.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Web; using Disco.Data.Repository; using Disco.Models.Repository; +using Disco.Models.UI.Config.DocumentTemplate; namespace Disco.Web.Areas.Config.Models.DocumentTemplate { - public class ShowModel + public class ShowModel : ConfigDocumentTemplateShowModel { public Disco.Models.Repository.DocumentTemplate DocumentTemplate { get; set; } diff --git a/Disco.Web/Areas/Config/Models/DocumentTemplate/UndetectedPagesModel.cs b/Disco.Web/Areas/Config/Models/DocumentTemplate/UndetectedPagesModel.cs index 8b466a16..6f3eab07 100644 --- a/Disco.Web/Areas/Config/Models/DocumentTemplate/UndetectedPagesModel.cs +++ b/Disco.Web/Areas/Config/Models/DocumentTemplate/UndetectedPagesModel.cs @@ -6,10 +6,11 @@ using System.Web.Mvc; using Disco.BI; using Disco.BI.Extensions; using Disco.Web.Extensions; +using Disco.Models.UI.Config.DocumentTemplate; namespace Disco.Web.Areas.Config.Models.DocumentTemplate { - public class UndetectedPagesModel + public class UndetectedPagesModel : ConfigDocumentTemplateUndetectedPagesModel { public List DocumentTemplates { get; set; } diff --git a/Disco.Web/Areas/Config/Models/Enrolment/IndexModel.cs b/Disco.Web/Areas/Config/Models/Enrolment/IndexModel.cs index b2d84d65..db12128c 100644 --- a/Disco.Web/Areas/Config/Models/Enrolment/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/Enrolment/IndexModel.cs @@ -1,11 +1,12 @@ -using System; +using Disco.Models.UI.Config.Enrolment; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.Enrolment { - public class IndexModel + public class IndexModel : ConfigEnrolmentIndexModel { public string MacSshUsername { get; set; } } diff --git a/Disco.Web/Areas/Config/Models/Enrolment/StatusModel.cs b/Disco.Web/Areas/Config/Models/Enrolment/StatusModel.cs new file mode 100644 index 00000000..0aa033d3 --- /dev/null +++ b/Disco.Web/Areas/Config/Models/Enrolment/StatusModel.cs @@ -0,0 +1,12 @@ +using Disco.Models.UI.Config.Enrolment; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace Disco.Web.Areas.Config.Models.Enrolment +{ + public class StatusModel : ConfigEnrolmentStatusModel + { + } +} \ No newline at end of file diff --git a/Disco.Web/Areas/Config/Models/Logging/IndexModel.cs b/Disco.Web/Areas/Config/Models/Logging/IndexModel.cs index 054e48fe..4d0d0516 100644 --- a/Disco.Web/Areas/Config/Models/Logging/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/Logging/IndexModel.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Web; using Disco.Services.Logging; using Disco.Services.Logging.Models; +using Disco.Models.UI.Config.Logging; namespace Disco.Web.Areas.Config.Models.Logging { - public class IndexModel + public class IndexModel : ConfigLoggingIndexModel { public Dictionary> LogModules { get; set; } } diff --git a/Disco.Web/Areas/Config/Models/Logging/TaskStatusModel.cs b/Disco.Web/Areas/Config/Models/Logging/TaskStatusModel.cs index 7068ff96..67e22132 100644 --- a/Disco.Web/Areas/Config/Models/Logging/TaskStatusModel.cs +++ b/Disco.Web/Areas/Config/Models/Logging/TaskStatusModel.cs @@ -1,11 +1,12 @@ -using System; +using Disco.Models.UI.Config.Logging; +using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Disco.Web.Areas.Config.Models.Logging { - public class TaskStatusModel + public class TaskStatusModel : ConfigLoggingTaskStatusModel { public string SessionId { get; set; } } diff --git a/Disco.Web/Areas/Config/Models/Organisation/IndexModel.cs b/Disco.Web/Areas/Config/Models/Organisation/IndexModel.cs index 76958866..2fa10315 100644 --- a/Disco.Web/Areas/Config/Models/Organisation/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/Organisation/IndexModel.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Web; using Disco.Models.BI.Config; using System.ComponentModel.DataAnnotations; +using Disco.Models.UI.Config.Organisation; namespace Disco.Web.Areas.Config.Models.Organisation { - public class IndexModel + public class IndexModel : ConfigOrganisationIndexModel { public string OrganisationName { get; set; } [Display(Name="Enabled")] diff --git a/Disco.Web/Areas/Config/Views/DeviceBatch/Create.cshtml b/Disco.Web/Areas/Config/Views/DeviceBatch/Create.cshtml index 361a271c..816f9ca4 100644 --- a/Disco.Web/Areas/Config/Views/DeviceBatch/Create.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceBatch/Create.cshtml @@ -1,4 +1,4 @@ -@model Disco.Models.Repository.DeviceBatch +@model Disco.Web.Areas.Config.Models.DeviceBatch.CreateModel @{ ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Batches", MVC.Config.DeviceBatch.Index(null), "Create"); } @@ -11,14 +11,14 @@ Name: - @Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name) + @Html.EditorFor(model => model.DeviceBatch.Name)
@Html.ValidationMessageFor(model => model.DeviceBatch.Name) Purchase Date: - @Html.EditorFor(model => model.PurchaseDate)
@Html.ValidationMessageFor(model => model.PurchaseDate) + @Html.EditorFor(model => model.DeviceBatch.PurchaseDate)
@Html.ValidationMessageFor(model => model.DeviceBatch.PurchaseDate) diff --git a/Disco.Web/Areas/Config/Views/DeviceBatch/Create.generated.cs b/Disco.Web/Areas/Config/Views/DeviceBatch/Create.generated.cs index 76164ec4..ca689649 100644 --- a/Disco.Web/Areas/Config/Views/DeviceBatch/Create.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceBatch/Create.generated.cs @@ -2,7 +2,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.17929 +// Runtime Version:4.0.30319.18033 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -31,9 +31,9 @@ namespace Disco.Web.Areas.Config.Views.DeviceBatch using Disco.Web; using Disco.Web.Extensions; - [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.0.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "1.5.4.0")] [System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/DeviceBatch/Create.cshtml")] - public class Create : System.Web.Mvc.WebViewPage + public partial class Create : System.Web.Mvc.WebViewPage { public Create() { @@ -71,7 +71,7 @@ WriteLiteral(" "); #line 14 "..\..\Areas\Config\Views\DeviceBatch\Create.cshtml" - Write(Html.EditorFor(model => model.Name)); + Write(Html.EditorFor(model => model.DeviceBatch.Name)); #line default @@ -80,7 +80,7 @@ WriteLiteral("
"); #line 14 "..\..\Areas\Config\Views\DeviceBatch\Create.cshtml" - Write(Html.ValidationMessageFor(model => model.Name)); + Write(Html.ValidationMessageFor(model => model.DeviceBatch.Name)); #line default @@ -91,7 +91,7 @@ WriteLiteral("\r\n \r\n \r\n #line 21 "..\..\Areas\Config\Views\DeviceBatch\Create.cshtml" - Write(Html.EditorFor(model => model.PurchaseDate)); + Write(Html.EditorFor(model => model.DeviceBatch.PurchaseDate)); #line default @@ -100,7 +100,7 @@ WriteLiteral("
"); #line 21 "..\..\Areas\Config\Views\DeviceBatch\Create.cshtml" - Write(Html.ValidationMessageFor(model => model.PurchaseDate)); + Write(Html.ValidationMessageFor(model => model.DeviceBatch.PurchaseDate)); #line default diff --git a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml index 947df2a1..0f5e35d9 100644 --- a/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceBatch/Show.cshtml @@ -205,7 +205,7 @@ Default Device Model: - @Html.DropDownListFor(model => model.DeviceBatch.DefaultDeviceModelId, Model.DeviceModels) + @Html.DropDownListFor(model => model.DeviceBatch.DefaultDeviceModelId, Model.DeviceModels.ToSelectListItems()) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() -
@CommonHelpers.Breadcrumbs(ViewBag.Title)
+
@CommonHelpers.Breadcrumbs(ViewBag.Title ?? string.Empty)
@RenderBody()
diff --git a/Disco.Web/Views/Shared/_Layout.generated.cs b/Disco.Web/Views/Shared/_Layout.generated.cs index 7d8ca3df..62ec5563 100644 --- a/Disco.Web/Views/Shared/_Layout.generated.cs +++ b/Disco.Web/Views/Shared/_Layout.generated.cs @@ -2,7 +2,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.17929 +// Runtime Version:4.0.30319.18033 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -53,7 +53,7 @@ WriteLiteral("\r\n\r\n\r\n\r\n Disco - "); #line 8 "..\..\Views\Shared\_Layout.cshtml" - Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title)); + Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title ?? string.Empty)); #line default @@ -122,26 +122,26 @@ WriteLiteral(" id=\"heading\""); WriteLiteral(">\r\n <a"); -WriteAttribute("href", Tuple.Create(" href=\"", 672), Tuple.Create("\"", 707) +WriteAttribute("href", Tuple.Create(" href=\"", 688), Tuple.Create("\"", 723) #line 21 "..\..\Views\Shared\_Layout.cshtml" -, Tuple.Create(Tuple.Create("", 679), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Job.Index()) +, Tuple.Create(Tuple.Create("", 695), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Job.Index()) #line default #line hidden -, 679), false) +, 695), false) ); WriteLiteral(">\r\n <img"); -WriteAttribute("src", Tuple.Create(" src=\"", 739), Tuple.Create("\"", 789) +WriteAttribute("src", Tuple.Create(" src=\"", 755), Tuple.Create("\"", 805) #line 22 "..\..\Views\Shared\_Layout.cshtml" -, Tuple.Create(Tuple.Create("", 745), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png +, Tuple.Create(Tuple.Create("", 761), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png #line default #line hidden -, 745), false) +, 761), false) ); WriteLiteral(" alt=\"DISCO - ICT Asset Management\""); @@ -419,7 +419,7 @@ WriteLiteral(">"); #line 98 "..\..\Views\Shared\_Layout.cshtml" - Write(CommonHelpers.Breadcrumbs(ViewBag.Title)); + Write(CommonHelpers.Breadcrumbs(ViewBag.Title ?? string.Empty)); #line default