From e16daed730f5623c687e4b42a257d43b1d77e2de Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 27 May 2019 15:44:27 +0100 Subject: [PATCH] Use machine photo view model in machine photos index admin page. --- .../Controllers/MachinePhotosController.cs | 13 +- .../Admin/Models/MachinePhotoViewModel.cs | 16 + .../Admin/Views/MachinePhotos/Index.cshtml | 296 ++++-------------- cicm_web/cicm_web.csproj | 2 +- 4 files changed, 93 insertions(+), 234 deletions(-) create mode 100644 cicm_web/Areas/Admin/Models/MachinePhotoViewModel.cs diff --git a/cicm_web/Areas/Admin/Controllers/MachinePhotosController.cs b/cicm_web/Areas/Admin/Controllers/MachinePhotosController.cs index a3cd2bc4..697ca27e 100644 --- a/cicm_web/Areas/Admin/Controllers/MachinePhotosController.cs +++ b/cicm_web/Areas/Admin/Controllers/MachinePhotosController.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using System.Threading.Tasks; using Cicm.Database.Models; +using cicm_web.Areas.Admin.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -23,7 +24,17 @@ namespace cicm_web.Areas.Admin.Controllers public async Task Index() { return View(await _context.MachinePhotos.Include(m => m.Machine).Include(m => m.Machine.Company) - .Include(m => m.User).ToListAsync()); + .Include(m => m.User).Select(p => new MachinePhotoViewModel + { + Id = p.Id, + Author = p.Author, + License = p.License, + Machine = + $"{p.Machine.Company.Name} {p.Machine.Name}", + UploadDate = p.UploadDate, + UploadUser = p.User.UserName + }).OrderBy(p => p.Machine) + .ThenBy(p => p.UploadUser).ThenBy(p => p.UploadDate).ToListAsync()); } // GET: MachinePhotos/Details/5 diff --git a/cicm_web/Areas/Admin/Models/MachinePhotoViewModel.cs b/cicm_web/Areas/Admin/Models/MachinePhotoViewModel.cs new file mode 100644 index 00000000..367d4b95 --- /dev/null +++ b/cicm_web/Areas/Admin/Models/MachinePhotoViewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel; + +namespace cicm_web.Areas.Admin.Models +{ + public class MachinePhotoViewModel : BaseViewModel + { + public string Author; + public string License; + public string Machine; + [DisplayName("Uploaded")] + public DateTime UploadDate; + [DisplayName("Uploaded by")] + public string UploadUser; + } +} \ No newline at end of file diff --git a/cicm_web/Areas/Admin/Views/MachinePhotos/Index.cshtml b/cicm_web/Areas/Admin/Views/MachinePhotos/Index.cshtml index e0345ae3..3c956514 100644 --- a/cicm_web/Areas/Admin/Views/MachinePhotos/Index.cshtml +++ b/cicm_web/Areas/Admin/Views/MachinePhotos/Index.cshtml @@ -1,244 +1,76 @@ -@using Cicm.Database.Models -@model IEnumerable +@using cicm_web.Areas.Admin.Models +@model IEnumerable @{ ViewData["Title"] = "Index"; } -

Index

+

Machine photos

