diff --git a/Cicm.Database/Models/InstructionSetExtension.cs b/Cicm.Database/Models/InstructionSetExtension.cs index d3c09046..40309da9 100644 --- a/Cicm.Database/Models/InstructionSetExtension.cs +++ b/Cicm.Database/Models/InstructionSetExtension.cs @@ -31,6 +31,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Mvc; namespace Cicm.Database.Models { @@ -44,6 +45,7 @@ namespace Cicm.Database.Models [DisplayName("Name")] [Required] [StringLength(45)] + [Remote("VerifyUnique", "InstructionSetExtensions", "Admin")] public string Extension { get; set; } public virtual ICollection InstructionSetExtensionsByProcessor diff --git a/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsController.cs b/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsController.cs index e7b62bd2..f5c90015 100644 --- a/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsController.cs +++ b/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsController.cs @@ -28,6 +28,7 @@ // Copyright © 2003-2018 Natalia Portillo *******************************************************************************/ +using System; using System.Linq; using System.Threading.Tasks; using Cicm.Database.Models; @@ -49,7 +50,8 @@ namespace cicm_web.Areas.Admin.Controllers } // GET: Admin/InstructionSetExtensions - public async Task Index() => View(await _context.InstructionSetExtensions.OrderBy(e => e.Extension).ToListAsync()); + public async Task Index() => + View(await _context.InstructionSetExtensions.OrderBy(e => e.Extension).ToListAsync()); // GET: Admin/InstructionSetExtensions/Details/5 public async Task Details(int? id) @@ -152,5 +154,12 @@ namespace cicm_web.Areas.Admin.Controllers { return _context.InstructionSetExtensions.Any(e => e.Id == id); } + + [AcceptVerbs("Get", "Post")] + public IActionResult VerifyUnique(string extension) => + _context.InstructionSetExtensions.Any(i => string.Equals(i.Extension, extension, + StringComparison.InvariantCultureIgnoreCase)) + ? Json("Instruction set extension already exists.") + : Json(true); } } \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 99f3dd9d..14df1dda 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.520 + 3.0.99.521 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website