Add constraint to instruction set extension.

This commit is contained in:
2019-05-19 22:29:16 +01:00
parent 3264c73da1
commit 250e539391
3 changed files with 13 additions and 2 deletions

View File

@@ -31,6 +31,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
namespace Cicm.Database.Models namespace Cicm.Database.Models
{ {
@@ -44,6 +45,7 @@ namespace Cicm.Database.Models
[DisplayName("Name")] [DisplayName("Name")]
[Required] [Required]
[StringLength(45)] [StringLength(45)]
[Remote("VerifyUnique", "InstructionSetExtensions", "Admin")]
public string Extension { get; set; } public string Extension { get; set; }
public virtual ICollection<InstructionSetExtensionsByProcessor> InstructionSetExtensionsByProcessor public virtual ICollection<InstructionSetExtensionsByProcessor> InstructionSetExtensionsByProcessor

View File

@@ -28,6 +28,7 @@
// Copyright © 2003-2018 Natalia Portillo // Copyright © 2003-2018 Natalia Portillo
*******************************************************************************/ *******************************************************************************/
using System;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Cicm.Database.Models; using Cicm.Database.Models;
@@ -49,7 +50,8 @@ namespace cicm_web.Areas.Admin.Controllers
} }
// GET: Admin/InstructionSetExtensions // GET: Admin/InstructionSetExtensions
public async Task<IActionResult> Index() => View(await _context.InstructionSetExtensions.OrderBy(e => e.Extension).ToListAsync()); public async Task<IActionResult> Index() =>
View(await _context.InstructionSetExtensions.OrderBy(e => e.Extension).ToListAsync());
// GET: Admin/InstructionSetExtensions/Details/5 // GET: Admin/InstructionSetExtensions/Details/5
public async Task<IActionResult> Details(int? id) public async Task<IActionResult> Details(int? id)
@@ -152,5 +154,12 @@ namespace cicm_web.Areas.Admin.Controllers
{ {
return _context.InstructionSetExtensions.Any(e => e.Id == id); 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);
} }
} }

View File

@@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<Version>3.0.99.520</Version> <Version>3.0.99.521</Version>
<Company>Canary Islands Computer Museum</Company> <Company>Canary Islands Computer Museum</Company>
<Copyright>Copyright © 2003-2018 Natalia Portillo</Copyright> <Copyright>Copyright © 2003-2018 Natalia Portillo</Copyright>
<Product>Canary Islands Computer Museum Website</Product> <Product>Canary Islands Computer Museum Website</Product>