using Microsoft.EntityFrameworkCore; using Microsoft.SelfService.Portal.Core.API.Context; using Microsoft.SelfService.Portal.Core.API.Interfaces; using Microsoft.SelfService.Portal.Core.API.Models; namespace Microsoft.SelfService.Portal.Core.API.Repository { public class VirtualMachineRepository : IVirtualMachineInterface { private readonly DataContext _context; public VirtualMachineRepository(DataContext context) { _context = context; } public ICollection GetVirtualMachines() { return _context.VirtualMachines .Include(virtualMachine => virtualMachine.Domain) .ToList(); } public VirtualMachineModel GetVirtualMachineById(Guid Id) { return _context.VirtualMachines .Where(v => v.Id == Id) .Include(d => d.Domain) .ThenInclude(e => e.EnvironmentDomains) .FirstOrDefault(); } public bool AddVirtualMachineById(VirtualMachineModel virtualMachine) { _context.Add(virtualMachine); return SaveChanges(); } public bool EditVirtualMachineById(VirtualMachineModel virtualMachine) { _context.Update(virtualMachine); return SaveChanges(); } public bool DeleteVirtualMachineById(VirtualMachineModel virtualMachine) { _context.Remove(virtualMachine); return SaveChanges(); } public VirtualMachineModel GetVirtualMachineByName(string Name) { return _context.VirtualMachines .Where(v => v.Name == Name) .FirstOrDefault(); } public bool CheckVirtualMachineById(Guid Id) { return _context.VirtualMachines .Any(v => v.Id == Id); } public bool CheckVirtualMachineByName(string Name) { return _context.VirtualMachines .Any(v => v.Name == Name); } public bool SaveChanges() { var saved = _context.SaveChanges(); return saved > 0 ? true : false; } } }