60 lines
1.7 KiB
C#
60 lines
1.7 KiB
C#
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;
|
|
}
|
|
|
|
}
|
|
}
|