protected override void RunCore() { if (LoadConfiguration()) { List <Exception> exs = new List <Exception>(); try { ClassTemplate template = new ClassTemplate(); template.Class = ContractAgentFactoryClassDefinition.GetAgentFactory(_Configuration.ContractServiceInterfaces, _Configuration.Name); template.Output.File = String.Format(@"{0}.cs", template.Class.Name); template.Render(); } catch (Exception ex) { exs.Add(ex); } if (exs.Count > 0) { ErrorTemplate errortemplate = new ErrorTemplate(); ErrorTemplate.Exceptions = exs; errortemplate.Output.File = "Error.log"; errortemplate.Render(); throw new Exception("See generated output for errors."); } } }
static void Main(string[] args) { //StreamWriter y = null; try { var x = ContractDefinition.LoadFromFile(@"XMLFile1.xml"); string subfolder = "Contract\\Interfaces\\"; if (!Directory.Exists(subfolder)) { Directory.CreateDirectory(subfolder); } foreach (var item in x.ContractServiceInterfaces) { File.WriteAllText(subfolder + item.Name + ".cs", item.GenerateCode()); } foreach (var item in x.ContractServiceInterfaces) { File.WriteAllText(subfolder + item.Name + "Agent.cs", ((ContractAgentInterfaceDefinition)item).GenerateCode()); } subfolder = "Contract\\Agent\\"; if (!Directory.Exists(subfolder)) { Directory.CreateDirectory(subfolder); } foreach (var item in x.ContractServiceInterfaces) { File.WriteAllText(subfolder + item.Name.Substring(1) + "Agent.cs", ((ContractAgentClassDefinition)item).GenerateCode()); } File.WriteAllText(subfolder + x.Name + "ProviderFactory.cs", ContractAgentFactoryClassDefinition.GetAgentFactory(x.ContractServiceInterfaces, x.Name).GenerateCode()); subfolder = "Service\\"; if (!Directory.Exists(subfolder)) { Directory.CreateDirectory(subfolder); } foreach (var item in x.ContractServiceInterfaces) { File.WriteAllText(subfolder + item.Name.Substring(1) + ".cs", ((ContractServiceClassDefinition)item).GenerateCode()); } foreach (var item in x.ContractServiceInterfaces) { File.WriteAllText(subfolder + item.Name.Substring(1) + ".svc", ((ContractServiceHostDefinition)item).GenerateCode()); } subfolder = "Contract\\Domain\\"; if (!Directory.Exists(subfolder)) { Directory.CreateDirectory(subfolder); } foreach (var item in x.DomainObjectClasses) { File.WriteAllText(subfolder + item.Name + ".cs", ((DomainObjectClassDefinition)item).GenerateCode()); } } finally { //y.Close(); } }