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);
            });
        }
Exemple #3
0
 protected override void Deserialize(BinaryReader reader)
 {
     Character = new Character();
     Character.Deserialize(reader);
 }