コード例 #1
0
        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();
        }
コード例 #2
0
        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();
        }