public CharacterWindow(CampaignManager campaignManager, CharacterManager characterManager)
        {
            InitializeComponent();

            Campaign = campaignManager;
            CharacterManager = characterManager;

            var character = characterManager.Character;

            SyncSkills(character, campaignManager.Campaign.SkillListings);

            DataContext = new CharacterWindowViewModel
                              {
                                  CharacterManager = characterManager,
                                  PowerSources = campaignManager.Campaign.PowerSources,
                                  SkillScores =
                                      character.SkillScores.Select(
                                          s =>
                                          new SkillScoreViewModel
                                              {
                                                  SkillScore = s
                                              })
                                      .ToList()
                              };
        }
        public void Reload()
        {
            if (ManifestFileName == null)
            {
                _campaign = new Campaign(_gameSystemManager.GameSystem);
                return;
            }

            var contents = File.ReadAllText(ManifestFileName);

            var manifest = JsonConvert.DeserializeObject<Campaign>(contents, _converter);
            _campaign = new Campaign(_gameSystemManager.GameSystem)
            {
                Name = manifest.Name
            };

            _characterConverter = new CharacterConverter(_campaign);
            
            var campaignDirectory = Path.GetDirectoryName(ManifestFileName);
            CharacterFolder = Path.Combine(campaignDirectory, "Characters");

            if (Directory.Exists(CharacterFolder))
            {
                foreach (var filename in Directory.EnumerateFiles(CharacterFolder))
                {
                    var characterManager = new CharacterManager(this, filename, _characterConverter, CharacterFolder);

                    Characters.Add(characterManager);
                    _campaign.Characters.Add(characterManager.Character);
                }
            }
        }