private PathfinderRaceDetails PathfinderRaceDetailsSetup(PathfinderRace race) { Dictionary <string, string> languages = new Dictionary <string, string>(); foreach (var language in race.Languages.Split('|').ToList()) { var lang = language.Split('*').ToList(); languages.Add(lang[0], lang[1]); } Dictionary <RacialTraitType, Dictionary <int, string> > racialTraits = new Dictionary <RacialTraitType, Dictionary <int, string> >(); foreach (var item in race.RacialTraits) { if (!racialTraits.ContainsKey(item.TraitType)) { racialTraits.Add(item.TraitType, RaceFeaturesToDictionary(race.RacialTraits.Where(r => r.TraitType == item.TraitType).ToList())); } } var raceDisplay = new PathfinderRaceDetails { RaceID = race.RaceID, OwnerID = race.OwnerID, GameType = race.GameType, RaceName = race.RaceName, RaceType = race.RaceType, PhysicalDescription = race.PhysicalDescription, BaseSpeed = race.BaseSpeed, Size = race.Size, Languages = languages, StrengthModifier = race.StrengthModifier, DexterityModifier = race.DexterityModifier, ConstitutionModifier = race.ConstitutionModifier, IntelligenceModifier = race.IntelligenceModifier, WisdomModifier = race.WisdomModifier, CharismaModifier = race.CharismaModifier, DateOfCreation = race.DateOfCreation, DateOfModification = race.DateOfModification, RacePoints = race.RacePoints, PowerLevel = race.PowerLevel, RacialTraits = racialTraits, }; return(raceDisplay); }
public void RaceAndPolymorphism() { List <Race> some = new List <Race>(); DnDRace race = new DnDRace(); race.ArmorProficiencies = "blah"; race.RaceName = "name"; PathfinderRace race2 = new PathfinderRace(); some.Add(race); some.Add(race2); Assert.AreEqual(2, some.Count); //using( var ctx = new ApplicationDbContext()) //{ // ctx.Races.Add(race); // ctx.SaveChanges(); //} }
//create DND race public bool CreateRace(RaceCreate raceCreate) { using (var ctx = new ApplicationDbContext()) { if (raceCreate.GetType().Name == "DnDRaceCreate") { var race = (DnDRaceCreate)raceCreate; var newRace = new DnDRace { OwnerID = _userId, RaceName = race.RaceName, GameType = race.GameType, RaceType = race.RaceType, PhysicalDescription = race.PhysicalDescription, BaseSpeed = race.BaseSpeed, Size = race.Size, Languages = String.Join("|", race.Languages.Select(l => l.Key + "*" + l.Value).ToArray()), StrengthModifier = race.StrengthModifier, DexterityModifier = race.DexterityModifier, ConstitutionModifier = race.ConstitutionModifier, IntelligenceModifier = race.IntelligenceModifier, WisdomModifier = race.WisdomModifier, CharismaModifier = race.CharismaModifier, WeaponProficiencies = String.Join("|", race.WeaponProficiencies), ArmorProficiencies = String.Join("|", race.ArmorProficiencies), ToolProficiencies = String.Join("|", race.ToolProficiencies), IsDeactivated = false, DateOfCreation = DateTimeOffset.UtcNow }; ctx.Races.Add(newRace); return(ctx.SaveChanges() == 1); } else if (raceCreate.GetType().Name == "PathfinderRaceCreate") { var race = (PathfinderRaceCreate)raceCreate; var newRace = new PathfinderRace { OwnerID = _userId, RaceName = race.RaceName, GameType = race.GameType, RaceType = race.RaceType, PhysicalDescription = race.PhysicalDescription, BaseSpeed = race.BaseSpeed, Size = race.Size, Languages = String.Join("|", race.Languages.Select(l => l.Key + "*" + l.Value).ToArray()), StrengthModifier = race.StrengthModifier, DexterityModifier = race.DexterityModifier, ConstitutionModifier = race.ConstitutionModifier, IntelligenceModifier = race.IntelligenceModifier, WisdomModifier = race.WisdomModifier, CharismaModifier = race.CharismaModifier, IsDeactivated = false, RacePoints = race.RacePoints, PowerLevel = race.PowerLevel, DateOfCreation = DateTimeOffset.UtcNow }; ctx.Races.Add(newRace); foreach (var item in race.RacialTraits) { newRace.RacialTraits.Add(new RaceFeatures { FeatureID = item.Key, TraitType = item.Value }); } var something = ctx.SaveChanges() == 1; return(something); } else { return(false); } } }