public override Task <bool> DeleteById(int id) { RuinsContext.RemoveRange(RuinsContext.RuinsiteObeliskgroups.Where(rsog => rsog.RuinsiteId == id)); RuinsContext.RemoveRange(RuinsContext.RuinsiteActiveobelisks.Where(rsao => rsao.RuinsiteId == id)); return(base.DeleteById(id)); }
public async Task <bool> SaveActiveObelisksForSite(int siteId, IEnumerable <Obelisk> obelisks) { var currentActiveObelisks = await RuinsContext.RuinsiteActiveobelisks .Where(e => e.RuinsiteId == siteId) .ToListAsync(); var obelisksToDelete = currentActiveObelisks .Where(g => obelisks.All(og => og.Id != g.ObeliskId)); var obelisksToAdd = obelisks .Where(og => currentActiveObelisks.All(g => g.ObeliskId != og.Id)); // first delete all groups foreach (var obelisk in obelisksToDelete) { RuinsContext.RuinsiteActiveobelisks.Remove(obelisk); } // add all groups where we know the id of foreach (var obelisk in obelisksToAdd) { RuinsContext.RuinsiteActiveobelisks.Add(new RuinsiteActiveobelisks() { RuinsiteId = siteId, ObeliskId = obelisk.Id }); } await RuinsContext.SaveChangesAsync(); return(true); }
public async Task <bool> SaveObeliskGroupsForSite(int siteId, IEnumerable <ObeliskGroup> obeliskGroups) { var currentGroups = await RuinsContext.RuinsiteObeliskgroups .Include(e => e.Obeliskgroup) .Where(e => e.RuinsiteId == siteId) .ToListAsync(); var groupsToDelete = currentGroups .Where(g => !obeliskGroups.Any(og => og.Id == g.Obeliskgroup.Id || og.Name == g.Obeliskgroup.Name)); var groupsToAdd = obeliskGroups .Where(og => !currentGroups.Any(g => g.Obeliskgroup.Id == og.Id || g.Obeliskgroup.Name == og.Name)); // first delete all groups foreach (var group in groupsToDelete) { RuinsContext.RuinsiteObeliskgroups.Remove(group); } // add all groups where we know the id of foreach (var group in groupsToAdd.Where(g => g.Id > 0)) { RuinsContext.RuinsiteObeliskgroups.Add(new RuinsiteObeliskgroups() { RuinsiteId = siteId, ObeliskgroupId = group.Id }); } var groupsToAddWithoutId = groupsToAdd.Where(g => g.Id == 0).Select(g => g.Name).ToArray(); if (groupsToAddWithoutId.Length > 0) { // for the groups only given by name (not id), we need to fetch the entities first var allGroups = await RuinsContext.ObeliskGroup .Where(g => g.Ruintype.RuinSite.Any(s => s.Id == siteId)) .ToListAsync(); foreach (var group in allGroups.Where(g => groupsToAddWithoutId.Contains(g.Name))) { RuinsContext.RuinsiteObeliskgroups.Add(new RuinsiteObeliskgroups() { RuinsiteId = siteId, ObeliskgroupId = group.Id }); } } await RuinsContext.SaveChangesAsync(); return(true); }
public RuinTypeRepository(RuinsContext context) : base(context) { }
public BodyRepository(RuinsContext context) : base(context) { }
protected BaseDataRepository(RuinsContext context) { RuinsContext = context ?? throw new ArgumentNullException(nameof(context)); }
public CodexCategoryRepositoy(RuinsContext context) : base(context) { }
public MapsRepository(IConfiguration configuration, IMapper mapper, RuinsContext ruinsContext) { _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); _ruinsContext = ruinsContext ?? throw new ArgumentNullException(nameof(ruinsContext)); }
public ObeliskRepository(RuinsContext context) : base(context) { }
public SystemRepository(RuinsContext context) : base(context) { }
public CodexDataRepository(RuinsContext context) : base(context) { }
public ArtifactRepository(RuinsContext context) : base(context) { }