From 54a578f4a1b3d032935e22e58c950a7b0e5bf161 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Fri, 11 Jul 2025 12:55:50 +1000 Subject: [PATCH] feature: custom device models --- Disco.Data/Repository/DiscoDataSeeder.cs | 2 +- Disco.Models/Disco.Models.csproj | 1 + Disco.Models/Repository/Device/DeviceModel.cs | 16 +- .../ConfigDeviceModelCreateModel.cs | 9 + Disco.Services/Authorization/Claims.cs | 8 + .../DeviceModel/DeviceModelClaims.cs | 3 + .../Devices/DeviceModelExtensions.cs | 4 +- Disco.Services/Extensions/StringExtensions.cs | 8 + .../API/Controllers/DeviceModelController.cs | 58 +- .../Areas/Config/ConfigAreaRegistration.cs | 7 +- .../Controllers/DeviceModelController.cs | 50 +- .../Config/Models/DeviceModel/CreateModel.cs | 15 + .../Config/Views/DeviceModel/Create.cshtml | 44 + .../Views/DeviceModel/Create.generated.cs | 177 ++++ .../Config/Views/DeviceModel/Index.cshtml | 4 + .../Views/DeviceModel/Index.generated.cs | 33 +- .../Config/Views/DeviceModel/Show.cshtml | 359 ++++---- .../Views/DeviceModel/Show.generated.cs | 830 +++++++++++------- Disco.Web/Disco.Web.csproj | 12 +- .../API.DeviceModelController.generated.cs | 64 ++ .../Config.DeviceModelController.generated.cs | 35 + 21 files changed, 1225 insertions(+), 514 deletions(-) create mode 100644 Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelCreateModel.cs create mode 100644 Disco.Web/Areas/Config/Models/DeviceModel/CreateModel.cs create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Create.cshtml create mode 100644 Disco.Web/Areas/Config/Views/DeviceModel/Create.generated.cs diff --git a/Disco.Data/Repository/DiscoDataSeeder.cs b/Disco.Data/Repository/DiscoDataSeeder.cs index cb54d105..3b86389e 100644 --- a/Disco.Data/Repository/DiscoDataSeeder.cs +++ b/Disco.Data/Repository/DiscoDataSeeder.cs @@ -58,7 +58,7 @@ namespace Disco.Data.Repository { if (Database.DeviceModels.Count() == 0) { - Database.DeviceModels.Add(new DeviceModel { Manufacturer = "Unknown", Model = "Unknown", Description = "Unknown Device Model" }); + Database.DeviceModels.Add(new DeviceModel { Manufacturer = "Unknown", Model = "Unknown", Description = "Unknown Device Model", ModelType = "Unknown" }); } UpdateDeviceModelConfiguration(Database); // Removed: 2013-01-14 G# diff --git a/Disco.Models/Disco.Models.csproj b/Disco.Models/Disco.Models.csproj index f9270623..392fab94 100644 --- a/Disco.Models/Disco.Models.csproj +++ b/Disco.Models/Disco.Models.csproj @@ -194,6 +194,7 @@ + diff --git a/Disco.Models/Repository/Device/DeviceModel.cs b/Disco.Models/Repository/Device/DeviceModel.cs index d428d380..2ed35fce 100644 --- a/Disco.Models/Repository/Device/DeviceModel.cs +++ b/Disco.Models/Repository/Device/DeviceModel.cs @@ -6,6 +6,8 @@ namespace Disco.Models.Repository { public class DeviceModel { + public static readonly string CustomModelType = "Custom"; + [Key] public int Id { get; set; } [StringLength(500)] @@ -17,11 +19,6 @@ namespace Disco.Models.Repository public string Model { get; set; } [StringLength(40)] public string ModelType { get; set; } - - // Remove Reliance On! - // Removed: 2013-01-14 G# - //[Obsolete("Image to be removed from the Database")] - //public byte[] Image { get; set; } [DisplayFormat(ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true, DataFormatString = "{0:yyyy/MM/dd}", HtmlEncode = false)] public DateTime? DefaultPurchaseDate { get; set; } @@ -40,11 +37,14 @@ namespace Disco.Models.Repository public override string ToString() { - if (string.IsNullOrWhiteSpace(this.Description)) + if (string.IsNullOrWhiteSpace(Description)) { - return string.Format("{0} {1}", this.Manufacturer, this.Model); + return $"{Manufacturer} {Model}"; } - return this.Description; + return Description; } + + public bool IsCustomModel() + => CustomModelType.Equals(ModelType, StringComparison.Ordinal); } } diff --git a/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelCreateModel.cs b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelCreateModel.cs new file mode 100644 index 00000000..95bb1070 --- /dev/null +++ b/Disco.Models/UI/Config/DeviceModel/ConfigDeviceModelCreateModel.cs @@ -0,0 +1,9 @@ +namespace Disco.Models.UI.Config.DeviceModel +{ + public interface ConfigDeviceModelCreateModel : BaseUIModel + { + string Description { get; set; } + string Manufacturer { get; set; } + string ManufacturerModel { get; set; } + } +} diff --git a/Disco.Services/Authorization/Claims.cs b/Disco.Services/Authorization/Claims.cs index 21345e59..ff8d3ade 100644 --- a/Disco.Services/Authorization/Claims.cs +++ b/Disco.Services/Authorization/Claims.cs @@ -38,6 +38,7 @@ namespace Disco.Services.Authorization { "Config.DeviceFlag.Show", new Tuple, Action, string, string, bool>(c => c.Config.DeviceFlag.Show, (c, v) => c.Config.DeviceFlag.Show = v, "Show Device Flags", "Can show device flags", false) }, { "Config.DeviceModel.ConfigureComponents", new Tuple, Action, string, string, bool>(c => c.Config.DeviceModel.ConfigureComponents, (c, v) => c.Config.DeviceModel.ConfigureComponents = v, "Configure Device Model Components", "Can configure device model components", false) }, { "Config.DeviceModel.Configure", new Tuple, Action, string, string, bool>(c => c.Config.DeviceModel.Configure, (c, v) => c.Config.DeviceModel.Configure = v, "Configure Device Models", "Can configure device models", false) }, + { "Config.DeviceModel.CreateCustom", new Tuple, Action, string, string, bool>(c => c.Config.DeviceModel.CreateCustom, (c, v) => c.Config.DeviceModel.CreateCustom = v, "Create Custom Device Models", "Can create custom device models", false) }, { "Config.DeviceModel.Delete", new Tuple, Action, string, string, bool>(c => c.Config.DeviceModel.Delete, (c, v) => c.Config.DeviceModel.Delete = v, "Delete Device Models", "Can delete device models", false) }, { "Config.DeviceModel.Show", new Tuple, Action, string, string, bool>(c => c.Config.DeviceModel.Show, (c, v) => c.Config.DeviceModel.Show = v, "Show Device Models", "Can show device models", false) }, { "Config.DeviceProfile.ConfigureComputerNameTemplate", new Tuple, Action, string, string, bool>(c => c.Config.DeviceProfile.ConfigureComputerNameTemplate, (c, v) => c.Config.DeviceProfile.ConfigureComputerNameTemplate = v, "Configure Computer Name Templates", "Can configure computer name templates for device profiles", false) }, @@ -259,6 +260,7 @@ namespace Disco.Services.Authorization new ClaimNavigatorItem("Config.DeviceModel", "Device Models", "Permissions related to Device Models", false, new List() { new ClaimNavigatorItem("Config.DeviceModel.ConfigureComponents", false), new ClaimNavigatorItem("Config.DeviceModel.Configure", false), + new ClaimNavigatorItem("Config.DeviceModel.CreateCustom", false), new ClaimNavigatorItem("Config.DeviceModel.Delete", false), new ClaimNavigatorItem("Config.DeviceModel.Show", false) }), @@ -584,6 +586,7 @@ namespace Disco.Services.Authorization c.Config.DeviceFlag.Show = true; c.Config.DeviceModel.ConfigureComponents = true; c.Config.DeviceModel.Configure = true; + c.Config.DeviceModel.CreateCustom = true; c.Config.DeviceModel.Delete = true; c.Config.DeviceModel.Show = true; c.Config.DeviceProfile.ConfigureComputerNameTemplate = true; @@ -914,6 +917,11 @@ namespace Disco.Services.Authorization /// public const string Configure = "Config.DeviceModel.Configure"; + /// Create Custom Device Models + /// Can create custom device models + /// + public const string CreateCustom = "Config.DeviceModel.CreateCustom"; + /// Delete Device Models /// Can delete device models /// diff --git a/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/DeviceModel/DeviceModelClaims.cs b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/DeviceModel/DeviceModelClaims.cs index 08a17ec1..beff0279 100644 --- a/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/DeviceModel/DeviceModelClaims.cs +++ b/Disco.Services/Authorization/Roles/ClaimGroups/Configuration/DeviceModel/DeviceModelClaims.cs @@ -9,6 +9,9 @@ [ClaimDetails("Configure Device Model Components", "Can configure device model components")] public bool ConfigureComponents { get; set; } + [ClaimDetails("Create Custom Device Models", "Can create custom device models")] + public bool CreateCustom { get; set; } + [ClaimDetails("Delete Device Models", "Can delete device models")] public bool Delete { get; set; } diff --git a/Disco.Services/Devices/DeviceModelExtensions.cs b/Disco.Services/Devices/DeviceModelExtensions.cs index 93f9b8b2..88aa67bc 100644 --- a/Disco.Services/Devices/DeviceModelExtensions.cs +++ b/Disco.Services/Devices/DeviceModelExtensions.cs @@ -77,14 +77,14 @@ namespace Disco.Services ModelType = ModelType.Trim(); // Already Exists? - var deviceModel = DeviceModelsSet.FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model); + var deviceModel = DeviceModelsSet.Where(dm => dm.ModelType != DeviceModel.CustomModelType).FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model); if (deviceModel == null) { // Ensure only one thread/request at a time lock (_CreateDeviceModelLock) { // Check again now that lock is enforced - deviceModel = DeviceModelsSet.FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model); + deviceModel = DeviceModelsSet.Where(dm => dm.ModelType != DeviceModel.CustomModelType).FirstOrDefault(dm => dm.Manufacturer == Manufacturer && dm.Model == Model); if (deviceModel == null) { diff --git a/Disco.Services/Extensions/StringExtensions.cs b/Disco.Services/Extensions/StringExtensions.cs index 3ac777bc..58a10023 100644 --- a/Disco.Services/Extensions/StringExtensions.cs +++ b/Disco.Services/Extensions/StringExtensions.cs @@ -116,5 +116,13 @@ namespace Disco .Select(s => s.Score(Test, Fuzziness)) .Average(); } + + public static string NullOrTrimmed(this string value) + { + if (string.IsNullOrWhiteSpace(value)) + return null; + else + return value.Trim(); + } } } diff --git a/Disco.Web/Areas/API/Controllers/DeviceModelController.cs b/Disco.Web/Areas/API/Controllers/DeviceModelController.cs index 3d2e4156..5d16cf6c 100644 --- a/Disco.Web/Areas/API/Controllers/DeviceModelController.cs +++ b/Disco.Web/Areas/API/Controllers/DeviceModelController.cs @@ -17,6 +17,8 @@ namespace Disco.Web.Areas.API.Controllers { const string pDescription = "description"; + const string pManufacturer = "manufacturer"; + const string pModel = "model"; const string pDefaultPurchaseDate = "defaultpurchasedate"; const string pDefaultWarrantyProvider = "defaultwarrantyprovider"; const string pDefaultRepairProvider = "defaultrepairprovider"; @@ -40,6 +42,12 @@ namespace Disco.Web.Areas.API.Controllers case pDescription: UpdateDescription(deviceModel, value); break; + case pManufacturer: + UpdateManufacturer(deviceModel, value); + break; + case pModel: + UpdateModel(deviceModel, value); + break; case pDefaultPurchaseDate: UpdateDefaultPurchaseDate(deviceModel, value); break; @@ -72,13 +80,25 @@ namespace Disco.Web.Areas.API.Controllers } #region Update Shortcut Methods - + [DiscoAuthorize(Claims.Config.DeviceModel.Configure)] public virtual ActionResult UpdateDescription(int id, string Description = null, bool redirect = false) { return Update(id, pDescription, Description, redirect); } + [DiscoAuthorize(Claims.Config.DeviceModel.Configure)] + public virtual ActionResult UpdateManufacturer(int id, string manufacturer = null, bool redirect = false) + { + return Update(id, pManufacturer, manufacturer, redirect); + } + + [DiscoAuthorize(Claims.Config.DeviceModel.Configure)] + public virtual ActionResult UpdateModel(int id, string model = null, bool redirect = false) + { + return Update(id, pModel, model, redirect); + } + [DiscoAuthorize(Claims.Config.DeviceModel.Configure)] public virtual ActionResult UpdateDefaultPurchaseDate(int id, string DefaultPurchaseDate = null, bool redirect = false) { @@ -100,7 +120,7 @@ namespace Disco.Web.Areas.API.Controllers #endregion #region Update Properties - private void UpdateDescription(Disco.Models.Repository.DeviceModel deviceModel, string Description) + private void UpdateDescription(DeviceModel deviceModel, string Description) { if (string.IsNullOrWhiteSpace(Description)) deviceModel.Description = null; @@ -108,7 +128,29 @@ namespace Disco.Web.Areas.API.Controllers deviceModel.Description = Description; Database.SaveChanges(); } - private void UpdateDefaultPurchaseDate(Disco.Models.Repository.DeviceModel deviceModel, string DefaultPurchaseDate) + private void UpdateManufacturer(DeviceModel deviceModel, string manufacturer) + { + if (!deviceModel.IsCustomModel()) + throw new InvalidCastException("Cannot update Manufacturer for a non-custom device model."); + + if (string.IsNullOrWhiteSpace(manufacturer)) + deviceModel.Manufacturer = null; + else + deviceModel.Manufacturer = manufacturer; + Database.SaveChanges(); + } + private void UpdateModel(DeviceModel deviceModel, string model) + { + if (!deviceModel.IsCustomModel()) + throw new InvalidCastException("Cannot update Model for a non-custom device model."); + + if (string.IsNullOrWhiteSpace(model)) + deviceModel.Model = null; + else + deviceModel.Model = model; + Database.SaveChanges(); + } + private void UpdateDefaultPurchaseDate(DeviceModel deviceModel, string DefaultPurchaseDate) { if (string.IsNullOrEmpty(DefaultPurchaseDate)) { @@ -128,7 +170,7 @@ namespace Disco.Web.Areas.API.Controllers } Database.SaveChanges(); } - private void UpdateDefaultWarrantyProvider(Disco.Models.Repository.DeviceModel deviceModel, string DefaultWarrantyProvider) + private void UpdateDefaultWarrantyProvider(DeviceModel deviceModel, string DefaultWarrantyProvider) { if (string.IsNullOrEmpty(DefaultWarrantyProvider)) { @@ -142,7 +184,7 @@ namespace Disco.Web.Areas.API.Controllers } Database.SaveChanges(); } - private void UpdateDefaultRepairProvider(Disco.Models.Repository.DeviceModel deviceModel, string DefaultRepairProvider) + private void UpdateDefaultRepairProvider(DeviceModel deviceModel, string DefaultRepairProvider) { if (string.IsNullOrEmpty(DefaultRepairProvider)) { @@ -192,7 +234,7 @@ namespace Disco.Web.Areas.API.Controllers } return File(Links.ClientSource.Style.Images.DeviceTypes.Unknown_png, "image/png"); } - + [DiscoAuthorize(Claims.Config.DeviceModel.Configure), HttpPost] public virtual ActionResult Image(int id, bool redirect, HttpPostedFileBase Image) { @@ -232,7 +274,7 @@ namespace Disco.Web.Areas.API.Controllers #region Actions [DiscoAuthorize(Claims.Config.DeviceModel.Delete)] - public virtual ActionResult Delete(int id, Nullable redirect = false) + public virtual ActionResult Delete(int id, bool? redirect = false) { try { @@ -292,7 +334,7 @@ namespace Disco.Web.Areas.API.Controllers Cost = Cost.Substring(Cost.IndexOf("$") + 1); decimal.TryParse(Cost, out cost); - var dc = new Disco.Models.Repository.DeviceComponent() + var dc = new DeviceComponent() { Description = Description, Cost = cost diff --git a/Disco.Web/Areas/Config/ConfigAreaRegistration.cs b/Disco.Web/Areas/Config/ConfigAreaRegistration.cs index 0a41c322..6ee44e7b 100644 --- a/Disco.Web/Areas/Config/ConfigAreaRegistration.cs +++ b/Disco.Web/Areas/Config/ConfigAreaRegistration.cs @@ -19,6 +19,11 @@ namespace Disco.Web.Areas.Config "Config/DeviceModel/GenericComponents", new { controller = "DeviceModel", action = "GenericComponents" } ); + context.MapRoute( + "Config_DeviceModel_Create", + "Config/DeviceModel/Create", + new { controller = "DeviceModel", action = "Create" } + ); context.MapRoute( "Config_DeviceModel", "Config/DeviceModel/{id}", @@ -27,7 +32,7 @@ namespace Disco.Web.Areas.Config context.MapRoute( "Config_DeviceBatch_Create", "Config/DeviceBatch/Create", - new { controller = "DeviceBatch", action = "Create", id = UrlParameter.Optional } + new { controller = "DeviceBatch", action = "Create" } ); context.MapRoute( "Config_DeviceBatch_Timeline", diff --git a/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs b/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs index e4b9edea..bdf734ff 100644 --- a/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs +++ b/Disco.Web/Areas/Config/Controllers/DeviceModelController.cs @@ -1,4 +1,5 @@ -using Disco.Models.UI.Config.DeviceModel; +using Disco.Models.Repository; +using Disco.Models.UI.Config.DeviceModel; using Disco.Services; using Disco.Services.Authorization; using Disco.Services.Plugins; @@ -36,7 +37,7 @@ namespace Disco.Web.Areas.Config.Controllers { DeviceModelId = m.DeviceModel.Id, DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => dc.DeviceModelId == m.DeviceModel.Id).ToList(), - JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == Disco.Models.Repository.JobType.JobTypeIds.HNWar).ToList() + JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar).ToList() }; m.CanDelete = m.DeviceModel.CanDelete(Database); @@ -46,7 +47,7 @@ namespace Disco.Web.Areas.Config.Controllers m.BulkGenerateDocumentTemplates = Database.DocumentTemplates.Where(t => !t.IsHidden).ToList(); // UI Extensions - UIExtensions.ExecuteExtensions(this.ControllerContext, m); + UIExtensions.ExecuteExtensions(ControllerContext, m); return View(MVC.Config.DeviceModel.Views.Show, m); } @@ -55,23 +56,60 @@ namespace Disco.Web.Areas.Config.Controllers var m = Models.DeviceModel.IndexModel.Build(Database); // UI Extensions - UIExtensions.ExecuteExtensions(this.ControllerContext, m); + UIExtensions.ExecuteExtensions(ControllerContext, m); return View(m); } } + [DiscoAuthorizeAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)] + [HttpGet] + public virtual ActionResult Create() + { + var m = new Models.DeviceModel.CreateModel(); + + // UI Extensions + UIExtensions.ExecuteExtensions(ControllerContext, m); + + return View(m); + } + + [DiscoAuthorizeAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)] + [HttpPost, ValidateAntiForgeryToken] + public virtual ActionResult Create(Models.DeviceModel.CreateModel model) + { + if (ModelState.IsValid) + { + var deviceModel = new DeviceModel() + { + Description = model.Description.NullOrTrimmed(), + Manufacturer = model.Manufacturer.NullOrTrimmed(), + Model = model.ManufacturerModel.NullOrTrimmed(), + ModelType = DeviceModel.CustomModelType, + }; + + Database.DeviceModels.Add(deviceModel); + Database.SaveChanges(); + return RedirectToAction(MVC.Config.DeviceModel.Index(deviceModel.Id)); + } + + // UI Extensions + UIExtensions.ExecuteExtensions(ControllerContext, model); + + return View(model); + } + [DiscoAuthorize(Claims.Config.DeviceModel.Show)] public virtual ActionResult GenericComponents() { var m = new Models.DeviceModel.ComponentsModel() { DeviceComponents = Database.DeviceComponents.Include("JobSubTypes").Where(dc => !dc.DeviceModelId.HasValue).ToList(), - JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == Disco.Models.Repository.JobType.JobTypeIds.HNWar).ToList() + JobSubTypes = Database.JobSubTypes.Where(jst => jst.JobTypeId == JobType.JobTypeIds.HNWar).ToList() }; // UI Extensions - UIExtensions.ExecuteExtensions(this.ControllerContext, m); + UIExtensions.ExecuteExtensions(ControllerContext, m); return View(m); } diff --git a/Disco.Web/Areas/Config/Models/DeviceModel/CreateModel.cs b/Disco.Web/Areas/Config/Models/DeviceModel/CreateModel.cs new file mode 100644 index 00000000..931dcb9e --- /dev/null +++ b/Disco.Web/Areas/Config/Models/DeviceModel/CreateModel.cs @@ -0,0 +1,15 @@ +using Disco.Models.UI.Config.DeviceModel; +using System.ComponentModel.DataAnnotations; + +namespace Disco.Web.Areas.Config.Models.DeviceModel +{ + public class CreateModel : ConfigDeviceModelCreateModel + { + [Required, StringLength(500)] + public string Description { get; set; } + [StringLength(200)] + public string Manufacturer { get; set; } + [StringLength(200)] + public string ManufacturerModel { get; set; } + } +} diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Create.cshtml b/Disco.Web/Areas/Config/Views/DeviceModel/Create.cshtml new file mode 100644 index 00000000..eb74098f --- /dev/null +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Create.cshtml @@ -0,0 +1,44 @@ +@model Disco.Web.Areas.Config.Models.DeviceModel.CreateModel +@{ + Authorization.RequireAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure); + + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Models", MVC.Config.DeviceModel.Index(null), "Create Custom"); +} +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() +
+ + + + + + + + + + + + + +
+ Name / Description: + + @Html.TextBoxFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description) +
+ Manufacturer: + @Html.TextBoxFor(model => model.Manufacturer)
@Html.ValidationMessageFor(model => model.Manufacturer) +
+ Model: + @Html.TextBoxFor(model => model.ManufacturerModel)
@Html.ValidationMessageFor(model => model.ManufacturerModel) +
+

