private static string ResolveProjectName(string pageName, out ProjectType projectType)
{
if (pageName != pageName.AsciiOnly('.', ' ').CleanWhitespaces())
throw new ArgumentException($"Page name '{pageName}' does not look well-formed.");
var parts = pageName.Split(new[] { ' ' }, 2);
if (parts.Length != 2)
throw new ArgumentException($"Page name '{pageName}' does not look well-formed.");
var name = parts[0];
var type = parts[1];
switch (type)
{
case "library":
projectType = ProjectType.Library;
break;
case "web site":
projectType = ProjectType.Website;
break;
case "web service":
projectType = ProjectType.Webservice;
break;
case "service":
projectType = ProjectType.Service;
break;
case "console":
projectType = ProjectType.Console;
break;
case "application":
projectType = ProjectType.Windows;
break;
case "cloud role":
projectType = ProjectType.CloudRole;
break;
case "cloud service":
projectType = ProjectType.CloudService;
break;
case "fabric service":
projectType = ProjectType.FabricService;
break;
case "fabric application":
projectType = ProjectType.FabricApplication;
break;
default:
throw new InvalidOperationException($"Unknown project type '{type}'.");
}
return name;
}