Y2S2-Syski/syski_api/uk.co.syski.api/Controllers/BIOSsController.cs

60 lines
1.7 KiB
C#
Raw Permalink Normal View History

2020-06-09 20:02:14 +00:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Syski.API.Models;
using Syski.Data;
using System;
using System.Linq;
using System.Security.Claims;
namespace Syski.API.Controllers
{
[ApiController]
public class BIOSsController : ControllerBase
{
private readonly SyskiDBContext context;
public BIOSsController(SyskiDBContext context)
{
this.context = context;
}
[Authorize]
[HttpGet("/system/{systemId}/bios")]
public IActionResult GetBIOS(Guid systemId)
{
var applicationUserSystem = context.ApplicationUserSystems.FirstOrDefault(u => u.User.Email.Equals(((ClaimsIdentity) User.Identity).FindFirst("email").Value) && u.SystemId.Equals(systemId));
if (applicationUserSystem == null)
return NotFound();
var bios = context.SystemBIOSs.FirstOrDefault(sc => sc.SystemId.Equals(systemId));
var biosDTO = CreateBIOSDTO(bios);
return Ok(biosDTO);
}
private BIOSDTO CreateBIOSDTO(SystemBIOS systemBIOS)
{
var biosModel = context.BIOSModels.Find(systemBIOS.BIOSModelId);
var biosDTO = new BIOSDTO()
{
Id = systemBIOS.BIOSModelId,
Caption = systemBIOS.Caption,
Date = systemBIOS.Date,
Version = systemBIOS.Version
};
if (biosModel.ManufacturerId != null)
{
var manufacturer = context.Manufacturers.Find(biosModel.ManufacturerId);
biosDTO.ManufacturerName = manufacturer.Name;
}
return biosDTO;
}
}
}