+ +

+
+ +} diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Create.generated.cs b/Disco.Web/Areas/Config/Views/DeviceModel/Create.generated.cs new file mode 100644 index 00000000..b75f78dc --- /dev/null +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Create.generated.cs @@ -0,0 +1,177 @@ +#pragma warning disable 1591 +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Disco.Web.Areas.Config.Views.DeviceModel +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net; + using System.Text; + using System.Web; + using System.Web.Helpers; + using System.Web.Mvc; + using System.Web.Mvc.Ajax; + using System.Web.Mvc.Html; + using System.Web.Routing; + using System.Web.Security; + using System.Web.UI; + using System.Web.WebPages; + using Disco; + using Disco.Models.Repository; + using Disco.Services; + using Disco.Services.Authorization; + using Disco.Services.Web; + using Disco.Web; + using Disco.Web.Extensions; + + [System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")] + [System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Config/Views/DeviceModel/Create.cshtml")] + public partial class Create : Disco.Services.Web.WebViewPage + { + public Create() + { + } + public override void Execute() + { + + #line 2 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + + Authorization.RequireAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure); + + ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "Device Models", MVC.Config.DeviceModel.Index(null), "Create Custom"); + + + #line default + #line hidden +WriteLiteral("\r\n"); + + + #line 7 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + using (Html.BeginForm()) +{ + + + #line default + #line hidden + + #line 9 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" +Write(Html.AntiForgeryToken()); + + + #line default + #line hidden + + #line 9 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manufacturer:\r\n \r\n "); + + + #line 24 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.TextBoxFor(model => model.Manufacturer)); + + + #line default + #line hidden +WriteLiteral("
"); + + + #line 24 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.ValidationMessageFor(model => model.Manufacturer)); + + + #line default + #line hidden +WriteLiteral("\r\n \r\n
\r\n \r\n \r\n Model:\r\n \r\n \r\n \r\n
\r\n N" + +"ame / Description:\r\n \r\n"); + +WriteLiteral(" "); + + + #line 17 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.TextBoxFor(model => model.Description)); + + + #line default + #line hidden +WriteLiteral("
"); + + + #line 17 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.ValidationMessageFor(model => model.Description)); + + + #line default + #line hidden +WriteLiteral("\r\n
"); + + + #line 31 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.TextBoxFor(model => model.ManufacturerModel)); + + + #line default + #line hidden +WriteLiteral("
"); + + + #line 31 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" + Write(Html.ValidationMessageFor(model => model.ManufacturerModel)); + + + #line default + #line hidden +WriteLiteral("\r\n
\r\n \r\n \r\n

