diff --git a/Cicm.Database/Models/Screen.cs b/Cicm.Database/Models/Screen.cs index 4bd40351..678d8f66 100644 --- a/Cicm.Database/Models/Screen.cs +++ b/Cicm.Database/Models/Screen.cs @@ -42,8 +42,5 @@ namespace Cicm.Database.Models public virtual ICollection ScreensByMachines { get; set; } [Required] public int NativeResolutionId { get; set; } - - public override string ToString() => - NativeResolution != null ? $"{Diagonal}\" {Type} at {NativeResolution}" : $"{Diagonal}\" {Type}"; } } \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Controllers/ResolutionsByScreenController.cs b/cicm_web/Areas/Admin/Controllers/ResolutionsByScreenController.cs index ce5049df..de2a4076 100644 --- a/cicm_web/Areas/Admin/Controllers/ResolutionsByScreenController.cs +++ b/cicm_web/Areas/Admin/Controllers/ResolutionsByScreenController.cs @@ -45,8 +45,13 @@ namespace cicm_web.Areas.Admin.Controllers // GET: ResolutionsByScreen/Create public IActionResult Create() { - ViewData["ResolutionId"] = new SelectList(_context.Resolutions, "Id", "Id"); - ViewData["ScreenId"] = new SelectList(_context.Screens, "Id", "Type"); + ViewData["ResolutionId"] = + new SelectList(_context.Resolutions.Select(r => new {r.Id, Name = r.ToString()}).OrderBy(r => r.Name), + "Id", "Name"); + ViewData["ScreenId"] = + new + SelectList(_context.Screens.Select(s => new {s.Id, Name = s.NativeResolution != null ? $"{s.Diagonal}\" {s.Type} at {s.NativeResolution}" : $"{s.Diagonal}\" {s.Type}"}).OrderBy(s => s.Name), + "Id", "Name"); return View(); } @@ -66,8 +71,12 @@ namespace cicm_web.Areas.Admin.Controllers } ViewData["ResolutionId"] = - new SelectList(_context.Resolutions, "Id", "Id", resolutionsByScreen.ResolutionId); - ViewData["ScreenId"] = new SelectList(_context.Screens, "Id", "Type", resolutionsByScreen.ScreenId); + new SelectList(_context.Resolutions.Select(r => new {r.Id, Name = r.ToString()}).OrderBy(r => r.Name), + "Id", "Name", resolutionsByScreen.ResolutionId); + ViewData["ScreenId"] = + new + SelectList(_context.Screens.Select(s => new {s.Id, Name = s.NativeResolution != null ? $"{s.Diagonal}\" {s.Type} at {s.NativeResolution}" : $"{s.Diagonal}\" {s.Type}"}).OrderBy(s => s.Name), + "Id", "Name", resolutionsByScreen.ScreenId); return View(resolutionsByScreen); } @@ -80,8 +89,12 @@ namespace cicm_web.Areas.Admin.Controllers if(resolutionsByScreen == null) return NotFound(); ViewData["ResolutionId"] = - new SelectList(_context.Resolutions, "Id", "Id", resolutionsByScreen.ResolutionId); - ViewData["ScreenId"] = new SelectList(_context.Screens, "Id", "Type", resolutionsByScreen.ScreenId); + new SelectList(_context.Resolutions.Select(r => new {r.Id, Name = r.ToString()}).OrderBy(r => r.Name), + "Id", "Name", resolutionsByScreen.ResolutionId); + ViewData["ScreenId"] = + new + SelectList(_context.Screens.Select(s => new {s.Id, Name = s.NativeResolution != null ? $"{s.Diagonal}\" {s.Type} at {s.NativeResolution}" : $"{s.Diagonal}\" {s.Type}"}).OrderBy(s => s.Name), + "Id", "Name", resolutionsByScreen.ScreenId); return View(resolutionsByScreen); } @@ -113,8 +126,12 @@ namespace cicm_web.Areas.Admin.Controllers } ViewData["ResolutionId"] = - new SelectList(_context.Resolutions, "Id", "Id", resolutionsByScreen.ResolutionId); - ViewData["ScreenId"] = new SelectList(_context.Screens, "Id", "Type", resolutionsByScreen.ScreenId); + new SelectList(_context.Resolutions.Select(r => new {r.Id, Name = r.ToString()}).OrderBy(r => r.Name), + "Id", "Name", resolutionsByScreen.ResolutionId); + ViewData["ScreenId"] = + new + SelectList(_context.Screens.Select(s => new {s.Id, Name = s.NativeResolution != null ? $"{s.Diagonal}\" {s.Type} at {s.NativeResolution}" : $"{s.Diagonal}\" {s.Type}"}).OrderBy(s => s.Name), + "Id", "Name", resolutionsByScreen.ScreenId); return View(resolutionsByScreen); } @@ -147,5 +164,14 @@ namespace cicm_web.Areas.Admin.Controllers { return _context.ResolutionsByScreen.Any(e => e.Id == id); } + + [AcceptVerbs("Get", "Post")] + public async Task VerifyUnique(int screenId, int resolutionId) + { + return await _context.ResolutionsByScreen.FirstOrDefaultAsync(i => i.ScreenId == screenId && + i.ResolutionId == resolutionId) is null + ? Json(true) + : Json("The selected screen already has the selected resolution."); + } } } \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/ResolutionsByScreen/Create.cshtml b/cicm_web/Areas/Admin/Views/ResolutionsByScreen/Create.cshtml index e10814d9..bb4f0fa2 100644 --- a/cicm_web/Areas/Admin/Views/ResolutionsByScreen/Create.cshtml +++ b/cicm_web/Areas/Admin/Views/ResolutionsByScreen/Create.cshtml @@ -6,7 +6,7 @@

Create

-

ResolutionsByScreen

+

Resolutions by screen


@@ -15,32 +15,42 @@ class="text-danger">
- + +
- + +
-
- Back to List -
\ No newline at end of file +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } +} \ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index 421e898f..ea0452db 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.732 + 3.0.99.740 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website