Allow to add and remove processors from machine details in admin view.

This commit is contained in:
2020-05-29 03:56:48 +01:00
parent e77bcc3aa4
commit 9bfd5eb888
13 changed files with 269 additions and 584 deletions

View File

@@ -0,0 +1,49 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Marechai.Database.Models;
using Marechai.ViewModels;
using Microsoft.EntityFrameworkCore;
namespace Marechai.Services
{
public class ProcessorsByMachineService
{
readonly MarechaiContext _context;
public ProcessorsByMachineService(MarechaiContext context) => _context = context;
public async Task<List<ProcessorByMachineViewModel>> GetByMachine(int machineId) =>
await _context.ProcessorsByMachine.Where(p => p.MachineId == machineId).
Select(p => new ProcessorByMachineViewModel
{
Id = p.Id, Name = p.Processor.Name, CompanyName = p.Processor.Company.Name,
ProcessorId = p.ProcessorId, MachineId = p.MachineId, Speed = p.Speed
}).OrderBy(p => p.CompanyName).ThenBy(p => p.Name).ToListAsync();
public async Task DeleteAsync(long id)
{
ProcessorsByMachine item = await _context.ProcessorsByMachine.FindAsync(id);
if(item is null)
return;
_context.ProcessorsByMachine.Remove(item);
await _context.SaveChangesAsync();
}
public async Task<long> CreateAsync(int processorId, int machineId, float? speed)
{
var item = new ProcessorsByMachine
{
ProcessorId = processorId, MachineId = machineId, Speed = speed
};
await _context.ProcessorsByMachine.AddAsync(item);
await _context.SaveChangesAsync();
return item.Id;
}
}
}