void OnCreateCharacter(string charName, CharacterClass charClass) { _uiControl.ShowError(null); var character = new Character { Name = charName, Class = charClass }; if (App.MainController.PersonSessionId == null) throw new Exception("MainController.PersonSessionId == null"); DI.Get<ICharactersService>().Create(character, App.MainController.PersonSessionId.Value, characterId => { _uiControl.Hide(); character.Id = characterId; if (CharacterCreated != null) CharacterCreated(character); }, error => { while (error.InnerException != null) error = error.InnerException; _uiControl.ShowError(error.Message); }); }
public void CharactersDatabaseTest() { Work(folder => { ICharactersDatabase database = new FileDatabase(folder); var personsDatabase = (IPersonsDatabase)database; var person = new PersonAuthInfo { PersonId = Guid.NewGuid() }; personsDatabase.Add(person); var character = new Character { Id = Guid.NewGuid(), Name = "Нагибатор", Class = CharacterClass.Healer, DeleteTime = DateTime.Now.AddDays(1) }; database.Add(person.PersonId, character); var character2 = database.GetCharacter(character.Id); Assert.AreEqual(character.Class, character2.Class); database.MarkAtDelete(character.Id, DateTime.Now.AddDays(3)); Assert.IsTrue(database.GetMarkAtDelete(character.Id) > DateTime.Now.AddDays(3).AddMinutes(-1)); database.CancelDelete(character.Id); Assert.IsNull(database.GetMarkAtDelete(character.Id)); var data1 = new CharacterData { Position = new Position { X = 123.45f, Y = 777.77f } }; database.Update(character.Id, data1); var data2 = database.GetData(character.Id); Assert.AreEqual(data1.Position.X, data2.Position.X); data1.Position = new Position { X = 666.66f, Y = 777.77f }; database.Update(character.Id, data1); data2 = database.GetData(character.Id); Assert.AreEqual(data1.Position.X, data2.Position.X); Assert.AreEqual(data1.Position.Y, data2.Position.Y); }); }
protected override void Deserialize(BinaryReader reader) { Character = new Character(); Character.Deserialize(reader); }