protected override void Write() { cw.WriteUsing("System.Runtime.Serialization"); cw.WriteUsing("System.Collections.Generic"); cw.WriteCommentLine("Assembly required: ServiceStack.Interfaces.dll"); cw.WriteUsing("ServiceStack.ServiceHost"); cw.WriteUsing("ServiceStack.ServiceInterface"); cw.WriteUsing("ServiceStack.ServiceInterface.ServiceModel"); cw.WriteLine(); environment.BaseNamespace = ServicesLayerConfig.ServicesInterfacesNamespace; oph = new OperationHelper(cw, environment); intfh = new ServicesInterfacesHelper(cw, environment); ns.BeginScope(environment.BaseNamespace); Dictionary <string, List <string> > data = new Dictionary <string, List <string> >(); List <string> patternNames = new List <string>(); foreach (IPatternConfig pattern in this.genie.Lamp.Config.Patterns) { patternNames.Add(pattern.Name); } data.Add("patterns", patternNames); if (this.genie.Lamp.Config.Patterns.Localization != null) { List <string> localizationDetails = new List <string>(); string satelliteAssemblyName = DomainLayerConfig.LocalizationParams.ValueByName("SatelliteAssemblyName", String.Empty); if (!String.IsNullOrEmpty(satelliteAssemblyName)) { satelliteAssemblyName = "\"" + satelliteAssemblyName + "\""; } localizationDetails.Add(satelliteAssemblyName); data.Add("pattern.Localization", localizationDetails); } string content = GenieLamp.Core.Utils.Text.ReadFromResource( this.GetType().Assembly, "Templates.ServicesInterfaces.cs"); var template = new TextTemplate.Template <Dictionary <string, List <string> > >("data"); template.Content = genie.Config.Macro.Subst(content); // Substitute all macros before compiling template to avoid errors cw.WriteText(template.Execute(data)); // cw.WriteText(this.GetType().Assembly, // "Templates.ServicesInterfaces.cs", // genie.Config.Macro); cw.WriteLine(); cw.WriteText(this.GetType().Assembly, "Templates.StackServicesInterfaces.cs", genie.Config.Macro); cw.WriteLine(); ProcessEntities(); ns.EndScope(); }
private void WriteTemplate(string resourceName) { Dictionary <string, List <string> > data = new Dictionary <string, List <string> >(); List <string> patternNames = new List <string>(); foreach (IPatternConfig pattern in Patterns) { patternNames.Add(pattern.Name); } data.Add("patterns", patternNames); if (Patterns.Registry != null) { List <string> registryDetails = new List <string>(); registryDetails.Add(environment.ToTypeName(Patterns.Registry.RegistryEntity.Entity, true)); registryDetails.Add(environment.ToTypeName(Patterns.Registry.TypesEntity.Entity, true)); registryDetails.Add(environment.ToTypeName(Patterns.Registry.TypesEntity.Entity, false)); registryDetails.Add(Patterns.Registry.TypesEntity.FullNameAttribute.Name); registryDetails.Add(Patterns.Registry.RegistryEntity.Entity.Name); data.Add("pattern.Registry", registryDetails); } if (Patterns.Audit != null) { List <string> auditDetails = new List <string>(); auditDetails.Add(Patterns.Audit.CreatedByAttributeName); auditDetails.Add(Patterns.Audit.CreatedDateAttributeName); auditDetails.Add(Patterns.Audit.LastModifiedByAttributeName); auditDetails.Add(Patterns.Audit.LastModifiedDateAttributeName); data.Add("pattern.Audit", auditDetails); } if (Patterns.Localization != null) { List <string> localizationDetails = new List <string>(); string satelliteAssemblyName = DomainLayerConfig.LocalizationParams.ValueByName("SatelliteAssemblyName", String.Empty); if (!String.IsNullOrEmpty(satelliteAssemblyName)) { satelliteAssemblyName = "\"" + satelliteAssemblyName + "\""; } localizationDetails.Add(satelliteAssemblyName); data.Add("pattern.Localization", localizationDetails); } string content = GenieLamp.Core.Utils.Text.ReadFromResource( this.GetType().Assembly, resourceName); var template = new TextTemplate.Template <Dictionary <string, List <string> > >("data"); template.Content = genie.Config.Macro.Subst(content); // Substitute all macros before compiling template to avoid errors cw.WriteText(template.Execute(data)); cw.WriteLine(); }