internal EditDesignTimeResourcesDialog(EditDesignTimeResourceModel model) : this() { if (model == null) { throw new ArgumentNullException("model"); } this.model = model; this.DataContext = (object)model; this.Title = StringTable.DesignTimeResourcesAddDictionary; if (model.Mode != EditDesignTimeResourceModelMode.Manual) { return; } this.buttonGrid.HorizontalAlignment = HorizontalAlignment.Right; this.warningIcon.Visibility = Visibility.Collapsed; this.doNotAskCheck.Visibility = Visibility.Collapsed; }
public EditDesignTimeResourceModel(IProject rootProject, DesignerContext context, string fileName, EditDesignTimeResourceModelMode mode = EditDesignTimeResourceModelMode.Warning, string missingResourceName = null) { EditDesignTimeResourceModel timeResourceModel = this; if (rootProject == null) { throw new ArgumentNullException("rootProject"); } if (context == null) { throw new ArgumentNullException("context"); } this.mode = mode; this.rootProject = rootProject; this.context = context; this.fileName = fileName; this.missingResourceName = missingResourceName; IProjectManager service = this.context.Services.GetService <IProjectManager>(); if (service != null) { ISolution currentSolution = service.CurrentSolution; if (currentSolution != null) { this.solutionSettingsManager = currentSolution.SolutionSettingsManager; } } this.targetPath = Path.Combine(rootProject.ProjectRoot.Path, rootProject.PropertiesPath); foreach (DocumentResourceContainer container in Enumerable.Select(Enumerable.ThenBy(Enumerable.OrderBy(Enumerable.Where(Enumerable.Select(Enumerable.Distinct <DocumentResourceContainer>((IEnumerable <DocumentResourceContainer>)context.ResourceManager.DocumentResourceContainers), container => new { container = container, doc = container.Document.XamlDocument }), param0 => { if (param0.container.Document.ProjectDocumentType == ProjectDocumentType.ResourceDictionary && !param0.container.ProjectItem.ContainsDesignTimeResources && param0.doc != null) { return(param0.doc.IsEditable); } return(false); }), param0 => param0.container.ProjectItem.Project.Name), param0 => param0.container.Name), param0 => param0.container)) { this.designTimeResourceContainers.Add(new DesignTimeResourceContainer(container)); } this.designTimeResources = Enumerable.FirstOrDefault <IProjectItem>((IEnumerable <IProjectItem>)rootProject.Items, (Func <IProjectItem, bool>)(item => { bool flag = Enumerable.Any <IProject>(rootProject.ReferencedProjects, (Func <IProject, bool>)(p => p.DocumentReference.GetHashCode() == item.DocumentReference.GetHashCode())); if (item.ContainsDesignTimeResources) { return(!flag); } return(false); })); if (this.designTimeResources == null) { return; } DocumentResourceContainer resourceContainer1 = Enumerable.FirstOrDefault <DocumentResourceContainer>((IEnumerable <DocumentResourceContainer>)context.ResourceManager.DocumentResourceContainers, (Func <DocumentResourceContainer, bool>)(container => container.ProjectItem == this.designTimeResources)); if (resourceContainer1 == null) { return; } List <ResourceDictionaryItem> list = new List <ResourceDictionaryItem>(); context.ResourceManager.FindAllReachableDictionaries((ResourceContainer)resourceContainer1, (ICollection <ResourceDictionaryItem>)list); foreach (ResourceDictionaryItem resourceDictionaryItem in list) { DocumentResourceContainer container = context.ResourceManager.FindResourceContainer(resourceDictionaryItem.DesignTimeSource) as DocumentResourceContainer; if (container != null) { DesignTimeResourceContainer resourceContainer2 = Enumerable.FirstOrDefault <DesignTimeResourceContainer>((IEnumerable <DesignTimeResourceContainer>) this.designTimeResourceContainers, (Func <DesignTimeResourceContainer, bool>)(c => c.Container == container)); if (resourceContainer2 != null) { this.designTimeResourceContainers.Remove(resourceContainer2); } } } }