Files
2026-04-15 15:02:32 +02:00

89 lines
2.6 KiB
C#

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 DomainRepository : IDomainInterface
{
private readonly DataContext _context;
public DomainRepository(DataContext context)
{
_context = context;
}
public ICollection<DomainModel> GetDomains()
{
return _context.Domains
.ToList();
}
public DomainModel GetDomainById(Guid Id)
{
return _context.Domains
.Where(d => d.Id == Id)
.FirstOrDefault();
}
public bool AddDomainById(DomainModel domain)
{
_context.Add(domain);
return SaveChanges();
}
public bool DeleteDomainById(DomainModel domain)
{
_context.Remove(domain);
return SaveChanges();
}
public bool EditDomainById(DomainModel domain)
{
_context.Update(domain);
return SaveChanges();
}
public DomainModel GetDomainByIdInEnvironments(Guid Id)
{
return _context.Domains
.Include(ed => ed.EnvironmentDomains)
.ThenInclude(e => e.Environment)
.Where(d => d.Id == Id)
.FirstOrDefault();
}
public DomainModel GetVirtualMachinesByDomainId(Guid Id)
{
return _context.Domains
.Where(d => d.Id == Id)
.Include(vm => vm.VirtualMachines)
.FirstOrDefault();
}
public bool LinkDomainByIdToEnvironment(EnvironmentDomainsModel environmentDomain)
{
_context.Add(environmentDomain);
return SaveChanges();
}
public bool UnlinkDomainByIdFromEnvironment(EnvironmentDomainsModel environmentDomain)
{
_context.Remove(environmentDomain);
return SaveChanges();
}
public bool CheckDomainById(Guid Id)
{
return _context.Domains
.Any(d => d.Id == Id);
}
public bool CheckDomainByName(string Name)
{
return _context.Domains
.Any(p => p.Name == Name);
}
public bool SaveChanges()
{
var saved = _context.SaveChanges();
return saved > 0 ? true : false;
}
}
}