public ShellViewModel(
            SettingsViewModel settingsViewModelViewModel,
            ExperienceContainer experienceContainer,
            ExpCardCalculatorViewModel expCardCalculatorViewModel,
            IWindowManager windowManager)
        {
            if (settingsViewModelViewModel == null)
            {
                throw new ArgumentNullException(nameof(settingsViewModelViewModel));
            }
            if (experienceContainer == null)
            {
                throw new ArgumentNullException(nameof(experienceContainer));
            }
            if (expCardCalculatorViewModel == null)
            {
                throw new ArgumentNullException(nameof(expCardCalculatorViewModel));
            }
            if (windowManager == null)
            {
                throw new ArgumentNullException(nameof(windowManager));
            }

            this.windowManager         = windowManager;
            ExperienceContainer        = experienceContainer;
            ExpCardCalculatorViewModel = expCardCalculatorViewModel;

            SettingsViewModel = settingsViewModelViewModel;
            SettingsViewModel.ActivateWith(this);

            experienceUpdateService = new ExperienceUpdateService();

            ExperienceComponents = new BindableCollection <IExperienceControl>(ExperienceContainer.ExperienceControls);
            timer.Tick          += TimerOnTick;
        }
Beispiel #2
0
        protected override void Configure()
        {
            container = new SimpleContainer();

            container.Singleton <IWindowManager, MetroWindowManager>();
            container.Singleton <IEventAggregator, EventAggregator>();

            var baseExperienceData = new ExperienceData()
            {
                DisplayName = "Base Experience"
            };
            var classExperienceData = new ExperienceData()
            {
                DisplayName = "Class Experience"
            };

            IExperienceControl[] baseExperienceControls = GetExperienceControls(baseExperienceData, classExperienceData);

            ExperienceContainer experienceContainer = new ExperienceContainer(baseExperienceData, classExperienceData, baseExperienceControls);

            container.Handler <ShellViewModel>(simpleContainer =>
                                               new ShellViewModel(
                                                   container.GetInstance <SettingsViewModel>(),
                                                   experienceContainer,
                                                   new ExpCardCalculatorViewModel(experienceContainer),
                                                   container.GetInstance <IWindowManager>()));

            // TODO - refactor settings view model to just take a collection of menuitems
            container.Handler <SettingsViewModel>(simpleContainer => new SettingsViewModel(baseExperienceControls));
        }
 public void RestartSession()
 {
     ExperienceContainer.RestartSession();
 }
Beispiel #4
0
 public ExpCardCalculatorViewModel(ExperienceContainer experienceContainer)
 {
     this.experienceContainer = experienceContainer;
 }