public static WarcraftClassDTO ToDTO(WarcraftClass wc)
 {
     return(new WarcraftClassDTO {
         Id = wc.Id,
         ClassName = wc.ClassName,
         IconFilePath = $"images/class/{ wc.ClassName.ToLower() }_classicon.png",
         Specifications = wc.WarcraftClassSpecifications?.OrderBy(wcs => wcs.SpecificationIndex).Select(wcs => WarcraftClassSpecificationDTO.ToDTO(wcs, wc.ClassName))
     });
 }
예제 #2
0
        public static TalentCalculatorDTO ToDTO(WarcraftClass wc)
        {
            var totalTalentCount = 0;

            wc.WarcraftClassSpecifications?.ForEach(wcs => totalTalentCount += wcs.Talents.Count());

            return(new TalentCalculatorDTO
            {
                SelectedClass = WarcraftClassDTO.ToDTO(wc),
                TotalTalentCount = totalTalentCount
            });
        }
        public static void Seed(WoWClassicNewsContext context)
        {
            // 1. Add Talent Icons
            var talentIcons = TalentIconSeeder.SetupIcons();

            foreach (var icon in talentIcons)
            {
                context.Add(icon);
            }

            context.SaveChanges();

            // 2. Add Classes and their Talents
            var druid = new WarcraftClass {
                ClassName = "Druid", WarcraftClassSpecifications = DruidClassSeeder.Setup(talentIcons), Order = 1
            };
            var hunter = new WarcraftClass {
                ClassName = "Hunter", WarcraftClassSpecifications = HunterClassSeeder.Setup(talentIcons), Order = 2
            };
            var mage = new WarcraftClass {
                ClassName = "Mage", WarcraftClassSpecifications = MageClassSeeder.Setup(talentIcons), Order = 3
            };
            var paladin = new WarcraftClass {
                ClassName = "Paladin", WarcraftClassSpecifications = PaladinClassSeeder.Setup(talentIcons), Order = 4
            };
            var priest = new WarcraftClass {
                ClassName = "Priest", WarcraftClassSpecifications = PriestClassSeeder.Setup(talentIcons), Order = 5
            };
            var rogue = new WarcraftClass {
                ClassName = "Rogue", WarcraftClassSpecifications = RogueClassSeeder.Setup(talentIcons), Order = 6
            };
            var shaman = new WarcraftClass {
                ClassName = "Shaman", WarcraftClassSpecifications = ShamanClassSeeder.Setup(talentIcons), Order = 7
            };
            var warlock = new WarcraftClass {
                ClassName = "Warlock", WarcraftClassSpecifications = WarlockClassSeeder.Setup(talentIcons), Order = 8
            };
            var warrior = new WarcraftClass {
                ClassName = "Warrior", WarcraftClassSpecifications = WarriorClassSeeder.Setup(talentIcons), Order = 9
            };

            var classes = new List <WarcraftClass> {
                druid, hunter, mage, paladin, priest, rogue, shaman, warlock, warrior
            };

            foreach (var wc in classes)
            {
                context.WarcraftClasses.Add(wc);
            }

            context.SaveChanges();

            // 3. Setup Talent Requirement links between Talents
            DruidClassSeeder.SetupTalentRequirements(druid.WarcraftClassSpecifications);
            HunterClassSeeder.SetupTalentRequirements(hunter.WarcraftClassSpecifications);
            MageClassSeeder.SetupTalentRequirements(mage.WarcraftClassSpecifications);
            PaladinClassSeeder.SetupTalentRequirements(paladin.WarcraftClassSpecifications);
            PriestClassSeeder.SetupTalentRequirements(priest.WarcraftClassSpecifications);
            RogueClassSeeder.SetupTalentRequirements(rogue.WarcraftClassSpecifications);
            ShamanClassSeeder.SetupTalentRequirements(shaman.WarcraftClassSpecifications);
            WarlockClassSeeder.SetupTalentRequirements(warlock.WarcraftClassSpecifications);
            WarriorClassSeeder.SetupTalentRequirements(warrior.WarcraftClassSpecifications);

            context.SaveChanges();
        }