Example #1
0
 public void AddUsageSource(IUsageDataSource source)
 {
     lock (_sync)
     {
         _sources.Add(source);
         _ruleUsages.UnionWith(source.GetRuleUsages());
     }
 }
 public void AddUsageSource(IUsageDataSource source)
 {
     lock (_sync)
     {
         _sources.Add(source);
         _ruleUsages.UnionWith(source.GetRuleUsages());
     }
 }
        public static void ShowWarningsFor(Uri uri, Project project, IUsageDataSource browserSource)
        {
            using (ErrorList.UpdateSuspensionContext)
            {
                if (_currentDisplayData != null)
                {
                    foreach (var item in _currentDisplayData)
                    {
                        ErrorList.RemoveItem(item);
                    }
                }

                _lastSource = browserSource ?? _lastSource;
                _lastProject = project ?? _lastProject;
                _lastUri = uri ?? _lastUri;

                if (_lastSource == null || _lastProject == null)
                {
                    _currentDisplayData = null;

                    return;
                }

                _dontRefresh = true;

                try
                {
                    switch (DisplaySource)
                    {
                        case MessageDisplaySource.Project:
                            _currentDisplayData = UsageRegistry.GetWarnings(_lastProject).ToList();

                            break;
                        case MessageDisplaySource.Url:
                            _currentDisplayData = UsageRegistry.GetWarnings(_lastUri).ToList();

                            break;
                        case MessageDisplaySource.Browser:
                            _currentDisplayData = _lastSource.GetWarnings().ToList();

                            break;
                        default:
                            _currentDisplayData = null;

                            return;
                    }

                    foreach (var item in _currentDisplayData)
                    {
                        ErrorList.AddItem(item);
                    }
                }
                finally
                {
                    _dontRefresh = false;
                }
            }
        }
        public static void Merge(UnusedCssExtension extension, IUsageDataSource source)
        {
            var url = extension.Connection.Url.ToString().ToLowerInvariant();
            var crossBrowserPageBucket = UsageDataByLocation.GetOrAdd(url, location => new CompositeUsageData(extension));

            var connectionSiteBucket = UsageDataByConnectionAndLocation.GetOrAdd(extension.Connection, conn => new ConcurrentDictionary<string, CompositeUsageData>());
            var connectionPageBucket = connectionSiteBucket.GetOrAdd(url, location => new CompositeUsageData(extension));

            var projectBucket = UsageDataByProject.GetOrAdd(extension.Connection.Project.UniqueName, proj => new CompositeUsageData(extension));

            crossBrowserPageBucket.AddUsageSource(source);
            connectionPageBucket.AddUsageSource(source);
            projectBucket.AddUsageSource(source);

            OnUsageDataUpdated();
        }
Example #5
0
        public static void ShowWarningsFor(Uri uri, Project project, IUsageDataSource browserSource)
        {
            using (ErrorList.UpdateSuspensionContext)
            {
                if (_currentDisplayData != null)
                {
                    foreach (var item in _currentDisplayData)
                    {
                        ErrorList.RemoveItem(item);
                    }
                }

                _lastSource  = browserSource ?? _lastSource;
                _lastProject = project ?? _lastProject;
                _lastUri     = uri ?? _lastUri;

                if (_lastSource == null || _lastProject == null)
                {
                    _currentDisplayData = null;

                    return;
                }

                _dontRefresh = true;

                try
                {
                    switch (DisplaySource)
                    {
                    case MessageDisplaySource.Project:
                        _currentDisplayData = UsageRegistry.GetWarnings(_lastProject).ToList();

                        break;

                    case MessageDisplaySource.Url:
                        _currentDisplayData = UsageRegistry.GetWarnings(_lastUri).ToList();

                        break;

                    case MessageDisplaySource.Browser:
                        _currentDisplayData = _lastSource.GetWarnings().ToList();

                        break;

                    default:
                        _currentDisplayData = null;

                        return;
                    }

                    foreach (var item in _currentDisplayData)
                    {
                        ErrorList.AddItem(item);
                    }
                }
                finally
                {
                    _dontRefresh = false;
                }
            }
        }