public override int CompareTo(Asset other) { ResourceAsset resourceAsset = other as ResourceAsset; if (resourceAsset == null) { return(base.CompareTo(other)); } int num1 = string.CompareOrdinal(this.name, resourceAsset.name); if (num1 != 0) { return(num1); } int num2 = string.CompareOrdinal(this.location, resourceAsset.location); if (num2 != 0) { return(num2); } return(0); }
protected override bool UpdateAssets() { foreach (ResourceAssetProvider resourceAssetProvider in (IEnumerable <AssetProvider>) this.AssetProviders) { if (resourceAssetProvider.Assets.Count > 0) { resourceAssetProvider.Assets.Clear(); this.NeedsUpdate = true; } } this.currentDocument = this.designerContext.ActiveDocument; if (this.designerContext.ActiveDocument != null && this.designerContext.ActiveDocument.XamlDocument != null) { IEnumerable <IDocumentRoot> source = (IEnumerable <IDocumentRoot>)null; if (this.designerContext.ActiveDocument.ProjectContext != null) { source = Enumerable.Select <IProjectDocument, IDocumentRoot>(Enumerable.Where <IProjectDocument>((IEnumerable <IProjectDocument>) this.designerContext.ActiveDocument.ProjectContext.Documents, (Func <IProjectDocument, bool>)(document => document.DocumentType == ProjectDocumentType.ResourceDictionary)), (Func <IProjectDocument, IDocumentRoot>)(document => document.DocumentRoot)); } foreach (DocumentCompositeNode resourceNode in this.designerContext.ResourceManager.GetResourcesInRootScope(PlatformTypes.Object, ResourceResolutionFlags.IncludeApplicationResources | ResourceResolutionFlags.UniqueKeysOnly)) { if (source == null || !Enumerable.Contains <IDocumentRoot>(source, resourceNode.DocumentRoot)) { ResourceModel resourceModel = new ResourceModel(resourceNode); foreach (ResourceAssetProvider resourceAssetProvider in (IEnumerable <AssetProvider>) this.AssetProviders) { if (resourceAssetProvider.IsResourceValid(resourceModel)) { ResourceAsset asset = resourceAssetProvider.CreateAsset(resourceModel); resourceAssetProvider.Assets.Add((Asset)asset); this.NeedsUpdate = true; } } } } } this.resourceChangeStamp = this.designerContext.ResourceManager.ResourceChangeStamp; return(base.UpdateAssets()); }