PageTypeBuilder.Specs.Helpers.AssemblyDefinitionExtensions.GlobalPropertySettingsClass C# (CSharp) Метод

GlobalPropertySettingsClass() публичный статический Метод

public static GlobalPropertySettingsClass ( this assembly, string className = "MySettings", string displayName = "Settings display name", string description = "Description", bool isDefault = null, bool overwriteExistingSettings = true, string updateSettingsImplementation = "", string matchMethodBody = "return DisplayName.Equals(wrapper.DisplayName);" ) : CodeTypeDeclaration
assembly this
className string
displayName string
description string
isDefault bool
overwriteExistingSettings bool
updateSettingsImplementation string
matchMethodBody string
Результат System.CodeDom.CodeTypeDeclaration
        public static CodeTypeDeclaration GlobalPropertySettingsClass(
            this AssemblyDefinition assembly,
            string className = "MySettings",
            string displayName = "Settings display name",
            string description = "Description",
            bool? isDefault = null,
            bool overwriteExistingSettings = true,
            string updateSettingsImplementation = "",
            string matchMethodBody = "return DisplayName.Equals(wrapper.DisplayName);")
        {
            var isDefaultString = isDefault.ToString().ToLower();
            if(isDefault == null)
            {
                isDefaultString = "null";
            }

            var type = assembly.Class(className)
                .Implementing<IUpdateGlobalPropertySettings<TinyMCESettings>>()
                .PublicMethod(x =>
                        x.Named("UpdateSettings")
                            .Parameter<TinyMCESettings>("settings")
                            .Body(updateSettingsImplementation))
                .Property<string>(x =>
                                  x.Named("DisplayName")
                                      .Returning(displayName))
                .Property<bool?>(x =>
                                 x.Named("IsDefault")
                                     .GetterBody("return {0};", isDefaultString))
                .Property<string>(x => 
                                  x.Named("Description")
                                      .Returning(description))
                .PublicMethod<bool>(x =>
                              x.Named("Match")
                                  .Parameter<PropertySettingsWrapper>("wrapper")
                                  .Body(matchMethodBody))
                .PublicMethod<int>(x =>
                             x.Named("GetSettingsHashCode")
                                 .Parameter<TinyMCESettings>("settings")
                                 .Body("return settings.Width;"))
                .Property<bool>(x =>
                                x.Named("OverWriteExistingSettings")
                                    .Returning(overwriteExistingSettings));

            return type;
        }