diff --git a/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsByProcessorController.cs b/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsByProcessorController.cs new file mode 100644 index 00000000..c6e5c767 --- /dev/null +++ b/cicm_web/Areas/Admin/Controllers/InstructionSetExtensionsByProcessorController.cs @@ -0,0 +1,160 @@ +using System.Linq; +using System.Threading.Tasks; +using Cicm.Database.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Query; + +namespace cicm_web.Areas.Admin.Controllers +{ + [Area("Admin")] + [Authorize] + public class InstructionSetExtensionsByProcessorController : Controller + { + readonly cicmContext _context; + + public InstructionSetExtensionsByProcessorController(cicmContext context) + { + _context = context; + } + + // GET: InstructionSetExtensionsByProcessor + public async Task Index() + { + IIncludableQueryable cicmContext = + _context.InstructionSetExtensionsByProcessor.Include(i => i.Extension).Include(i => i.Processor); + return View(await cicmContext.OrderBy(e => e.Processor.Name).ThenBy(e => e.Extension.Extension) + .ToListAsync()); + } + + // GET: InstructionSetExtensionsByProcessor/Details/5 + public async Task Details(int? id) + { + if(id == null) return NotFound(); + + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor = + await _context.InstructionSetExtensionsByProcessor.Include(i => i.Extension).Include(i => i.Processor) + .FirstOrDefaultAsync(m => m.Id == id); + if(instructionSetExtensionsByProcessor == null) return NotFound(); + + return View(instructionSetExtensionsByProcessor); + } + + // GET: InstructionSetExtensionsByProcessor/Create + public IActionResult Create() + { + ViewData["ExtensionId"] = new SelectList(_context.InstructionSetExtensions, "Id", "Extension"); + ViewData["ProcessorId"] = new SelectList(_context.Processors, "Id", "Name"); + return View(); + } + + // POST: InstructionSetExtensionsByProcessor/Create + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Create( + [Bind("Id,ProcessorId,ExtensionId")] + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor) + { + if(ModelState.IsValid) + { + _context.Add(instructionSetExtensionsByProcessor); + await _context.SaveChangesAsync(); + return RedirectToAction(nameof(Index)); + } + + ViewData["ExtensionId"] = new SelectList(_context.InstructionSetExtensions, "Id", "Extension", + instructionSetExtensionsByProcessor.ExtensionId); + ViewData["ProcessorId"] = new SelectList(_context.Processors, "Id", "Name", + instructionSetExtensionsByProcessor.ProcessorId); + return View(instructionSetExtensionsByProcessor); + } + + // GET: InstructionSetExtensionsByProcessor/Edit/5 + public async Task Edit(int? id) + { + if(id == null) return NotFound(); + + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor = + await _context.InstructionSetExtensionsByProcessor.FirstOrDefaultAsync(e => e.Id == id); + if(instructionSetExtensionsByProcessor == null) return NotFound(); + + ViewData["ExtensionId"] = new SelectList(_context.InstructionSetExtensions, "Id", "Extension", + instructionSetExtensionsByProcessor.ExtensionId); + ViewData["ProcessorId"] = new SelectList(_context.Processors, "Id", "Name", + instructionSetExtensionsByProcessor.ProcessorId); + return View(instructionSetExtensionsByProcessor); + } + + // POST: InstructionSetExtensionsByProcessor/Edit/5 + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Edit( + int id, + [Bind("Id,ProcessorId,ExtensionId")] + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor) + { + if(id != instructionSetExtensionsByProcessor.Id) return NotFound(); + + if(ModelState.IsValid) + { + try + { + _context.Update(instructionSetExtensionsByProcessor); + await _context.SaveChangesAsync(); + } + catch(DbUpdateConcurrencyException) + { + if(!InstructionSetExtensionsByProcessorExists(instructionSetExtensionsByProcessor.Id)) + return NotFound(); + + throw; + } + + return RedirectToAction(nameof(Index)); + } + + ViewData["ExtensionId"] = new SelectList(_context.InstructionSetExtensions, "Id", "Extension", + instructionSetExtensionsByProcessor.ExtensionId); + ViewData["ProcessorId"] = new SelectList(_context.Processors, "Id", "Name", + instructionSetExtensionsByProcessor.ProcessorId); + return View(instructionSetExtensionsByProcessor); + } + + // GET: InstructionSetExtensionsByProcessor/Delete/5 + public async Task Delete(int? id) + { + if(id == null) return NotFound(); + + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor = + await _context.InstructionSetExtensionsByProcessor.Include(i => i.Extension).Include(i => i.Processor) + .FirstOrDefaultAsync(m => m.Id == id); + if(instructionSetExtensionsByProcessor == null) return NotFound(); + + return View(instructionSetExtensionsByProcessor); + } + + // POST: InstructionSetExtensionsByProcessor/Delete/5 + [HttpPost] + [ActionName("Delete")] + [ValidateAntiForgeryToken] + public async Task DeleteConfirmed(int id) + { + InstructionSetExtensionsByProcessor instructionSetExtensionsByProcessor = + await _context.InstructionSetExtensionsByProcessor.FirstOrDefaultAsync(e => e.Id == id); + _context.InstructionSetExtensionsByProcessor.Remove(instructionSetExtensionsByProcessor); + await _context.SaveChangesAsync(); + return RedirectToAction(nameof(Index)); + } + + bool InstructionSetExtensionsByProcessorExists(int id) + { + return _context.InstructionSetExtensionsByProcessor.Any(e => e.Id == id); + } + } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/Home/Index.cshtml b/cicm_web/Areas/Admin/Views/Home/Index.cshtml index 9406e859..41576682 100644 --- a/cicm_web/Areas/Admin/Views/Home/Index.cshtml +++ b/cicm_web/Areas/Admin/Views/Home/Index.cshtml @@ -44,6 +44,7 @@ GPUs by machine
Instruction sets
Instruction set extensions
+ Instruction set extensions by processor
Machine families
Machines
Memory by machines
diff --git a/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Create.cshtml b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Create.cshtml new file mode 100644 index 00000000..2a570f82 --- /dev/null +++ b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Create.cshtml @@ -0,0 +1,46 @@ +@model Cicm.Database.Models.InstructionSetExtensionsByProcessor + +@{ + ViewData["Title"] = "Create"; +} + +

Create

+ +

Instruction set extensions by processor

+
+
+
+
+
+
+
+ + +
+
+ + +
+ +
+
+
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Delete.cshtml b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Delete.cshtml new file mode 100644 index 00000000..1b7eb70f --- /dev/null +++ b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Delete.cshtml @@ -0,0 +1,43 @@ +@model Cicm.Database.Models.InstructionSetExtensionsByProcessor + +@{ + ViewData["Title"] = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

Instruction set extensions by processor

+
+
+
+ @Html.DisplayNameFor(model => model.Extension) +
+
+ @Html.DisplayFor(model => model.Extension.Extension) +
+
+ @Html.DisplayNameFor(model => model.Processor) +
+
+ @Html.DisplayFor(model => model.Processor.Name) +
+
+ +
+ + + + + + Back to List + +
+
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Details.cshtml b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Details.cshtml new file mode 100644 index 00000000..83bc680a --- /dev/null +++ b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Details.cshtml @@ -0,0 +1,37 @@ +@model Cicm.Database.Models.InstructionSetExtensionsByProcessor + +@{ + ViewData["Title"] = "Details"; +} + +

Details

+ +
+

Instruction set extensions by processor

+
+
+
+ @Html.DisplayNameFor(model => model.Extension) +
+
+ @Html.DisplayFor(model => model.Extension.Extension) +
+
+ @Html.DisplayNameFor(model => model.Processor) +
+
+ @Html.DisplayFor(model => model.Processor.Name) +
+
+
+ \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Edit.cshtml b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Edit.cshtml new file mode 100644 index 00000000..3c3eda32 --- /dev/null +++ b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Edit.cshtml @@ -0,0 +1,54 @@ +@model Cicm.Database.Models.InstructionSetExtensionsByProcessor + +@{ + ViewData["Title"] = "Edit"; +} + +

Edit

+ +

Instruction set extensions by processor

+
+
+
+
+
+
+ +
+ + + + +
+
+ + + + +
+ +
+
+
\ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Index.cshtml b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Index.cshtml new file mode 100644 index 00000000..ce1daf8c --- /dev/null +++ b/cicm_web/Areas/Admin/Views/InstructionSetExtensionsByProcessor/Index.cshtml @@ -0,0 +1,58 @@ +@using Cicm.Database.Models +@model IEnumerable + +@{ + ViewData["Title"] = "Index"; +} + +

Instruction set extensions by processor

+ +

+ + Create New + +

+ + + + + + + + + + @foreach(InstructionSetExtensionsByProcessor item in Model) + { + + + + + + } + +
+ @Html.DisplayNameFor(model => model.Processor) + + @Html.DisplayNameFor(model => model.Extension) +
+ @Html.DisplayFor(modelItem => item.Processor.Name) + + @Html.DisplayFor(modelItem => item.Extension.Extension) + + + Details + + + Edit + + + Delete + +
\ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 2402e898..ac8157b7 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.462 + 3.0.99.466 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website