|  |  |  | @ -22,70 +22,50 @@ namespace Volo.Abp.Cli.Utils | 
			
		
	
		
			
				
					|  |  |  |  |             "Blazor" | 
			
		
	
		
			
				
					|  |  |  |  |         }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         private static bool HasParentDirectoryString(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         private static void ValidateParentDirectoryString(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             return projectName.Contains(".."); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         private static bool HasSurrogateOrControlChar(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |             if (projectName.Contains("..")) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |             return projectName.Any(chr => char.IsControl(chr) || char.IsSurrogate(chr)); | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new CliUsageException("Project name cannot contain \"..\"! Specify a different name."); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         private static bool IsIllegalProjectName(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         private static void ValidateSurrogateOrControlChar(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             foreach (var illegalProjectName in IllegalProjectNames) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (projectName.Equals(illegalProjectName, StringComparison.OrdinalIgnoreCase)) | 
			
		
	
		
			
				
					|  |  |  |  |             if (projectName.Any(chr => char.IsControl(chr) || char.IsSurrogate(chr))) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                     return true; | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new CliUsageException("Project name cannot contain surrogate or control characters! Specify a different name."); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return false; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         private static bool HasIllegalKeywords(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         private static void ValidateIllegalProjectName(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             foreach (var illegalKeyword in IllegalKeywords) | 
			
		
	
		
			
				
					|  |  |  |  |             foreach (var illegalProjectName in IllegalProjectNames) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (projectName.Equals(illegalKeyword, StringComparison.OrdinalIgnoreCase)) | 
			
		
	
		
			
				
					|  |  |  |  |                 if (projectName.Equals(illegalProjectName, StringComparison.OrdinalIgnoreCase)) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     return true; | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new CliUsageException("Project name cannot be \"" + illegalProjectName + "\"! Specify a different name."); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return false; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         public static bool IsValid(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         private static void ValidateIllegalKeywords(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             if (projectName == null) | 
			
		
	
		
			
				
					|  |  |  |  |             foreach (var illegalKeyword in IllegalKeywords) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new CliUsageException("Project name cannot be empty!"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (HasSurrogateOrControlChar(projectName)) | 
			
		
	
		
			
				
					|  |  |  |  |                 if (projectName.Contains(illegalKeyword)) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                 return false; | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new CliUsageException("Project name cannot contain the word \"" + illegalKeyword + "\". Specify a different name."); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (HasParentDirectoryString(projectName)) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 return false; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (IsIllegalProjectName(projectName)) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 return false; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if (HasIllegalKeywords(projectName)) | 
			
		
	
		
			
				
					|  |  |  |  |         public static void Validate(string projectName) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |                 return false; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             return true; | 
			
		
	
		
			
				
					|  |  |  |  |             ValidateSurrogateOrControlChar(projectName); | 
			
		
	
		
			
				
					|  |  |  |  |             ValidateParentDirectoryString(projectName); | 
			
		
	
		
			
				
					|  |  |  |  |             ValidateIllegalProjectName(projectName); | 
			
		
	
		
			
				
					|  |  |  |  |             ValidateIllegalKeywords(projectName); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |