private void writeGetInfoMethod(TextWriter writer) { CodeGenerationStatics.AddSummaryDocComment( writer, "Creates an info object for this page. Use the Info class constructor instead of this method if you want to reuse the entity setup info object."); writer.WriteLine( "public static Info GetInfo( " + StringTools.ConcatenateWithDelimiter( ", ", entitySetup != null ? WebMetaLogicStatics.GetParameterDeclarations(entitySetup.RequiredParameters) : "", WebMetaLogicStatics.GetParameterDeclarations(requiredParameters), entitySetup != null && entitySetup.OptionalParameters.Count > 0 ? "EntitySetup.OptionalParameterPackage entitySetupOptionalParameterPackage = null" : "", optionalParameters.Count > 0 ? "OptionalParameterPackage optionalParameterPackage = null" : "", "string uriFragmentIdentifier = \"\"") + " ) {"); var entitySetupArgs = entitySetup != null ? "new EntitySetup.Info( " + StringTools.ConcatenateWithDelimiter( ", ", InfoStatics.GetInfoConstructorArgumentsForRequiredParameters(entitySetup.RequiredParameters, parameter => parameter.Name), entitySetup.OptionalParameters.Count > 0 ? "optionalParameterPackage: entitySetupOptionalParameterPackage" : "") + " )" : ""; writer.WriteLine( "return new Info( " + StringTools.ConcatenateWithDelimiter( ", ", entitySetupArgs, InfoStatics.GetInfoConstructorArgumentsForRequiredParameters(requiredParameters, parameter => parameter.Name), optionalParameters.Count > 0 ? "optionalParameterPackage: optionalParameterPackage" : "", "uriFragmentIdentifier: uriFragmentIdentifier") + " );"); writer.WriteLine("}"); }
internal void GenerateCode(TextWriter writer) { writer.WriteLine("namespace " + generalData.Namespace + " {"); writer.WriteLine("public partial class " + generalData.ClassName + " {"); writeInfoClass(writer); OptionalParameterPackageStatics.WriteClassIfNecessary(writer, optionalParameters); ParametersModificationStatics.WriteClassIfNecessary(writer, requiredParameters.Concat(optionalParameters)); if (entitySetup != null) { writer.WriteLine("private EntitySetup es;"); } writer.WriteLine("private Info info;"); if (requiredParameters.Any() || optionalParameters.Any()) { writer.WriteLine("private ParametersModification parametersModification;"); } writer.WriteLine("public override EntitySetupBase EsAsBaseType { get { return " + (entitySetup != null ? "es" : "null") + "; } }"); writer.WriteLine("public override PageInfo InfoAsBaseType { get { return info; } }"); writer.WriteLine( "public override ParametersModificationBase ParametersModificationAsBaseType { get { return " + (requiredParameters.Any() || optionalParameters.Any() ? "parametersModification" : "null") + "; } }"); writeInitEntitySetupMethod(writer); WebMetaLogicStatics.WriteClearInfoMethod(writer, "protected override void "); WebMetaLogicStatics.WriteCreateInfoFromQueryStringMethod( writer, requiredParameters, optionalParameters, "protected override void ", entitySetup != null ? "es.info" : ""); writeGetInfoMethod(writer); generalData.ReadPageStateVariablesFromCodeAndWriteTypedPageStateMethods(writer); WebMetaLogicStatics.WriteCreateInfoFromNewParameterValuesMethod( writer, requiredParameters, optionalParameters, "protected override PageInfo ", entitySetup != null ? "es.CreateInfoFromNewParameterValues()" : ""); writer.WriteLine("}"); writer.WriteLine("}"); }
internal void GenerateCode(TextWriter writer) { writer.WriteLine("namespace " + generalData.Namespace + " {"); writer.WriteLine("public partial class " + generalData.ClassName + " {"); writeInfoClass(writer); OptionalParameterPackageStatics.WriteClassIfNecessary(writer, optionalParameters); ParametersModificationStatics.WriteClassIfNecessary(writer, requiredParameters.Concat(optionalParameters)); writer.WriteLine("internal Info info { get; private set; }"); if (requiredParameters.Any() || optionalParameters.Any()) { writer.WriteLine("internal ParametersModification parametersModification;"); } writer.WriteLine("EntitySetupInfo EntitySetupBase.InfoAsBaseType { get { return info; } }"); writer.WriteLine( "ParametersModificationBase EntitySetupBase.ParametersModificationAsBaseType { get { return " + (requiredParameters.Any() || optionalParameters.Any() ? "parametersModification" : "null") + "; } }"); WebMetaLogicStatics.WriteCreateInfoFromQueryStringMethod(writer, requiredParameters, optionalParameters, "void EntitySetupBase.", ""); WebMetaLogicStatics.WriteCreateInfoFromNewParameterValuesMethod(writer, requiredParameters, optionalParameters, "internal Info ", ""); writer.WriteLine("}"); writer.WriteLine("}"); }