Пример #1
0
    private Type TryGetEnumType(string assemblyname, string typeName)
    {
        var type = ClassHelper.GetClassType(assemblyname, typeName);

        if ((type != null) && type.IsEnum)
        {
            return(type);
        }

        return(null);
    }
Пример #2
0
    /// <summary>
    /// Checks validity of inputs
    /// </summary>
    public override bool IsValid()
    {
        if (!ValidateAssembly)
        {
            return(true);
        }

        // Do not validate values returned via textboxes
        if (SimpleMode)
        {
            return(true);
        }

        // Do not validate if macros are used
        if (MacroProcessor.ContainsMacro(AssemblyName) || MacroProcessor.ContainsMacro(ClassName))
        {
            return(true);
        }

        // Check allow empty setting
        if (AllowEmpty && (String.IsNullOrEmpty(AssemblyName) || String.IsNullOrEmpty(ClassName)))
        {
            return(true);
        }

        try
        {
            // Check assembly and class
            Type classObject = ClassHelper.GetClassType(AssemblyName, ClassName);
            if (classObject != null)
            {
                // Check base class
                if (String.IsNullOrEmpty(BaseClassNames) || (ClassHelper.IsAllowed(classObject, Settings)))
                {
                    return(true);
                }
            }
        }
        catch
        {
        }

        // Set validation error message
        ValidationError = ErrorMessage;

        return(false);
    }
Пример #3
0
    protected void btnGenerate_Click(object sender, EventArgs e)
    {
        string path = Server.MapPath("~/App_Data/CodeTemplates/");

        // Prepare templates
        string classTemplate  = File.ReadAllText(path + "TestClass.Template");
        string methodTemplate = File.ReadAllText(path + "TestMethod.Template");

        // Get the class instance
        string className    = selClass.ClassName;
        string assemblyName = selClass.AssemblyName;

        if (selClass.IsValid())
        {
            Type cls = ClassHelper.GetClassType(assemblyName, className);
            if (cls != null)
            {
                string ns = "Custom";

                int dotIndex = className.LastIndexOfCSafe(".");
                if (dotIndex > 0)
                {
                    ns        = className.Substring(0, dotIndex);
                    className = className.Substring(dotIndex + 1);
                }

                var methodsCode = new StringBuilder();

                if (radSingle.Checked)
                {
                    string methodName = txtMethodName.Text;
                    methodName = ValidationHelper.GetIdentifier(ValidationHelper.GetCodeName(methodName));

                    // Single method
                    AddMethod(methodsCode, methodTemplate, methodName);
                }
                else
                {
                    // All methods
                    AddMethods(methodsCode, methodTemplate, cls);
                    AddProperties(methodsCode, methodTemplate, cls);
                }

                // Generate result
                string result = classTemplate
                                .Replace("##NAMESPACE##", ns)
                                .Replace("##CLASS##", className)
                                .Replace("##METHODS##", methodsCode.ToString());

                txtCode.Text = result;
            }

            // Generate class hierarchy
            if (!radSingle.Checked)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("<ul>");

                int level        = 0;
                int coveredLevel = (chkInherited.Checked ? ValidationHelper.GetInteger(txtInheritance.Text, Int32.MaxValue) : 0);

                if (coveredLevel < 0)
                {
                    coveredLevel = 0;
                }
                if (chkInherited.Checked)
                {
                    txtInheritance.Text = coveredLevel.ToString();
                }

                while (cls != null)
                {
                    sb.Append("<li", (coveredLevel >= level ? " style=\"color: green;\"" : ""), ">", cls.Name, (cls.IsAbstract ? " (abstract)" : ""), "</li>");
                    cls = cls.BaseType;

                    level++;
                }

                sb.Append("</ul>");

                ltlHierarchy.Text = sb.ToString();
            }
        }
        else
        {
            ShowError(GetString(selClass.ErrorMessage));
        }
    }