\r\n \r\n"); + +WriteLiteral(" \r\n $(function () {\r\n $(\'#Description\').focus().select();\r\n " + +" });\r\n \r\n"); + + + #line 44 "..\..\Areas\Config\Views\DeviceModel\Create.cshtml" +} + + + #line default + #line hidden + } + } +} +#pragma warning restore 1591 diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Index.cshtml b/Disco.Web/Areas/Config/Views/DeviceModel/Index.cshtml index 9c8819b5..4f24be6c 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Index.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Index.cshtml @@ -64,4 +64,8 @@
@Html.ActionLinkButton("Generic Components", MVC.Config.DeviceModel.GenericComponents()) + @if (Authorization.HasAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)) + { + @Html.ActionLinkButton("Create Custom Device Model", MVC.Config.DeviceModel.Create()) + }
\ No newline at end of file diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Index.generated.cs b/Disco.Web/Areas/Config/Views/DeviceModel/Index.generated.cs index f211c827..3b8aeb5b 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Index.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Index.generated.cs @@ -304,7 +304,38 @@ Write(Html.ActionLinkButton("Generic Components", MVC.Config.DeviceModel.Generic #line default #line hidden -WriteLiteral("\r\n"); +WriteLiteral("\r\n"); + + + #line 67 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml" + + + #line default + #line hidden + + #line 67 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml" + if (Authorization.HasAll(Claims.Config.DeviceModel.CreateCustom, Claims.Config.DeviceModel.Configure)) + { + + + #line default + #line hidden + + #line 69 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml" + Write(Html.ActionLinkButton("Create Custom Device Model", MVC.Config.DeviceModel.Create())); + + + #line default + #line hidden + + #line 69 "..\..\Areas\Config\Views\DeviceModel\Index.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(""); } } diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml b/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml index 2c97a39b..ccb0c830 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Show.cshtml @@ -4,6 +4,7 @@ var canConfig = Authorization.Has(Claims.Config.DeviceModel.Configure); var canViewPlugins = Authorization.Has(Claims.Config.Plugin.Install); + var isCustom = Model.DeviceModel.IsCustomModel(); if (canConfig) { @@ -47,44 +48,82 @@ { @Html.DisplayFor(model => model.DeviceModel.Description) } - - - - - Manufacturer: - - - @Html.DisplayFor(model => model.DeviceModel.Manufacturer) - - - - - Model: - - - @Html.DisplayFor(model => model.DeviceModel.Model) - - - - Statistics - -
@Model.DeviceCount.ToString("n0") @(Model.DeviceCount == 1 ? "devices is" : "devices are") of this model type.
- @if (Model.DeviceDecommissionedCount > 0) - { -
@Model.DeviceDecommissionedCount.ToString("n0") @(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are") decommissioned.
- } - - - - - Default Purchase Date: - - - @if (canConfig) - { - @Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate) - @AjaxHelpers.AjaxLoader() - + } + else + { + @Html.DisplayFor(model => model.DeviceModel.Manufacturer) + } + + + + + Model: + + + @if (isCustom && canConfig) + { + @Html.EditorFor(model => model.DeviceModel.Model) + @AjaxHelpers.AjaxSave() + @AjaxHelpers.AjaxLoader() + + } + else + { + @Html.DisplayFor(model => model.DeviceModel.Model) + } + + + + Statistics + +
@Model.DeviceCount.ToString("n0") @(Model.DeviceCount == 1 ? "devices is" : "devices are") of this model type.
+ @if (Model.DeviceDecommissionedCount > 0) + { +
@Model.DeviceDecommissionedCount.ToString("n0") @(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are") decommissioned.
+ } + + + + + Default Purchase Date: + + + @if (canConfig) + { + @Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate) + @AjaxHelpers.AjaxLoader() + - } - else - { - @CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown") - } - - - - - Default Warranty Provider: - - - @if (canConfig) - { - if (Model.WarrantyProviders.Count > 0) - { - @Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None")) - @AjaxHelpers.AjaxLoader() - + } + else + { + @CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown") + } + + + + + Default Warranty Provider: + + + @if (canConfig) + { + if (Model.WarrantyProviders.Count > 0) + { + @Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None")) + @AjaxHelpers.AjaxLoader() + - } - else - { - No warranty provider plugins installed - } - if (canViewPlugins) - { -
-

- View the Plugin Catalogue to discover and install warranty provider plugins. -

-
- } - } - else - { - if (Model.DeviceModel.DefaultWarrantyProvider == null) - { - <None Specified> - } - else - { - var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider); - if (provider == null) - { - <None Specified> + + } + else + { + No warranty provider plugins installed + } + if (canViewPlugins) + { +
+

+ View the Plugin Catalogue to discover and install warranty provider plugins. +

+
+ } } else { - @provider.Name + if (Model.DeviceModel.DefaultWarrantyProvider == null) + { + <None Specified> + } + else + { + var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider); + if (provider == null) + { + <None Specified> + } + else + { + @provider.Name + } + } } - } - } - - - - - Default Repair Provider: - - - @if (canConfig) - { - if (Model.RepairProviders.Count > 0) - { - @Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None")) - @AjaxHelpers.AjaxLoader() - - } - else - { -
No repair provider plugins installed
- } - if (canViewPlugins) - { -
-

- View the Plugin Catalogue to discover and install repair provider plugins. -

-
- } - } - else - { - if (Model.DeviceModel.DefaultRepairProvider == null) - { - <None Specified> - } - else - { - var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider); - if (provider == null) - { - <None Specified> + + } + else + { +
No repair provider plugins installed
+ } + if (canViewPlugins) + { +
+

+ View the Plugin Catalogue to discover and install repair provider plugins. +

+
+ } } else { - @provider.Name + if (Model.DeviceModel.DefaultRepairProvider == null) + { + <None Specified> + } + else + { + var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider); + if (provider == null) + { + <None Specified> + } + else + { + @provider.Name + } + } } - } - } - - - - - Type: - - - @Html.DisplayFor(model => model.DeviceModel.ModelType) - - - - - Image: - - - Model Image - @if (canConfig) - { -
- using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" })) - { - - - } - } - - - + + + + + Type: + + + @Html.DisplayFor(model => model.DeviceModel.ModelType) + + + + + Image: + + + Model Image + @if (canConfig) + { +
+ using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" })) + { + + + } + } + + +

Components

@Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel) diff --git a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs index 7ca6a8cf..20679ec2 100644 --- a/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs +++ b/Disco.Web/Areas/Config/Views/DeviceModel/Show.generated.cs @@ -50,6 +50,7 @@ namespace Disco.Web.Areas.Config.Views.DeviceModel var canConfig = Authorization.Has(Claims.Config.DeviceModel.Configure); var canViewPlugins = Authorization.Has(Claims.Config.Plugin.Install); + var isCustom = Model.DeviceModel.IsCustomModel(); if (canConfig) { @@ -76,7 +77,7 @@ WriteLiteral(">\r\n Id:\r\n \r\n \ WriteLiteral(" "); - #line 22 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 23 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.DisplayFor(model => model.DeviceModel.Id)); @@ -86,13 +87,13 @@ WriteLiteral("\r\n \r\n \r\n \r\n " Description:\r\n \r\n \r\n"); - #line 30 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 31 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 30 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 31 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" if (canConfig) { @@ -100,42 +101,42 @@ WriteLiteral("\r\n \r\n \r\n \r\n #line default #line hidden - #line 32 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 33 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.EditorFor(model => model.DeviceModel.Description)); #line default #line hidden - #line 32 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 33 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 33 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 34 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(AjaxHelpers.AjaxSave()); #line default #line hidden - #line 33 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 34 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 34 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 35 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 34 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 35 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" @@ -149,7 +150,7 @@ WriteLiteral(@" \r\n"); - #line 45 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 46 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } else { @@ -168,50 +169,226 @@ WriteLiteral("\',\r\n \'Description\'\r\n #line default #line hidden - #line 48 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 49 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.DisplayFor(model => model.DeviceModel.Description)); #line default #line hidden - #line 48 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 49 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } #line default #line hidden -WriteLiteral(" \r\n \r\n \r\n \r\n Manufacturer:\r\n " + -" \r\n \r\n"); - -WriteLiteral(" "); +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Manufacturer:\r\n \r\n \r\n"); - #line 57 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.DisplayFor(model => model.DeviceModel.Manufacturer)); + #line 58 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + #line default + #line hidden + + #line 58 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (isCustom && canConfig) + { + + + #line default + #line hidden + + #line 60 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.EditorFor(model => model.DeviceModel.Manufacturer)); #line default #line hidden -WriteLiteral("\r\n \r\n \r\n \r\n \r\n Model:\r\n <" + -"/th>\r\n \r\n"); - -WriteLiteral(" "); - - #line 65 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.DisplayFor(model => model.DeviceModel.Model)); + #line 60 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden + + #line 61 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxSave()); #line default #line hidden -WriteLiteral("\r\n \r\n \r\n \r\n Statistics\r\n \r\n" + -"
"); + + #line 61 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden + + #line 62 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); - #line 71 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Model.DeviceCount.ToString("n0")); + #line default + #line hidden + + #line 62 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden +WriteLiteral(@" \r\n"); + + + #line 73 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + + + #line default + #line hidden + + #line 76 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.DisplayFor(model => model.DeviceModel.Manufacturer)); + + + #line default + #line hidden + + #line 76 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Model:\r\n \r\n \r\n"); + + + #line 85 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + #line default + #line hidden + + #line 85 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (isCustom && canConfig) + { + + + #line default + #line hidden + + #line 87 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.EditorFor(model => model.DeviceModel.Model)); + + + #line default + #line hidden + + #line 87 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden + + #line 88 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxSave()); + + + #line default + #line hidden + + #line 88 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden + + #line 89 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); + + + #line default + #line hidden + + #line 89 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + + + #line default + #line hidden +WriteLiteral(@" \r\n"); + + + #line 100 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + + + #line default + #line hidden + + #line 103 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.DisplayFor(model => model.DeviceModel.Model)); + + + #line default + #line hidden + + #line 103 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n Statistics\r\n" + +" \r\n
"); + + + #line 110 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Model.DeviceCount.ToString("n0")); #line default @@ -219,8 +396,8 @@ WriteLiteral("\r\n \r\n \r\n \r\n Statisti WriteLiteral(" "); - #line 71 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Model.DeviceCount == 1 ? "devices is" : "devices are"); + #line 110 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Model.DeviceCount == 1 ? "devices is" : "devices are"); #line default @@ -228,28 +405,28 @@ WriteLiteral(" "); WriteLiteral(" of this model type.
\r\n"); - #line 72 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 111 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line default #line hidden - #line 72 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - if (Model.DeviceDecommissionedCount > 0) - { + #line 111 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (Model.DeviceDecommissionedCount > 0) + { #line default #line hidden -WriteLiteral(" "); - #line 74 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Model.DeviceDecommissionedCount.ToString("n0")); + #line 113 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Model.DeviceDecommissionedCount.ToString("n0")); #line default @@ -257,8 +434,8 @@ WriteLiteral(">"); WriteLiteral(" "); - #line 74 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are"); + #line 113 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Model.DeviceDecommissionedCount == 1 ? "device is" : "devices are"); #line default @@ -266,58 +443,58 @@ WriteLiteral(" "); WriteLiteral(" decommissioned.
\r\n"); - #line 75 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } + #line 114 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } #line default #line hidden -WriteLiteral(" \r\n \r\n \r\n \r\n Default Purchase Da" + -"te:\r\n \r\n \r\n"); +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Default Purchase Date:\r\n \r\n \r\n"); - #line 83 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - - #line default - #line hidden - - #line 83 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - if (canConfig) - { + #line 122 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 85 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate)); + #line 122 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (canConfig) + { + + + #line default + #line hidden + + #line 124 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.EditorFor(model => model.DeviceModel.DefaultPurchaseDate)); #line default #line hidden - #line 85 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - + #line 124 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + #line default #line hidden - #line 86 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(AjaxHelpers.AjaxLoader()); + #line 125 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 86 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 125 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line default #line hidden -WriteLiteral(@" \r\n"); +"});\r\n \r\n"); - #line 100 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - else - { + #line 139 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + + + #line default + #line hidden + + #line 142 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown")); + + + #line default + #line hidden + + #line 142 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + } + + + #line default + #line hidden +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Default Warranty Provider:\r\n \r\n \r\n"); + + + #line 151 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 103 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(CommonHelpers.FriendlyDate(Model.DeviceModel.DefaultPurchaseDate, "Unknown")); + #line 151 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (canConfig) + { + if (Model.WarrantyProviders.Count > 0) + { + + + #line default + #line hidden + + #line 155 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None"))); #line default #line hidden - #line 103 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - } - - - #line default - #line hidden -WriteLiteral(" \r\n\r\n\r\n \r\n Default Warranty Provider:\r\n \r\n" + -" \r\n"); - - - #line 112 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 155 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + #line default #line hidden - #line 112 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - if (canConfig) - { - if (Model.WarrantyProviders.Count > 0) - { - - - #line default - #line hidden - - #line 116 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.DropDownListFor(model => model.DeviceModel.DefaultWarrantyProvider, Model.WarrantyProviders.ToSelectListItems(Model.DeviceModel.DefaultWarrantyProvider, true, "None"))); + #line 156 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 116 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - - - #line default - #line hidden - - #line 117 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(AjaxHelpers.AjaxLoader()); + #line 156 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line default #line hidden - - #line 117 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - - - #line default - #line hidden -WriteLiteral(@" \r\n"); +" );\r\n });\r\n \r\n"); - #line 128 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - else - { + #line 167 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { #line default #line hidden -WriteLiteral(" No warranty provider plugins installed\r\n"); - #line 132 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - if (canViewPlugins) - { + #line 171 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + if (canViewPlugins) + { #line default #line hidden -WriteLiteral(" \r\n \r\n \r\n \r\n View the (Url.Action(MVC.Config.Plugins.Install()) + #line 176 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + , Tuple.Create(Tuple.Create("", 6976), Tuple.Create(Url.Action(MVC.Config.Plugins.Install()) #line default #line hidden -, 4926), false) +, 6976), false) ); WriteLiteral(">Plugin Catalogue to discover and install warranty provider plugins.\r\n " + -"

