Ejemplo n.º 1
0
        /// <summary>
        /// 显示查找到的结果(位置)
        /// </summary>
        /// <param name="_currentPosition">查找到的位置</param>
        private void DisplayFindedResult(Position _currentPosition)
        {
            if (_currentPosition == null)
            {
                MessageService.Show("未找到结果,搜索回到起始点。");
            }
            else
            {
                Position    position    = _currentPosition;
                XmlDocument xmlDocument = (XmlDocument)position.GetDocument();
                Type        type        = xmlDocument.GetType();
                switch (type.Name)
                {
                case "HrXmlDocument":
                    HrXmlDocument       hrDoc  = (HrXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm hrForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, hrDoc.Id) as MdiBaseEditViewForm;
                    hrForm.MarkPosition(position);
                    break;

                case "InviteBiddingXmlDocument":
                    InviteBiddingXmlDocument bidDoc  = (InviteBiddingXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm      bidForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, bidDoc.Id) as MdiBaseEditViewForm;
                    bidForm.MarkPosition(position);
                    break;

                case "KnowledgeXmlDocument":
                    KnowledgeXmlDocument knowDoc  = (KnowledgeXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm  knowForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, knowDoc.Id) as MdiBaseEditViewForm;
                    knowForm.MarkPosition(position);
                    break;

                case "ProductXmlDocument":
                    ProductXmlDocument  prodcutDoc  = (ProductXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm productForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, prodcutDoc.Id) as MdiBaseEditViewForm;
                    productForm.MarkPosition(position);
                    break;

                case "ProjectXmlDocument":
                    ProjectXmlDocument  projectDoc  = (ProjectXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm projectForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, projectDoc.Id) as MdiBaseEditViewForm;
                    projectForm.MarkPosition(position);
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 2
0
            public int ValidateHintPathReference(StringBuilder errorLog)
            {
                int errorCount = 0;

                if (!Directory.Exists(FullPackagePath))
                {
                    Console.WriteLine("Warning: Could not find package directory " + FullPackagePath);
                }

                XNamespace ns        = "http://schemas.microsoft.com/developer/msbuild/2003";
                var        nsManager = new XmlNamespaceManager(new NameTable());

                nsManager.AddNamespace("x", ns.NamespaceName);
                var assumedPackagePathStart = AssumedPackagePathStart;
                var xpathPredicate          =
                    String.Format(
                        "//x:Project/x:ItemGroup/x:Reference[starts-with(x:HintPath,'{0}') and string-length(x:HintPath) > ({1} + 1) and string(number(substring(x:HintPath,{1},1))) != 'NaN']",
                        assumedPackagePathStart,
                        assumedPackagePathStart.Length + 1);
                var referencesGroupedByVersion =
                    ProjectXmlDocument.XPathSelectElements(xpathPredicate, nsManager).Select(
                        x => new LibReference(assumedPackagePathStart, x, ns)).ToList().GroupBy(
                        x => x.PathVersionPart).ToList();

                if (referencesGroupedByVersion.Count == 0)
                {
                    if (Directory.Exists(this.fullPackagePath) &&
                        Directory.EnumerateFiles(this.fullPackagePath, "*.dll", SearchOption.AllDirectories).Any())
                    {
                        errorLog.AppendFormat(
                            "Warning: Could not find any reference to {0} in {1}.\r\n    Suggestion: Update-Package -reinstall {0} -ProjectName {1}\r\n",
                            Id,
                            ProjectName);
                    }
                }

                if (referencesGroupedByVersion.Count > 1)
                {
                    errorLog.AppendFormat("There are dll-references from {0} to multiple versions of {1} ({2})\r\n",
                                          ProjectName,
                                          Id,
                                          String.Join(", ", referencesGroupedByVersion.Select(x => x.Key)));
                    errorCount++;
                }

                foreach (var refVerGroup in referencesGroupedByVersion)
                {
                    if (!DirVersionMatches(Version, refVerGroup.Key))
                    {
                        errorLog.AppendFormat(
                            "Reference made from {0} to {1} got hintpath {2}, expected {3}\\???.\r\n    Suggestion: Update-Package –reinstall {1} -ProjectName {0}\r\n",
                            ProjectName,
                            Id,
                            refVerGroup.First().HintPath,
                            AssumedPackagePath);
                        errorCount++;
                    }
                    foreach (var item in refVerGroup.Where(x => x.TargetFrameworkVersion != PreferredFrameworkVersion))
                    {
                        errorLog.AppendFormat(
                            "Reference from {0} to {1} got hintpath {2} targeting wrong framework {3}, should be {4}.\r\n    Suggestion: Update-Package –reinstall {1} -ProjectName {0}\r\n",
                            ProjectName, Id, item.HintPath, item.TargetFrameworkVersion, PreferredFrameworkVersion);
                        errorCount++;
                    }
                }
                return(errorCount);
            }
Ejemplo n.º 3
0
        //结果窗口的定位 by lisuye on 2008年6月13日
        void _resultsListView_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int index = _resultsListView.SelectedItems[0].Index;

            if (index != 0)
            {
                Position    position    = _dictionry[index];
                XmlDocument xmlDocument = (XmlDocument)position.GetDocument();
                Type        type        = xmlDocument.GetType();
                switch (type.Name)
                {
                case "HrXmlDocument":
                    HrXmlDocument       hrDoc  = (HrXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm hrForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, hrDoc.Id) as MdiBaseEditViewForm;
                    hrForm.MarkPosition(position);
                    FindOptions.Singler.CurrentPosition = position;
                    //if (index > 0)
                    //    FindOptions.Singler.StartPosition = _dictionry[index];
                    //else
                    //    FindOptions.Singler.StartPosition = null;
                    break;

                case "InviteBiddingXmlDocument":
                    InviteBiddingXmlDocument bidDoc  = (InviteBiddingXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm      bidForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, bidDoc.Id) as MdiBaseEditViewForm;
                    bidForm.MarkPosition(position);
                    FindOptions.Singler.CurrentPosition = position;
                    FindOptions.Singler.CurrentPosition = position;
                    //if (index > 0)
                    //    FindOptions.Singler.StartPosition = _dictionry[index];
                    //else
                    //    FindOptions.Singler.StartPosition = null;
                    break;

                case "KnowledgeXmlDocument":
                    KnowledgeXmlDocument knowDoc  = (KnowledgeXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm  knowForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, knowDoc.Id) as MdiBaseEditViewForm;
                    knowForm.MarkPosition(position);
                    FindOptions.Singler.CurrentPosition = position;
                    FindOptions.Singler.CurrentPosition = position;
                    //if (index > 0)
                    //    FindOptions.Singler.StartPosition = _dictionry[index];
                    //else
                    //    FindOptions.Singler.StartPosition = null;
                    break;

                case "ProductXmlDocument":
                    ProductXmlDocument  prodcutDoc  = (ProductXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm productForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, prodcutDoc.Id) as MdiBaseEditViewForm;
                    productForm.MarkPosition(position);
                    FindOptions.Singler.CurrentPosition = position;
                    FindOptions.Singler.CurrentPosition = position;
                    //if (index > 0)
                    //    FindOptions.Singler.StartPosition = _dictionry[index];
                    //else
                    //    FindOptions.Singler.StartPosition = null;
                    break;

                case "ProjectXmlDocument":
                    ProjectXmlDocument  projectDoc  = (ProjectXmlDocument)position.GetDocument();
                    MdiBaseEditViewForm projectForm = Service.Workbench.OpenWorkDocument(WorkDocumentType.Edit, projectDoc.Id) as MdiBaseEditViewForm;
                    projectForm.MarkPosition(position);
                    FindOptions.Singler.CurrentPosition = position;
                    FindOptions.Singler.CurrentPosition = position;
                    //if (index > 0)
                    //    FindOptions.Singler.StartPosition = _dictionry[index];
                    //else
                    //    FindOptions.Singler.StartPosition = null;
                    break;

                default:
                    break;
                }
            }
        }