static async Task <Dictionary <string, List <Power> > > GetPowersAsync(IKTRulesContext db) { return(new Dictionary <string, List <Power> > { [""] = await db.Powers.OrderBy(power => power.Id).ToListAsync() }); }
static async Task <Dictionary <string, List <Phase> > > GetPhasesAsync(IKTRulesContext db) { return(new Dictionary <string, List <Phase> > { [""] = await db.Phases.OrderBy(phase => phase.Id).ToListAsync() }); }
static async Task <Dictionary <string, List <Weapon> > > GetWeaponsAsync(IKTRulesContext db) { // weapons aren't technically faction specific return(new Dictionary <string, List <Weapon> > { [""] = await db.Weapons .Include(weapon => weapon.WeaponProfiles) .OrderBy(weapon => weapon.Id) .ToListAsync() }); }
static async Task <Dictionary <string, List <Tactic> > > GetTacticsAsync(IKTRulesContext db) { return(await db.Tactics .GroupBy(tactic => !string.IsNullOrEmpty(tactic.FactionId)?tactic.FactionId : !string.IsNullOrEmpty(tactic.ModelProfileId)?tactic.ModelProfile.Model.FactionId : null) .ToDictionaryAsync( pair => pair.Key ?? "", pair => pair.OrderBy(tactic => tactic.Id).ToList() )); }
static async Task <Dictionary <string, List <Ability> > > GetAbilitiesAsync(IKTRulesContext db) { return(await db.Abilities .Include(ability => ability.Details) .GroupBy(ability => !string.IsNullOrEmpty(ability.FactionId) ? ability.FactionId : !string.IsNullOrEmpty(ability.ModelId) ? ability.Model.FactionId : !string.IsNullOrEmpty(ability.ModelProfileId) ? ability.ModelProfile.Model.FactionId : null) .ToDictionaryAsync( pair => pair.Key ?? "", pair => pair.OrderBy(ability => ability.Id).ToList() )); }
static async Task <Dictionary <string, List <Model> > > GetModelsAsync(IKTRulesContext db) { return(await db.Models // profile, including specialisms .Include(model => model.ModelProfiles) .ThenInclude(modelProfile => modelProfile.Specialists) // include weapons attached to profiles .Include(model => model.ModelProfiles) .ThenInclude(modelProfile => modelProfile.ModelProfileWeapons) // include wargear options attached to profiles .Include(model => model.ModelProfiles) .ThenInclude(modelProfile => modelProfile.WarGearOptions) // include level costs associated with profiles .Include(model => model.ModelProfiles) .ThenInclude(modelProfile => modelProfile.LevelCosts) // include weapon cost overrides for this model .Include(model => model.ModelProfiles) .ThenInclude(modelProfile => modelProfile.CostOverrides) // weapons .Include(model => model.ModelWeapons) // wargear options .Include(model => model.WarGearOptions) // group and return .GroupBy(model => model.FactionId) .ToDictionaryAsync( pair => pair.Key, pair => pair.OrderBy(model => model.Id).ToList() )); }
static async Task <Dictionary <string, Faction> > GetFactionsAsync(IKTRulesContext db) { return(await db.Factions .GroupBy(faction => faction.Id) .ToDictionaryAsync(pair => pair.Key, pair => pair.Single())); }
public SqliteToJson(IKTRulesContext db, string root) { this.Db = db; this.Root = root; }
static async Task <Dictionary <string, List <WeaponType> > > GetWeaponTypesAsync(IKTRulesContext db) { return(new Dictionary <string, List <WeaponType> > { [""] = await db.WeaponTypes.OrderBy(weaponType => weaponType.Id).ToListAsync() }); }
static async Task <Dictionary <string, List <Specialist> > > GetSpecialistsAsync(IKTRulesContext db) { return(new Dictionary <string, List <Specialist> > { [""] = await db.Specialists.OrderBy(specialist => specialist.Id).ToListAsync() }); }