\r\n \r\n"); +"

\r\n \r\n"); - #line 140 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - } - else - { - if (Model.DeviceModel.DefaultWarrantyProvider == null) - { - - - #line default - #line hidden -WriteLiteral(" <None Specified>\r\n"); - - - #line 147 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - else - { - var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider); - if (provider == null) - { - - - #line default - #line hidden -WriteLiteral(" <None Specified>\r\n"); - - - #line 154 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 179 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } } else { - + if (Model.DeviceModel.DefaultWarrantyProvider == null) + { + + + #line default + #line hidden +WriteLiteral(" <None Specified>\r\n"); + + + #line 186 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + var provider = Model.WarrantyProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultWarrantyProvider); + if (provider == null) + { + + + #line default + #line hidden +WriteLiteral(" <None Specified>\r\n"); + + + #line 193 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + #line default #line hidden - #line 157 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(provider.Name); + #line 196 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(provider.Name); #line default #line hidden - #line 157 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 196 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + } + } } - } - } #line default #line hidden -WriteLiteral("\r\n\r\n\r\n \r\n Default Repair Provider:\r\n \r\n \r\n"); +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Default Repair Provider:\r\n \r\n \r\n"); - #line 168 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - - #line default - #line hidden - - #line 168 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - if (canConfig) - { - if (Model.RepairProviders.Count > 0) - { + #line 207 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 172 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None"))); + #line 207 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (canConfig) + { + if (Model.RepairProviders.Count > 0) + { + + + #line default + #line hidden + + #line 211 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.DropDownListFor(model => model.DeviceModel.DefaultRepairProvider, Model.RepairProviders.ToSelectListItems(Model.DeviceModel.DefaultRepairProvider, true, "None"))); #line default #line hidden - #line 172 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - - + #line 211 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + #line default #line hidden - #line 173 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(AjaxHelpers.AjaxLoader()); + #line 212 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 173 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 212 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line default #line hidden -WriteLiteral(@" \r\n"); +");\r\n });\r\n \r\n"); - #line 184 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - else - { + #line 223 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { #line default #line hidden -WriteLiteral("
No repair provider plugins installed
\r\n"); +WriteLiteral("
No repair provider plugins installed
\r\n"); - #line 188 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - if (canViewPlugins) - { + #line 227 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + if (canViewPlugins) + { #line default #line hidden -WriteLiteral(" \r\n \r\n \r\n \r\n View the (Url.Action(MVC.Config.Plugins.Install()) + #line 232 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + , Tuple.Create(Tuple.Create("", 9425), Tuple.Create(Url.Action(MVC.Config.Plugins.Install()) #line default #line hidden -, 6987), false) +, 9425), false) ); WriteLiteral(">Plugin Catalogue to discover and install repair provider plugins.\r\n " + -"

\r\n \r\n"); +"

\r\n \r\n"); - #line 196 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - } - else - { - if (Model.DeviceModel.DefaultRepairProvider == null) - { - - - #line default - #line hidden -WriteLiteral(" <None Specified>\r\n"); - - - #line 203 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - else - { - var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider); - if (provider == null) - { - - - #line default - #line hidden -WriteLiteral(" <None Specified>\r\n"); - - - #line 210 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 235 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } } else { - + if (Model.DeviceModel.DefaultRepairProvider == null) + { + + + #line default + #line hidden +WriteLiteral(" <None Specified>\r\n"); + + + #line 242 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + var provider = Model.RepairProviders.FirstOrDefault(wp => wp.Id == Model.DeviceModel.DefaultRepairProvider); + if (provider == null) + { + + + #line default + #line hidden +WriteLiteral(" <None Specified>\r\n"); + + + #line 249 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + else + { + #line default #line hidden - #line 213 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(provider.Name); + #line 252 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(provider.Name); #line default #line hidden - #line 213 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 252 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + + } + } } - } - } #line default #line hidden -WriteLiteral("\r\n\r\n\r\n \r\n Type:\r\n \r\n \r\n"); +WriteLiteral(" \r\n \r\n \r\n \r\n " + +" Type:\r\n \r\n \r\n"); -WriteLiteral(" "); +WriteLiteral(" "); - #line 224 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - Write(Html.DisplayFor(model => model.DeviceModel.ModelType)); + #line 263 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + Write(Html.DisplayFor(model => model.DeviceModel.ModelType)); #line default #line hidden -WriteLiteral("\r\n \r\n\r\n\r\n \r\n Image:\r\n \r\n \r\n " + -"\r\n \r\n \r\n \r\n " + +" Image:\r\n \r\n \r\n (Url.Action(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, Model.DeviceModel.ImageHash())) + #line 271 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" +, Tuple.Create(Tuple.Create("", 10801), Tuple.Create(Url.Action(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, Model.DeviceModel.ImageHash())) #line default #line hidden -, 8047), false) +, 10801), false) ); WriteLiteral(" />\r\n"); - #line 233 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - + #line 272 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line default #line hidden - #line 233 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - if (canConfig) - { + #line 272 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + if (canConfig) + { #line default #line hidden -WriteLiteral("
\r\n"); +WriteLiteral("
\r\n"); - #line 236 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" })) - { + #line 275 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + using (Html.BeginForm(MVC.API.DeviceModel.Image(Model.DeviceModel.Id, true, null), FormMethod.Post, new { enctype = "multipart/form-data" })) + { #line default #line hidden -WriteLiteral(" \r\n"); -WriteLiteral(" \r\n"); - #line 240 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - } - } + #line 279 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + } + } #line default #line hidden -WriteLiteral(" \r\n\r\n\r\n\r\n

Components

\r\n"); +WriteLiteral(" \r\n \r\n \r\n\r\n

Components

\r\n"); - #line 247 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 286 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.DeviceComponentsModel)); @@ -804,7 +982,7 @@ Write(Html.Partial(MVC.Config.DeviceModel.Views._DeviceComponentsTable, Model.De WriteLiteral("\r\n"); - #line 248 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 287 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.Partial(MVC.Config.Shared.Views._DeviceGroupDocumentBulkGenerate, Model)); @@ -817,13 +995,13 @@ WriteLiteral(" class=\"actionBar\""); WriteLiteral(">\r\n"); - #line 250 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 289 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 250 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 289 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" if (Model.CanDecommission) { @@ -849,13 +1027,13 @@ WriteLiteral(" title=\"Model Device Decommission\""); WriteLiteral(">\r\n"); - #line 254 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 293 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 254 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 293 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" using (Html.BeginForm(MVC.API.Device.DeviceModelDecommission(Model.DeviceModel.Id), FormMethod.Post)) { @@ -863,14 +1041,14 @@ WriteLiteral(">\r\n"); #line default #line hidden - #line 256 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 295 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.AntiForgeryToken()); #line default #line hidden - #line 256 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 295 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" @@ -895,13 +1073,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n"); - #line 262 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 301 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" #line default #line hidden - #line 262 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 301 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" foreach (DecommissionReasons decommissionReason in Enum.GetValues(typeof(DecommissionReasons)).Cast().OrderBy(r => r.ToString())) { @@ -912,33 +1090,33 @@ WriteLiteral("
  • \r\n WriteLiteral(" type=\"radio\""); -WriteAttribute("id", Tuple.Create(" id=\"", 9803), Tuple.Create("\"", 9873) -, Tuple.Create(Tuple.Create("", 9808), Tuple.Create("DeviceModel_Decommission_Dialog_Reason_", 9808), true) +WriteAttribute("id", Tuple.Create(" id=\"", 12649), Tuple.Create("\"", 12719) +, Tuple.Create(Tuple.Create("", 12654), Tuple.Create("DeviceModel_Decommission_Dialog_Reason_", 12654), true) - #line 265 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" - , Tuple.Create(Tuple.Create("", 9847), Tuple.Create((int)decommissionReason + #line 304 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + , Tuple.Create(Tuple.Create("", 12693), Tuple.Create((int)decommissionReason #line default #line hidden -, 9847), false) +, 12693), false) ); WriteLiteral("\r\n name=\"decommissionReason\""); -WriteAttribute("value", Tuple.Create(" value=\"", 9940), Tuple.Create("\"", 9974) +WriteAttribute("value", Tuple.Create(" value=\"", 12786), Tuple.Create("\"", 12820) - #line 266 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" -, Tuple.Create(Tuple.Create("", 9948), Tuple.Create((int)decommissionReason + #line 305 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" +, Tuple.Create(Tuple.Create("", 12794), Tuple.Create((int)decommissionReason #line default #line hidden -, 9948), false) +, 12794), false) ); WriteLiteral(" "); - #line 266 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 305 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write((decommissionReason == DecommissionReasons.EndOfLife) ? "checked=\"checked\"" : string.Empty); @@ -946,21 +1124,21 @@ WriteLiteral(" "); #line hidden WriteLiteral(" />\r\n ((int)decommissionReason + #line 306 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + , Tuple.Create(Tuple.Create("", 13005), Tuple.Create((int)decommissionReason #line default #line hidden -, 10159), false) +, 13005), false) ); WriteLiteral(">"); - #line 267 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 306 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(decommissionReason.ReasonMessage()); @@ -969,7 +1147,7 @@ WriteLiteral(">"); WriteLiteral("\r\n
  • \r\n"); - #line 269 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 308 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } @@ -988,7 +1166,7 @@ WriteLiteral(" />\r\n Unassign devices users\r\n "\r\n \r\n"); - #line 277 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 316 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } @@ -1032,7 +1210,7 @@ WriteLiteral(@"> "); - #line 308 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 347 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } @@ -1041,7 +1219,7 @@ WriteLiteral(@"> WriteLiteral(" "); - #line 309 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 348 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" if (Model.CanDelete) { @@ -1049,14 +1227,14 @@ WriteLiteral(" "); #line default #line hidden - #line 311 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 350 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.ActionLinkButton("Delete", MVC.API.DeviceModel.Delete(Model.DeviceModel.Id, true), "buttonDelete")); #line default #line hidden - #line 311 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 350 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } @@ -1066,7 +1244,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 313 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 352 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" if (Model.DeviceCount > 0) { if (Authorization.Has(Claims.Device.Actions.Export)) @@ -1076,14 +1254,14 @@ WriteLiteral(" "); #line default #line hidden - #line 317 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 356 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.ActionLinkButton("Export Devices", MVC.Device.Export(null, Disco.Models.Services.Devices.DeviceExportTypes.Model, Model.DeviceModel.Id))); #line default #line hidden - #line 317 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 356 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } if (Authorization.Has(Claims.Device.Search) && Model.DeviceCount > 0) @@ -1093,14 +1271,14 @@ WriteLiteral(" "); #line default #line hidden - #line 321 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 360 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" Write(Html.ActionLinkButton(string.Format("View {0} Device{1}", Model.DeviceCount, (Model.DeviceCount != 1 ? "s" : null)), MVC.Search.Query(Model.DeviceModel.Id.ToString(), "DeviceModel"))); #line default #line hidden - #line 321 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" + #line 360 "..\..\Areas\Config\Views\DeviceModel\Show.cshtml" } } diff --git a/Disco.Web/Disco.Web.csproj b/Disco.Web/Disco.Web.csproj index 85dba52a..2504e62d 100644 --- a/Disco.Web/Disco.Web.csproj +++ b/Disco.Web/Disco.Web.csproj @@ -242,6 +242,7 @@ + @@ -286,6 +287,11 @@ True True + + Create.cshtml + True + True + True True @@ -1379,6 +1385,10 @@ RazorGenerator Show.generated.cs + + RazorGenerator + Create.generated.cs + RazorGenerator BulkGenerate.generated.cs @@ -1713,7 +1723,7 @@ Always - Always + Always diff --git a/Disco.Web/Extensions/T4MVC/API.DeviceModelController.generated.cs b/Disco.Web/Extensions/T4MVC/API.DeviceModelController.generated.cs index c8da7c73..db6efb49 100644 --- a/Disco.Web/Extensions/T4MVC/API.DeviceModelController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/API.DeviceModelController.generated.cs @@ -73,6 +73,18 @@ namespace Disco.Web.Areas.API.Controllers } [NonAction] [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateManufacturer() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateManufacturer); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public virtual System.Web.Mvc.ActionResult UpdateModel() + { + return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateModel); + } + [NonAction] + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public virtual System.Web.Mvc.ActionResult UpdateDefaultPurchaseDate() { return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateDefaultPurchaseDate); @@ -149,6 +161,8 @@ namespace Disco.Web.Areas.API.Controllers { public readonly string Update = "Update"; public readonly string UpdateDescription = "UpdateDescription"; + public readonly string UpdateManufacturer = "UpdateManufacturer"; + public readonly string UpdateModel = "UpdateModel"; public readonly string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate"; public readonly string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider"; public readonly string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider"; @@ -167,6 +181,8 @@ namespace Disco.Web.Areas.API.Controllers { public const string Update = "Update"; public const string UpdateDescription = "UpdateDescription"; + public const string UpdateManufacturer = "UpdateManufacturer"; + public const string UpdateModel = "UpdateModel"; public const string UpdateDefaultPurchaseDate = "UpdateDefaultPurchaseDate"; public const string UpdateDefaultWarrantyProvider = "UpdateDefaultWarrantyProvider"; public const string UpdateDefaultRepairProvider = "UpdateDefaultRepairProvider"; @@ -202,6 +218,26 @@ namespace Disco.Web.Areas.API.Controllers public readonly string Description = "Description"; public readonly string redirect = "redirect"; } + static readonly ActionParamsClass_UpdateManufacturer s_params_UpdateManufacturer = new ActionParamsClass_UpdateManufacturer(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateManufacturer UpdateManufacturerParams { get { return s_params_UpdateManufacturer; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateManufacturer + { + public readonly string id = "id"; + public readonly string manufacturer = "manufacturer"; + public readonly string redirect = "redirect"; + } + static readonly ActionParamsClass_UpdateModel s_params_UpdateModel = new ActionParamsClass_UpdateModel(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_UpdateModel UpdateModelParams { get { return s_params_UpdateModel; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_UpdateModel + { + public readonly string id = "id"; + public readonly string model = "model"; + public readonly string redirect = "redirect"; + } static readonly ActionParamsClass_UpdateDefaultPurchaseDate s_params_UpdateDefaultPurchaseDate = new ActionParamsClass_UpdateDefaultPurchaseDate(); [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public ActionParamsClass_UpdateDefaultPurchaseDate UpdateDefaultPurchaseDateParams { get { return s_params_UpdateDefaultPurchaseDate; } } @@ -345,6 +381,34 @@ namespace Disco.Web.Areas.API.Controllers return callInfo; } + [NonAction] + partial void UpdateManufacturerOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string manufacturer, bool redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateManufacturer(int id, string manufacturer, bool redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateManufacturer); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "manufacturer", manufacturer); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateManufacturerOverride(callInfo, id, manufacturer, redirect); + return callInfo; + } + + [NonAction] + partial void UpdateModelOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string model, bool redirect); + + [NonAction] + public override System.Web.Mvc.ActionResult UpdateModel(int id, string model, bool redirect) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateModel); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "model", model); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect); + UpdateModelOverride(callInfo, id, model, redirect); + return callInfo; + } + [NonAction] partial void UpdateDefaultPurchaseDateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string DefaultPurchaseDate, bool redirect); diff --git a/Disco.Web/Extensions/T4MVC/Config.DeviceModelController.generated.cs b/Disco.Web/Extensions/T4MVC/Config.DeviceModelController.generated.cs index ed087037..45736bad 100644 --- a/Disco.Web/Extensions/T4MVC/Config.DeviceModelController.generated.cs +++ b/Disco.Web/Extensions/T4MVC/Config.DeviceModelController.generated.cs @@ -82,6 +82,7 @@ namespace Disco.Web.Areas.Config.Controllers public class ActionNamesClass { public readonly string Index = "Index"; + public readonly string Create = "Create"; public readonly string GenericComponents = "GenericComponents"; } @@ -89,6 +90,7 @@ namespace Disco.Web.Areas.Config.Controllers public class ActionNameConstants { public const string Index = "Index"; + public const string Create = "Create"; public const string GenericComponents = "GenericComponents"; } @@ -101,6 +103,14 @@ namespace Disco.Web.Areas.Config.Controllers { public readonly string id = "id"; } + static readonly ActionParamsClass_Create s_params_Create = new ActionParamsClass_Create(); + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public ActionParamsClass_Create CreateParams { get { return s_params_Create; } } + [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] + public class ActionParamsClass_Create + { + public readonly string model = "model"; + } static readonly ViewsClass s_views = new ViewsClass(); [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public ViewsClass Views { get { return s_views; } } @@ -112,11 +122,13 @@ namespace Disco.Web.Areas.Config.Controllers public class _ViewNamesClass { public readonly string _DeviceComponentsTable = "_DeviceComponentsTable"; + public readonly string Create = "Create"; public readonly string GenericComponents = "GenericComponents"; public readonly string Index = "Index"; public readonly string Show = "Show"; } public readonly string _DeviceComponentsTable = "~/Areas/Config/Views/DeviceModel/_DeviceComponentsTable.cshtml"; + public readonly string Create = "~/Areas/Config/Views/DeviceModel/Create.cshtml"; public readonly string GenericComponents = "~/Areas/Config/Views/DeviceModel/GenericComponents.cshtml"; public readonly string Index = "~/Areas/Config/Views/DeviceModel/Index.cshtml"; public readonly string Show = "~/Areas/Config/Views/DeviceModel/Show.cshtml"; @@ -140,6 +152,29 @@ namespace Disco.Web.Areas.Config.Controllers return callInfo; } + [NonAction] + partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo); + + [NonAction] + public override System.Web.Mvc.ActionResult Create() + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create); + CreateOverride(callInfo); + return callInfo; + } + + [NonAction] + partial void CreateOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, Disco.Web.Areas.Config.Models.DeviceModel.CreateModel model); + + [NonAction] + public override System.Web.Mvc.ActionResult Create(Disco.Web.Areas.Config.Models.DeviceModel.CreateModel model) + { + var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.Create); + ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "model", model); + CreateOverride(callInfo, model); + return callInfo; + } + [NonAction] partial void GenericComponentsOverride(T4MVC_System_Web_Mvc_ActionResult callInfo);