Пример #1
0
        public virtual string GetDefaultNamespace(string fileName)
        {
            DotNetNamingPolicy pol = Policies.Get <DotNetNamingPolicy> ();

            string root         = null;
            string dirNamespc   = null;
            string defaultNmspc = !string.IsNullOrEmpty(DefaultNamespace)
                                ? DefaultNamespace
                                : SanitisePotentialNamespace(Name) ?? "Application";

            string dirname         = Path.GetDirectoryName(fileName);
            string relativeDirname = null;

            if (!String.IsNullOrEmpty(dirname))
            {
                relativeDirname = GetRelativeChildPath(dirname);
                if (string.IsNullOrEmpty(relativeDirname) || relativeDirname.StartsWith(".."))
                {
                    relativeDirname = null;
                }
            }

            if (relativeDirname != null)
            {
                try {
                    switch (pol.DirectoryNamespaceAssociation)
                    {
                    case DirectoryNamespaceAssociation.PrefixedFlat:
                        root = defaultNmspc;
                        goto case DirectoryNamespaceAssociation.Flat;

                    case DirectoryNamespaceAssociation.Flat:
                        dirNamespc = SanitisePotentialNamespace(relativeDirname);
                        break;

                    case DirectoryNamespaceAssociation.PrefixedHierarchical:
                        root = defaultNmspc;
                        goto case DirectoryNamespaceAssociation.Hierarchical;

                    case DirectoryNamespaceAssociation.Hierarchical:
                        dirNamespc = SanitisePotentialNamespace(GetHierarchicalNamespace(relativeDirname));
                        break;
                    }
                } catch (IOException ex) {
                    LoggingService.LogError("Could not determine namespace for file '" + fileName + "'", ex);
                }
            }

            if (dirNamespc != null && root == null)
            {
                return(dirNamespc);
            }
            if (dirNamespc != null && root != null)
            {
                return(root + "." + dirNamespc);
            }
            return(defaultNmspc);
        }
Пример #2
0
        public async Task MDResourceNamingPolicy()
        {
            string   solFile = Util.GetSampleProject("console-project", "ConsoleProject.sln");
            Solution sol     = (Solution)await Services.ProjectService.ReadWorkspaceItem(Util.GetMonitor(), solFile);

            var p = (DotNetProject)sol.Items [0];

            var pol = new DotNetNamingPolicy(DirectoryNamespaceAssociation.Flat, ResourceNamePolicy.FileName);

            p.Policies.Set(pol);

            var f = p.AddFile(p.BaseDirectory.Combine("foo/SomeFile.txt"), BuildAction.EmbeddedResource);

            Assert.AreEqual("SomeFile.txt", f.ResourceId);

            await p.SaveAsync(Util.GetMonitor());

            var p2 = (DotNetProject)await Services.ProjectService.ReadSolutionItem(Util.GetMonitor(), p.FileName);

            f = p2.GetProjectFile(f.FilePath);
            Assert.AreEqual("SomeFile.txt", f.ResourceId);
        }
        public void LoadFrom(DotNetNamingPolicy policy)
        {
            checkAssociateNamespacesDirectories.Active = (policy.DirectoryNamespaceAssociation != DirectoryNamespaceAssociation.None);
            checkDefaultAsRoot.Active = policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedFlat ||
                                        policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedHierarchical;
            radioHierarch.Active = policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.Hierarchical ||
                                   policy.DirectoryNamespaceAssociation == DirectoryNamespaceAssociation.PrefixedHierarchical;

            if (policy.ResourceNamePolicy == ResourceNamePolicy.FileFormatDefault)
            {
                checkVSStyleResourceNames.Inconsistent = true;
            }
            else
            {
                checkVSStyleResourceNames.Active       = policy.ResourceNamePolicy == ResourceNamePolicy.MSBuild;
                checkVSStyleResourceNames.Inconsistent = false;
            }

            if (firstLoad)
            {
                initialResourceNaming = policy.ResourceNamePolicy;
                firstLoad             = false;
            }
        }
Пример #4
0
		public async Task MDResourceNamingPolicy ()
		{
			string solFile = Util.GetSampleProject ("console-project", "ConsoleProject.sln");
			Solution sol = (Solution) await Services.ProjectService.ReadWorkspaceItem (Util.GetMonitor (), solFile);
			var p = (DotNetProject) sol.Items [0];

			var pol = new DotNetNamingPolicy (DirectoryNamespaceAssociation.Flat, ResourceNamePolicy.FileName);
			p.Policies.Set (pol);

			var f = p.AddFile (p.BaseDirectory.Combine ("foo/SomeFile.txt"), BuildAction.EmbeddedResource);
			Assert.AreEqual ("SomeFile.txt", f.ResourceId);

			await p.SaveAsync (Util.GetMonitor ());

			var p2 = (DotNetProject) await Services.ProjectService.ReadSolutionItem (Util.GetMonitor (), p.FileName);
			f = p2.GetProjectFile (f.FilePath);
			Assert.AreEqual ("SomeFile.txt", f.ResourceId);
		}