- Create New + + Create New +

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -@foreach(MachinePhoto item in Model) -{ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + -} - + + + @foreach(MachinePhotoViewModel item in Model) + { + + + + + + + + + } +
- @Html.DisplayNameFor(model => model.Author) - - @Html.DisplayNameFor(model => model.CameraManufacturer) - - @Html.DisplayNameFor(model => model.CameraModel) - - @Html.DisplayNameFor(model => model.ColorSpace) - - @Html.DisplayNameFor(model => model.Comments) - - @Html.DisplayNameFor(model => model.Contrast) - - @Html.DisplayNameFor(model => model.CreationDate) - - @Html.DisplayNameFor(model => model.DigitalZoomRatio) - - @Html.DisplayNameFor(model => model.ExifVersion) - - @Html.DisplayNameFor(model => model.Exposure) - - @Html.DisplayNameFor(model => model.ExposureMethod) - - @Html.DisplayNameFor(model => model.ExposureProgram) - - @Html.DisplayNameFor(model => model.Flash) - - @Html.DisplayNameFor(model => model.Focal) - - @Html.DisplayNameFor(model => model.FocalLength) - - @Html.DisplayNameFor(model => model.FocalLengthEquivalent) - - @Html.DisplayNameFor(model => model.HorizontalResolution) - - @Html.DisplayNameFor(model => model.IsoRating) - - @Html.DisplayNameFor(model => model.Lens) - - @Html.DisplayNameFor(model => model.License) - - @Html.DisplayNameFor(model => model.LightSource) - - @Html.DisplayNameFor(model => model.MeteringMode) - - @Html.DisplayNameFor(model => model.Orientation) - - @Html.DisplayNameFor(model => model.PixelComposition) - - @Html.DisplayNameFor(model => model.Saturation) - - @Html.DisplayNameFor(model => model.SceneCaptureType) - - @Html.DisplayNameFor(model => model.SceneControl) - - @Html.DisplayNameFor(model => model.SensingMethod) - - @Html.DisplayNameFor(model => model.Sharpness) - - @Html.DisplayNameFor(model => model.SoftwareUsed) - - @Html.DisplayNameFor(model => model.SubjectDistanceRange) - - @Html.DisplayNameFor(model => model.UploadDate) - - @Html.DisplayNameFor(model => model.VerticalResolution) - - @Html.DisplayNameFor(model => model.WhiteBalance) -
- @Html.DisplayFor(modelItem => item.Author) - - @Html.DisplayFor(modelItem => item.CameraManufacturer) - - @Html.DisplayFor(modelItem => item.CameraModel) - - @Html.DisplayFor(modelItem => item.ColorSpace) - - @Html.DisplayFor(modelItem => item.Comments) - - @Html.DisplayFor(modelItem => item.Contrast) - - @Html.DisplayFor(modelItem => item.CreationDate) - - @Html.DisplayFor(modelItem => item.DigitalZoomRatio) - - @Html.DisplayFor(modelItem => item.ExifVersion) - - @Html.DisplayFor(modelItem => item.Exposure) - - @Html.DisplayFor(modelItem => item.ExposureMethod) - - @Html.DisplayFor(modelItem => item.ExposureProgram) - - @Html.DisplayFor(modelItem => item.Flash) - - @Html.DisplayFor(modelItem => item.Focal) - - @Html.DisplayFor(modelItem => item.FocalLength) - - @Html.DisplayFor(modelItem => item.FocalLengthEquivalent) - - @Html.DisplayFor(modelItem => item.HorizontalResolution) - - @Html.DisplayFor(modelItem => item.IsoRating) - - @Html.DisplayFor(modelItem => item.Lens) - - @Html.DisplayFor(modelItem => item.License) - - @Html.DisplayFor(modelItem => item.LightSource) - - @Html.DisplayFor(modelItem => item.MeteringMode) - - @Html.DisplayFor(modelItem => item.Orientation) - - @Html.DisplayFor(modelItem => item.PixelComposition) - - @Html.DisplayFor(modelItem => item.Saturation) - - @Html.DisplayFor(modelItem => item.SceneCaptureType) - - @Html.DisplayFor(modelItem => item.SceneControl) - - @Html.DisplayFor(modelItem => item.SensingMethod) - - @Html.DisplayFor(modelItem => item.Sharpness) - - @Html.DisplayFor(modelItem => item.SoftwareUsed) - - @Html.DisplayFor(modelItem => item.SubjectDistanceRange) - - @Html.DisplayFor(modelItem => item.UploadDate) - - @Html.DisplayFor(modelItem => item.VerticalResolution) - - @Html.DisplayFor(modelItem => item.WhiteBalance) - - - Edit - | - - Details - | - - Delete - - + @Html.DisplayNameFor(model => model.Machine) + + @Html.DisplayNameFor(model => model.UploadUser) + + @Html.DisplayNameFor(model => model.UploadDate) + + @Html.DisplayNameFor(model => model.Author) + + @Html.DisplayNameFor(model => model.License) +
+ @Html.DisplayFor(modelItem => item.Machine) + + @Html.DisplayFor(modelItem => item.UploadUser) + + @Html.DisplayFor(modelItem => item.UploadDate) + + @Html.DisplayFor(modelItem => item.Author) + + @Html.DisplayFor(modelItem => item.License) + + + Details + + + Edit + + + Delete + +
\ No newline at end of file diff --git a/cicm_web/cicm_web.csproj b/cicm_web/cicm_web.csproj index b2dabffb..e9211015 100644 --- a/cicm_web/cicm_web.csproj +++ b/cicm_web/cicm_web.csproj @@ -2,7 +2,7 @@ netcoreapp2.2 - 3.0.99.582 + 3.0.99.583 Canary Islands Computer Museum Copyright © 2003-2018 Natalia Portillo Canary Islands Computer Museum Website