@@ -9,8 +9,6 @@ namespace WebApiToTypeScript.Views
99{
1010 public class ViewsService : ServiceAware
1111 {
12- private string ViewsSourceDirectory { get ; set ; }
13-
1412 private List < ViewNode > FeatureViews { get ; }
1513 = new List < ViewNode > ( ) ;
1614
@@ -21,14 +19,24 @@ public TypeScriptBlock CreateViewsBlock()
2119
2220 public TypeScriptBlock WriteViewsToBlock ( TypeScriptBlock viewsBlock )
2321 {
24- ViewsSourceDirectory = Path . GetFullPath ( Config . ViewsSourceDirectory ) ;
22+ foreach ( var featureView in FeatureViews )
23+ {
24+ WriteViewEntry ( viewsBlock , featureView ) ;
25+ }
26+
27+ return viewsBlock ;
28+ }
29+
30+ public void AddViews ( )
31+ {
32+ var viewsSourceDirectory = Path . GetFullPath ( Config . ViewsSourceDirectory ) ;
2533
26- var viewFiles = Directory . GetFiles ( ViewsSourceDirectory , "*.view. *", SearchOption . AllDirectories ) ;
34+ var viewFiles = Directory . GetFiles ( viewsSourceDirectory , $ "* { Config . ViewsPattern } *", SearchOption . AllDirectories ) ;
2735
2836 foreach ( var viewFile in viewFiles )
2937 {
3038 var featureViewPath = Path . GetFullPath ( viewFile )
31- . Split ( new [ ] { $@ "{ ViewsSourceDirectory } \" } , StringSplitOptions . RemoveEmptyEntries )
39+ . Split ( new [ ] { $@ "{ viewsSourceDirectory } \" } , StringSplitOptions . RemoveEmptyEntries )
3240 . Last ( ) ;
3341
3442 var parts = featureViewPath
@@ -54,7 +62,7 @@ public TypeScriptBlock WriteViewsToBlock(TypeScriptBlock viewsBlock)
5462 . ToList ( ) ;
5563
5664 var viewNode = FeatureViews . Single ( v => v . Name == featureNamespace ) ;
57- var nameThusFar = subFeatures . Count == 0 // instead should i skip last or first or something
65+ var nameThusFar = subFeatures . Count == 0
5866 ? featureNamespace
5967 : string . Empty ;
6068
@@ -81,7 +89,7 @@ public TypeScriptBlock WriteViewsToBlock(TypeScriptBlock viewsBlock)
8189
8290 var fullViewNameInKebabCase = parts
8391 . Last ( )
84- . Split ( new [ ] { ".view." } , StringSplitOptions . RemoveEmptyEntries )
92+ . Split ( new [ ] { Config . ViewsPattern } , StringSplitOptions . RemoveEmptyEntries )
8593 . First ( ) ;
8694
8795 var fullViewNameInPascalCase = Helpers . ToPascalCaseFromKebabCase ( fullViewNameInKebabCase ) ;
@@ -90,25 +98,19 @@ public TypeScriptBlock WriteViewsToBlock(TypeScriptBlock viewsBlock)
9098 ? Regex . Replace ( fullViewNameInPascalCase , $ "^{ nameThusFar } ", string . Empty )
9199 : fullViewNameInPascalCase ;
92100
93- viewNode . ViewEntries . Add ( new ViewEntry {
101+ viewNode . ViewEntries . Add ( new ViewEntry
102+ {
94103 Name = viewName ,
95104 Path = featureViewPath . Replace ( @"\" , "/" )
96105 } ) ;
97106 }
98-
99- foreach ( var featureView in FeatureViews )
100- {
101- WriteViewEntry ( viewsBlock , featureView ) ;
102- }
103-
104- return viewsBlock ;
105107 }
106108
107109 private void WriteViewEntry ( TypeScriptBlock viewsBlock , ViewNode featureViewNode , bool isChild = false )
108110 {
109- var viewNamespace = isChild
110- ? string . Empty
111- : ".Views" ;
111+ var viewNamespace = Config . UseViewsGroupingNamespace && ! isChild
112+ ? ".Views"
113+ : string . Empty ;
112114
113115 var featureBlock = viewsBlock
114116 . AddAndUseBlock ( $ "export namespace { featureViewNode . Name } { viewNamespace } ") ;
0 commit comments