Exemple #1
0
 static async Task <Dictionary <string, List <Power> > > GetPowersAsync(IKTRulesContext db)
 {
     return(new Dictionary <string, List <Power> >
     {
         [""] = await db.Powers.OrderBy(power => power.Id).ToListAsync()
     });
 }
Exemple #2
0
 static async Task <Dictionary <string, List <Phase> > > GetPhasesAsync(IKTRulesContext db)
 {
     return(new Dictionary <string, List <Phase> >
     {
         [""] = await db.Phases.OrderBy(phase => phase.Id).ToListAsync()
     });
 }
Exemple #3
0
 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()
     });
 }
Exemple #4
0
 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()
                ));
 }
Exemple #5
0
 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()
                ));
 }
Exemple #6
0
        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()
                       ));
        }
Exemple #7
0
 static async Task <Dictionary <string, Faction> > GetFactionsAsync(IKTRulesContext db)
 {
     return(await db.Factions
            .GroupBy(faction => faction.Id)
            .ToDictionaryAsync(pair => pair.Key, pair => pair.Single()));
 }
Exemple #8
0
 public SqliteToJson(IKTRulesContext db, string root)
 {
     this.Db   = db;
     this.Root = root;
 }
Exemple #9
0
 static async Task <Dictionary <string, List <WeaponType> > > GetWeaponTypesAsync(IKTRulesContext db)
 {
     return(new Dictionary <string, List <WeaponType> >
     {
         [""] = await db.WeaponTypes.OrderBy(weaponType => weaponType.Id).ToListAsync()
     });
 }
Exemple #10
0
 static async Task <Dictionary <string, List <Specialist> > > GetSpecialistsAsync(IKTRulesContext db)
 {
     return(new Dictionary <string, List <Specialist> > {
         [""] = await db.Specialists.OrderBy(specialist => specialist.Id).ToListAsync()
     });
 }