Example #1
0
 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);
                    }
                }
            }
        }