public IActionResult Character(string strategy, int level, string scores) { var build = strategyGateway.Find(strategy); var roller = GatewayProvider.Find <AbilityScoreGenerator>(scores); build.TargetLevel = level; build.AbilityScoreRoller = roller.Generator; var gen = GatewayProvider.Find <CharacterDesigner>(build.Designer); var character = new CharacterSheet(build); gen.ExecuteStep(character); ViewData["character"] = new CharacterSheetTextView(character); ViewData["characterFull"] = character; ViewData["strategy"] = strategy; ViewData["scores"] = scores; ViewData["level"] = level; var saveObj = new YamlObjectStore(); character.Save(saveObj); ViewData["save-data"] = saveObj.WriteToString(); return(View()); }
public void CanWriteObjectsIntoYamlString() { var yamlStore = new YamlObjectStore(); yamlStore.SetValue("name", "A Name"); yamlStore.SetValue("number", 2383); yamlStore.SetValue("list-of-values", new string[] { "one", "two", "three" }); var childObj = new YamlObjectStore(); childObj.SetValue("name", "childName"); yamlStore.SetValue("child", childObj); var listOfObject = new YamlObjectStore[] { new YamlObjectStore(), new YamlObjectStore() }; listOfObject[0].SetValue("name", "Test 1"); listOfObject[1].SetValue("name", "Test 2"); yamlStore.SetValue("list-of-objects", listOfObject); var yamlOutput = yamlStore.WriteToString(); var expectedYaml = @"name: A Name number: 2383 list-of-values: - one - two - three child: name: childName list-of-objects: - name: Test 1 - name: Test 2 ... "; Assert.Equal(expectedYaml, yamlOutput); // Deserializing Results In Same object store var deserialize = expectedYaml.ParseYaml(); Assert.Equal("A Name", deserialize.GetString("name")); Assert.Equal(2383, deserialize.GetInteger("number")); Assert.Equal(new string[] { "one", "two", "three" }, deserialize.GetList("list-of-values")); Assert.Equal("childName", deserialize.GetObject("child").GetString("name")); }
public void CanSaveAndLoadCharacterSheets() { var bob = CharacterTestTemplates.AverageBob(); YamlObjectStore store = new YamlObjectStore(); bob.Alignment = CharacterAlignment.ChaoticEvil; bob.Gender = Gender.Male; bob.Save(store); var yaml = store.WriteToString(); var loaded = yaml.ParseYaml(); var bob2 = CharacterSheet.Load(loaded); Assert.Equal(bob.Name, bob2.Name); Assert.Equal(CharacterAlignment.ChaoticEvil, bob2.Alignment); Assert.Equal(Gender.Male, bob2.Gender); Assert.NotNull(bob2.Offense); }