-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathProgram.cs
More file actions
68 lines (53 loc) · 2.52 KB
/
Copy pathProgram.cs
File metadata and controls
68 lines (53 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Configuration;
using FuryTech.OdataTypescriptServiceGenerator.Models;
namespace FuryTech.OdataTypescriptServiceGenerator
{
class Program
{
private static string _metadataPath;
private static string _outputDirectory;
private static bool _purgeOutput;
private static string _endpointName;
private static void InitConfig()
{
Logger.Log("Reading config...");
_metadataPath = ConfigurationManager.AppSettings["metadataPath"];
_outputDirectory = ConfigurationManager.AppSettings["output"];
_purgeOutput = bool.Parse(ConfigurationManager.AppSettings["purgeOutput"]);
_endpointName = ConfigurationManager.AppSettings["endpointName"];
}
static void Main(string[] args)
{
try
{
Logger.Log("Starting...");
InitConfig();
var xml = Loader.Load(_metadataPath);
var metadataReader = new MetadataReader(xml);
var directoryManager = new DirectoryManager(_outputDirectory);
var templateRenderer = new TemplateRenderer(_outputDirectory);
directoryManager.PrepareOutput(_purgeOutput);
Logger.Log("Preparing namespace structure");
directoryManager.PrepareNamespaceFolders(metadataReader.EnumTypes);
directoryManager.PrepareNamespaceFolders(metadataReader.EntitySets);
directoryManager.PrepareNamespaceFolders(metadataReader.EntityTypes);
directoryManager.PrepareNamespaceFolders(metadataReader.ComplexTypes);
directoryManager.DirectoryCopy("./StaticContent", _outputDirectory, true);
templateRenderer.CreateContext(_metadataPath, "4.0");
templateRenderer.CreateEntityTypes(metadataReader.EntityTypes);
templateRenderer.CreateComplexTypes(metadataReader.ComplexTypes);
templateRenderer.CreateEnums(metadataReader.EnumTypes);
templateRenderer.CreateServicesForEntitySets(metadataReader.EntitySets);
templateRenderer.CreateAngularModule(new AngularModule(_endpointName, metadataReader.EntitySets));
}
catch (Exception ex)
{
Logger.Error($"Error details: {ex}");
}
Logger.Log("Service generation finished, exiting...");
Logger.Log("Press any key to exit");
Console.ReadKey();
}
}
}