Exemple #1
0
        public ImportCharacterViewModel(IMidgardContext context = null) : base("Import")
        {
            _context = context ?? Locator.Current.GetService <IMidgardContext>();

            Character     = new Character();
            Races         = _context.Races.ToList();
            Classes       = _context.Classes.ToList();
            Lands         = _context.Lands.ToList();
            SocialClasses = _context.SocialClasses.ToList();

            OpenLanguageSelection = ReactiveCommand.Create(OpenLanguageSelectionImpl);
            RemoveLanguage        = ReactiveCommand.Create <int>(id => CharacterHasLanguages.Remove(SelectedLanguage));

            OpenWeaponSelection = ReactiveCommand.Create(OpenWeaponSelectionImpl);
            RemoveWeapon        = ReactiveCommand.Create <int>(id => CharacterHasWeapons.Remove(SelectedWeapon));

            OpenWeaponGroupSelection = ReactiveCommand.Create(OpenWeaponGroupSelectionImpl);
            RemoveWeaponGroup        = ReactiveCommand.Create <int>(id => CharacterHasSkills.Remove(SelectedSkill));

            // this.ValidationRule(
            //     viewModel => viewModel.Character.Level,
            //     level => level > 0,
            //     "Grad muss eine Zahl sein");

            AddLanguageFromDialog = new Interaction <Unit, Language>();
            AddLanguageFromDialog.RegisterHandler(SelectLanguageHandler);

            AddWeaponFromDialog = new Interaction <Unit, Weapon>();
            AddWeaponFromDialog.RegisterHandler(SelectWeaponHandler);

            AddWeaponGroupFromDialog = new Interaction <Unit, Skill>();
            AddWeaponGroupFromDialog.RegisterHandler(SelectWeaponGroupHandler);
        }
Exemple #2
0
 private void OpenWeaponSelectionImpl()
 {
     AddWeaponFromDialog.Handle(Unit.Default).Where(weapon => weapon != null).Subscribe(weapon =>
     {
         CharacterHasWeapons.Add(new CharacterHasWeapon()
         {
             Character = Character,
             Weapon    = weapon
         });
     });
 }