public CoverageLineMarkTaggerProvider(
            IEventAggregator eventAggregator,
            IAppOptionsProvider appOptionsProvider
            ) : base(eventAggregator)
        {
            var appOptions = appOptionsProvider.Get();

            coverageMarginOptions              = CoverageMarginOptions.Create(appOptions);
            appOptionsProvider.OptionsChanged += AppOptionsProvider_OptionsChanged;
        }
        private void AppOptionsProvider_OptionsChanged(IAppOptions appOptions)
        {
            var newCoverageMarginOptions = CoverageMarginOptions.Create(appOptions);

            if (!newCoverageMarginOptions.AreEqual(coverageMarginOptions))
            {
                coverageMarginOptions = newCoverageMarginOptions;
                eventAggregator.SendMessage(new CoverageMarginOptionsChangedMessage(coverageMarginOptions));
            }
        }
 public bool AreEqual(CoverageMarginOptions options)
 {
     return(ShowUncoveredInOverviewMargin == options.ShowUncoveredInOverviewMargin &&
            ShowPartiallyCoveredInOverviewMargin == options.ShowPartiallyCoveredInOverviewMargin &&
            ShowCoveredInOverviewMargin == options.ShowCoveredInOverviewMargin);
 }