public OutputObject GenerateWebServiceControllerClass(SqlTable sqlTable, List <string> namespaceIncludes, IDictionary <string, bool> options)
        {
            if (sqlTable == null)
            {
                throw new ArgumentException("Sql table cannot be null");
            }

            string class_name = NameFormatter.ToCSharpClassName(sqlTable.Name);

            var output = new OutputObject
            {
                Name = $"{class_name}Controller.cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Reflection;");
            sb.AppendLine();
            sb.AppendLine("using Microsoft.AspNetCore.Mvc;");
            sb.AppendLine();

            if (namespaceIncludes != null && namespaceIncludes.Count > 1)
            {
                sb.AppendLine(GenerateNamespaceIncludes(namespaceIncludes));
            }

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}.{NameFormatter.ToCSharpPropertyName(sqlTable.Database.Name)}");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + "[ApiController]");

            if (options[GENERATE_BASE_CONTROLLER])
            {
                sb.AppendLine(AddTabs(1) + $"public class {sqlTable.Name}Controller : ControllerBase");
            }
            else
            {
                sb.AppendLine(AddTabs(1) + $"public class {sqlTable.Name}Controller : ApiController");
            }

            sb.AppendLine(AddTabs(1) + "{");

            sb.AppendLine(AddTabs(2) + $"public {sqlTable.Name}Controller() {{ }}");
            sb.AppendLine();

            // controllers
            sb.AppendLine(GenerateGetById(sqlTable.Name));
            sb.AppendLine();

            sb.AppendLine(GenerateGetAll(sqlTable.Name));
            sb.AppendLine();

            sb.AppendLine("}");

            output.Body = sb.ToString();
            return(output);
        }
        public OutputObject GeneratePagingClass()
        {
            var output = new OutputObject
            {
                Name = PAGING_DATA_CLASS_NAME + ".cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine("using Newtonsoft.Json;");
            sb.AppendLine();

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + "public class PagingData");
            sb.AppendLine(AddTabs(1) + "{");
            sb.AppendLine(AddTabs(2) + $"[JsonProperty(PropertyName = \"skip\")]");
            sb.AppendLine(AddTabs(2) + "public int Skip { get; set; }");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + $"[JsonProperty(PropertyName = \"take\")]");
            sb.AppendLine(AddTabs(2) + "public int Take { get; set; }");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "public PagingData() { }");
            sb.AppendLine(AddTabs(1) + "}");

            sb.Append("}");

            output.Body = sb.ToString();
            return(output);
        }
        public OutputObject GenerateWebServiceBaseControllerClass()
        {
            var output = new OutputObject
            {
                Name = CONTROLLER_BASE_CLASS_NAME + ".cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + $"public class ControllerBase : ApiController");
            sb.AppendLine(AddTabs(1) + "{");
            sb.AppendLine(AddTabs(2) + "// Include whatever logic here that is to be shared by all controllers");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(2) + $"public ControllerBase() {{ }}");
            sb.AppendLine(AddTabs(1) + "}");

            sb.Append("}");

            output.Body = sb.ToString();
            return(output);
        }
        public OutputObject GenerateWebServiceBaseControllerClass()
        {
            var output = new OutputObject
            {
                Name = CONTROLLER_BASE_CLASS_NAME + ".cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine("using Microsoft.AspNetCore.Mvc;");
            sb.AppendLine("using System;");
            sb.AppendLine("using TelemetryManager;");
            sb.AppendLine();

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + $"public class ApiControllerBase : ControllerBase");

            sb.AppendLine(AddTabs(1) + "{");
            sb.AppendLine(AddTabs(2) + "protected readonly ILogger _Log;");
            sb.AppendLine(AddTabs(2) + "protected readonly IMetrics _Metric;");
            sb.AppendLine(AddTabs(2) + "protected readonly IConfigProvider _ConfigProvider;");
            sb.AppendLine(AddTabs(2) + "protected readonly IDataProvider _Datasource;");
            sb.AppendLine(AddTabs(2) + "protected readonly ISecurityProvider _SecurityProvider;");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "public ApiControllerBase(IConfigProvider config, ILogger log, IMetrics metrics, IDataProvider datasource, ISecurityProvider securityProvider)");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "_ConfigProvider = config;");
            sb.AppendLine(AddTabs(3) + "_Log = log;");
            sb.AppendLine(AddTabs(3) + "_Metric = metrics;");
            sb.AppendLine(AddTabs(3) + "_Datasource = datasource;");
            sb.AppendLine(AddTabs(3) + "_SecurityProvider = securityProvider;");
            sb.AppendLine(AddTabs(2) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "/// <summary>");
            sb.AppendLine(AddTabs(2) + "/// Default exception handling for API calls");
            sb.AppendLine(AddTabs(2) + "/// </summary>");
            sb.AppendLine(AddTabs(2) + "protected ActionResult<ResponseBase> HandleException(Exception ex)");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "_Log.Error(ex);");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "    if (_ConfigProvider.GetboolKey(\"config.exceptions.returned\"))");
            sb.AppendLine(AddTabs(2) + "        return StatusCode(500, new ResponseBase(false, ex.Message));");
            sb.AppendLine(AddTabs(2) + "    else");
            sb.AppendLine(AddTabs(2) + "        return StatusCode(500, ResponseBase.SERVER_ERROR);");
            sb.AppendLine(AddTabs(2) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(1) + "}");

            sb.Append("}");

            output.Body = sb.ToString();
            return(output);
        }
        public OutputObject GenerateResponseBaseClass()
        {
            var output = new OutputObject
            {
                Name = RESPONSE_BASE_CLASS_NAME + ".cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}");
            sb.AppendLine("{");

            // response base class

            sb.AppendLine(AddTabs(1) + "public class ResponseBase");
            sb.AppendLine(AddTabs(1) + "{");

            sb.AppendLine(AddTabs(2) + "public static readonly ResponseBase MISSING_OR_INVALID_ARGUMENTS = new ResponseBase(false, \"One or more parameters were missing or invalid\");");
            sb.AppendLine(AddTabs(2) + "public static readonly ResponseBase SERVER_ERROR = new ResponseBase(false, \"An server error occurred\");");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "public static readonly ResponseBase DEFAULT_FAILURE = new ResponseBase(false, \"A server side error occurred\");");
            sb.AppendLine(AddTabs(2) + "public static readonly ResponseBase DEFAULT_SUCCESS = new ResponseBase(true, string.Empty);");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "public bool Success { get; set; }");
            sb.AppendLine(AddTabs(2) + "public string Message { get; set; }");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "public ResponseBase(bool success, string message)");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "Success = success;");
            sb.AppendLine(AddTabs(3) + "Message = message");
            sb.AppendLine(AddTabs(2) + "}");

            sb.AppendLine(AddTabs(1) + "}");
            sb.AppendLine();

            // container response class

            sb.AppendLine(AddTabs(1) + "public class ResponseObject<T> : ResponseBase");
            sb.AppendLine(AddTabs(1) + "{");
            sb.AppendLine(AddTabs(2) + "public T Data { get; set; }");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "public ResponseObject(bool success, string message, T data) : base(success, message)");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "Data = data;");
            sb.AppendLine(AddTabs(2) + "}");

            sb.AppendLine(AddTabs(1) + "}");

            sb.Append("}");

            output.Body = sb.ToString();
            return(output);
        }
Пример #6
0
        public static OutputObject GenerateCountAllProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.CountAll, null);

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();
                sb.AppendLine("SELECT\tCOUNT(*)");
                sb.AppendLine("FROM\t[" + sql_table.Name + "]");
                sb.AppendLine("WHERE\t[Disabled] = 0");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #7
0
        // C# Code Generation
        public static OutputObject GenerateCSharpOrmClass(SqlTable sql_table, List<string> namespace_includes, bool include_class_decoration, bool include_base_class_ref, bool include_is_dirty_flag)
        {
            if (sql_table == null)
                    return null;

                string class_name       = NameFormatter.ToCSharpClassName(sql_table.Name);
                int longest_column      = GetLongestColumnLength(sql_table);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                #region Header block

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Text;");
                sb.AppendLine();

                // not needed here
                //sb.AppendLine(GenerateNamespaceIncludes(namespace_includes, null));

                #endregion

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                //sb.AppendLine(AddTabs(1) + "[Serializable]");

                if (include_class_decoration)
                    sb.AppendLine(AddTabs(1) + "[SQLTableAttribute(DataBaseName=\"" + sql_table.Database.Name + "\", TableName=\"" + sql_table.Name + "\")]");

                if (include_base_class_ref)
                    sb.AppendLine(AddTabs(1) + "public partial class " + class_name + " : BaseClass");
                else
                    sb.AppendLine(AddTabs(1) + "public partial class " + class_name);

                sb.AppendLine(AddTabs(1) + "{");

                #region Constants Bloc
                ////////////////////////////////////////////////////////////////////////////////

                #region sample output
                //#region Constants
                //
                //    public static class Db
                //    {
                //        public static string Id             = "Id";
                //    }
                //
                //#endregion
                #endregion

                sb.AppendLine(AddTabs(2) + "#region Constants");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "public static class Db");
                sb.AppendLine(AddTabs(3) + "{");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // public static string Id = "Id";
                    sb.AppendLine(AddTabs(4) + "public static string " + PadCSharpVariableName(NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column) + "= \"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\";");
                }

                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region Fields bloc
                ////////////////////////////////////////////////////////////////////////////////

                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // private string _State;
                    sb.AppendLine(AddTabs(3) + "protected " + NameFormatter.SQLTypeToCSharpType(sql_column) + " " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ";");
                }

                if (include_is_dirty_flag)
                {
                    sb.AppendLine();
                    sb.AppendLine(AddTabs(3) + "protected bool _IsDirty;");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region Properties Block
                ////////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    #region Sample Output
                    //[SQLColumn(ColumnName = "foo", SQLType = "int", Precision = "4", IsPrimaryKey = "false", IsNullable = "false")]
                    //public string SomeID
                    //{
                    //  get { return _SomeID; }
                    //  set { _SomeID = value; }
                    //}
                    #endregion Sample Output

                    if (include_class_decoration)
                    {
                        sb.Append(AddTabs(3) + "[SQLColumnAttribute(");
                        sb.Append("ColumnName=\"" + sql_column.Name + "\", ");
                        sb.Append("SQLType=SqlDbType." + sql_column.DataType + ", ");
                        sb.Append("Length=" + sql_column.Length.ToString() + ", ");
                        sb.Append("IsPrimaryKey=" + sql_column.IsPk.ToString().ToLower() + ", ");
                        sb.Append("IsNullable=" + sql_column.IsNullable.ToString().ToLower());
                        sb.Append(")]" + Environment.NewLine);
                    }

                    sb.AppendLine(AddTabs(3) + "public virtual " + NameFormatter.SQLTypeToCSharpType(sql_column) + " " + NameFormatter.ToCSharpPropertyName(sql_column.Name));
                    sb.AppendLine(AddTabs(3) + "{");
                    sb.AppendLine(AddTabs(4) + "get { return " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + "; }");

                    if (include_is_dirty_flag)
                    {
                        sb.AppendLine(AddTabs(4) + "set");
                        sb.AppendLine(AddTabs(4) + "{");
                        sb.AppendLine(AddTabs(5) + "if (" + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + " != value)");
                        sb.AppendLine(AddTabs(5) + "{");
                        sb.AppendLine(AddTabs(6) + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + " = value;");
                        sb.AppendLine(AddTabs(6) + "_IsDirty = true;");
                        sb.AppendLine(AddTabs(5) + "}");
                        sb.AppendLine(AddTabs(4) + "}");
                    }

                    else
                    {
                        sb.AppendLine(AddTabs(4) + "set { " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + " = value; }");
                    }

                    sb.AppendLine(AddTabs(3) + "}");
                }

                if (include_is_dirty_flag)
                {
                    sb.AppendLine();
                    sb.AppendLine(AddTabs(3) + "public bool IsDirty");
                    sb.AppendLine(AddTabs(3) + "{");
                    sb.AppendLine(AddTabs(4) + "get { return _IsDirty; }");
                    sb.AppendLine(AddTabs(4) + "set { _IsDirty = value; }");
                    sb.AppendLine(AddTabs(3) + "}");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                #region Default CTOR
                ////////////////////////////////////////////////////////////////////////////////

                #region sample output
                //public Foo()
                //{
                //    Reset();
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + NameFormatter.ToCSharpClassName(sql_table.Name) + "()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "Reset();");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion Default CTOR

                #region Copy Object CTOR
                ////////////////////////////////////////////////////////////////////////////////

                #region Sample Output
                //public Foo(TbCountry new_tbCountry)
                //{
                //    _CountryID      = new_tbCountry._CountryID;
                //    _OldCountryID   = new_tbCountry._OldCountryID;
                //    _CountryName    = new_tbCountry._CountryName;
                //    _Side           = new_tbCountry._Side;
                //    _Disabled       = new_tbCountry._Disabled;
                //}
                #endregion Sample Output

                //string new_object_name = "new_" + sql_table.Name;

                //sb.AppendLine(AddTabs(3) + "public " + NameFormatter.ToCSharpClassName(sql_table.Name) + "(" + NameFormatter.ToCSharpClassName(sql_table.Name) + " " + new_object_name + ")");
                //sb.AppendLine(AddTabs(3) + "{");

                //foreach (var sql_column in sql_table.Columns.Values)
                //{
                //    sb.Append(AddTabs(4));
                //    sb.Append(PadCSharpVariableName(NameFormatter.ToCSharpPrivateVariable(sql_column.Name), longest_column, 1));
                //    sb.Append("= " + new_object_name + "." + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ";" + Environment.NewLine);
                //}

                //if (include_is_dirty_flag)
                //{
                //    sb.Append(Environment.NewLine);
                //    sb.Append(AddTabs(4));
                //    sb.Append(PadCSharpVariableName("_IsDirty", GetLongestColumnLength(sql_table)));
                //    sb.Append("= " + new_object_name + "._IsDirty;" + Environment.NewLine);
                //}

                //sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion Copy CTOR

                #region Copy by field CTOR
                ////////////////////////////////////////////////////////////////////////////////
                /*
                sb.AppendLine(AddTabs(3) + "public " + NameFormatter.ToCSharpClassName(sql_table.Name) + "(" + NameFormatter.GenerateCSharpFunctionArgs(sql_table, eIncludedFields.All) + ")");
                sb.AppendLine(AddTabs(3) + "{");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.Append(AddTabs(4));
                    sb.Append(PadCSharpVariableName(NameFormatter.ToCSharpPrivateVariable(sql_column.Name), longest_column, 1));
                    sb.Append("= " + NameFormatter.ToCSharpLocalVariable(sql_column.Name) + ";" + Environment.NewLine);
                }

                if (include_is_dirty_flag)
                {
                    sb.AppendLine();
                    sb.AppendLine(AddTabs(4) + "_IsDirty = true;");
                }

                sb.AppendLine(AddTabs(3) + "}");

                */
                ////////////////////////////////////////////////////////////////////////////////
                #endregion Overloaded CTOR

                sb.AppendLine();

                #region Reset Method
                //////////////////////////////////////////////////////////////////////////////

                if (include_base_class_ref)
                    sb.AppendLine(AddTabs(3) + "public virtual override void Reset()");
                else
                    sb.AppendLine(AddTabs(3) + "public virtual void Reset()");

                sb.AppendLine(AddTabs(3) + "{");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // _State   = string.Empty;
                    sb.Append(AddTabs(4));
                    sb.Append(PadCSharpVariableName(NameFormatter.ToCSharpPrivateVariable(sql_column.Name), longest_column, 0));
                    sb.Append("= " +  NameFormatter.GetCSharpDefaultValue(sql_column) + ";" + Environment.NewLine);
                }

                if (include_is_dirty_flag)
                {
                    sb.AppendLine();
                    sb.AppendLine(AddTabs(4) + "_IsDirty = false;");
                }

                sb.AppendLine(AddTabs(3) + "}");

                //////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();

                #region ToString Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Sample Output
                //public override string ToString()
                //{
                //    StringBuilder sb = new StringBuilder();
                //
                //    sb.AppendLine("CountryID:" + _CountryID.ToString());
                //    sb.AppendLine("OfficialName:" + _OfficialName);
                //    sb.AppendLine("CommonName:" + _CommonName);
                //    sb.AppendLine("CapitolName:" + _CapitolName);
                //    sb.AppendLine("Disabled:" + _Disabled.ToString());
                //
                //    return sb.ToString();
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public override string ToString()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "StringBuilder sb = new StringBuilder();");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // sb.AppendLine("Foo:" + _Foo.ToString());
                    if (NameFormatter.SQLTypeToCSharpType(sql_column) == "string")
                    {
                        sb.AppendLine(AddTabs(4) + "sb.AppendLine(\"" + sql_column.Name + ": \" + " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + " + \" \");");
                    }
                    else
                    {
                        sb.AppendLine(AddTabs(4) + "sb.AppendLine(\"" + sql_column.Name + ": \" + " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ".ToString() + \" \");");
                    }
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return sb.ToString();");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();

                #region Equals Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Sample Output
                //public override bool Equals(object obj)
                //{
                //    if (obj == null)
                //        return false;
                //
                //    if (this.GetType() != obj.GetType())
                //        return false;
                //
                //    cArmor new_obj = (cArmor)obj;
                //
                //    if (!Object.Equals(this._ArmorID, new_obj._ArmorID)) return false;
                //    if (!Object.Equals(this._ArmorType, new_obj._ArmorType)) return false;
                //    if (!Object.Equals(this._Disabled, new_obj._Disabled)) return false;
                //
                //    return true;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public override bool Equals(object obj)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "if (obj == null)");
                sb.AppendLine(AddTabs(5) + "return false;");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + "if (this.GetType() != obj.GetType())");
                sb.AppendLine(AddTabs(5) + "return false;");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + NameFormatter.ToCSharpClassName(sql_table.Name) + " new_obj = (" + NameFormatter.ToCSharpClassName(sql_table.Name) + ")obj;");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // if (!Object.Equals(this._ArmorID, new_obj._ArmorID)) return false;
                    sb.AppendLine(AddTabs(4) + "if (!object.Equals(this." + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ", new_obj." + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ")) return false;");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return true;");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();

                #region GetHashCode Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Sample Output
                //public override int GetHashCode()
                //{
                //    int output = 0;
                //
                //    output ^= _ArmorID;
                //    output ^= _ArmorType.GetHashCode();
                //    output ^= _Disabled.GetHashCode();
                //
                //    return output;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public override int GetHashCode()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "int output = 0;");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // output ^= _ArmorType.GetHashCode();
                    if (sql_column.SqlDataType == SqlDbType.Int)
                        sb.AppendLine(AddTabs(4) + "output ^= " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ";");
                    else
                        sb.AppendLine(AddTabs(4) + "output ^= " + NameFormatter.ToCSharpPrivateVariable(sql_column.Name) + ".GetHashCode();");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return output;");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
        public OutputObject GenerateWinformEditCodeDesigner(SqlTable sqlTable)
        {
            #region Code Output
            //namespace MarvelSuperheroesEditor
            //{
            //    partial class Form1
            //    {
            //        /// <summary>
            //        /// Required designer variable.
            //        /// </summary>
            //        private System.ComponentModel.IContainer components = null;

            //        /// <summary>
            //        /// Clean up any resources being used.
            //        /// </summary>
            //        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            //        protected override void Dispose(bool disposing)
            //        {
            //            if (disposing && (components != null))
            //            {
            //                components.Dispose();
            //            }
            //            base.Dispose(disposing);
            //        }

            //        #region Windows Form Designer generated code

            //        /// <summary>
            //        /// Required method for Designer support - do not modify
            //        /// the contents of this method with the code editor.
            //        /// </summary>
            //        private void InitializeComponent()
            //        {
            //            this.btnSave = new System.Windows.Forms.Button();
            //            this.btnCancel = new System.Windows.Forms.Button();
            //            this.label1 = new System.Windows.Forms.Label();
            //            this.textBox1 = new System.Windows.Forms.TextBox();
            //            this.SuspendLayout();
            //            //
            //            // btnSave
            //            //
            //            this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            //            this.btnSave.Location = new System.Drawing.Point(232, 36);
            //            this.btnSave.Name = "btnSave";
            //            this.btnSave.Size = new System.Drawing.Size(75, 23);
            //            this.btnSave.TabIndex = 0;
            //            this.btnSave.Text = "Save";
            //            this.btnSave.UseVisualStyleBackColor = true;
            //            //
            //            // btnCancel
            //            //
            //            this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            //            this.btnCancel.Location = new System.Drawing.Point(151, 36);
            //            this.btnCancel.Name = "btnCancel";
            //            this.btnCancel.Size = new System.Drawing.Size(75, 23);
            //            this.btnCancel.TabIndex = 1;
            //            this.btnCancel.Text = "Cancel";
            //            this.btnCancel.UseVisualStyleBackColor = true;
            //            //
            //            // label1
            //            //
            //            this.label1.AutoSize = true;
            //            this.label1.Location = new System.Drawing.Point(12, 9);
            //            this.label1.Name = "label1";
            //            this.label1.Size = new System.Drawing.Size(35, 13);
            //            this.label1.TabIndex = 2;
            //            this.label1.Text = "label1";
            //            //
            //            // textBox1
            //            //
            //            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
            //            | System.Windows.Forms.AnchorStyles.Right)));
            //            this.textBox1.Location = new System.Drawing.Point(118, 6);
            //            this.textBox1.Name = "textBox1";
            //            this.textBox1.Size = new System.Drawing.Size(189, 20);
            //            this.textBox1.TabIndex = 3;
            //            //
            //            // Form1
            //            //
            //            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            //            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            //            this.ClientSize = new System.Drawing.Size(319, 71);
            //            this.Controls.Add(this.textBox1);
            //            this.Controls.Add(this.label1);
            //            this.Controls.Add(this.btnCancel);
            //            this.Controls.Add(this.btnSave);
            //            this.Name = "Form1";
            //            this.Text = "Form1";
            //            this.ResumeLayout(false);
            //            this.PerformLayout();
            //        }

            //        #endregion

            //        private System.Windows.Forms.Button btnSave;
            //        private System.Windows.Forms.Button btnCancel;
            //        private System.Windows.Forms.Label label1;
            //        private System.Windows.Forms.TextBox textBox1;
            //    }
            //}
            #endregion

            if (sqlTable == null)
            {
                return(null);
            }

            string class_name = "frmEdit" + NameFormatter.ToCSharpPropertyName(sqlTable.Name);

            var output = new OutputObject
            {
                Name = class_name + ".Designer.cs",
                Type = OutputObject.eObjectType.CSharp
            };

            int total_form_height = 56 + (26 * sqlTable.Columns.Values.Count);

            var sb = new StringBuilder();

            sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sqlTable.Database.Name) + "Editor");
            sb.AppendLine("{");
            sb.AppendLine(AddTabs(1) + "partial class " + class_name);
            sb.AppendLine(AddTabs(1) + "{");
            sb.AppendLine(AddTabs(2) + "/// <summary>");
            sb.AppendLine(AddTabs(2) + "/// Required designer variable.");
            sb.AppendLine(AddTabs(2) + "/// </summary>");
            sb.AppendLine(AddTabs(2) + "private System.ComponentModel.IContainer components = null;");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "/// <summary>");
            sb.AppendLine(AddTabs(2) + "/// Clean up any resources being used.");
            sb.AppendLine(AddTabs(2) + "/// </summary>");
            sb.AppendLine(AddTabs(2) + "/// <param name=\"disposing\">true if managed resources should be disposed; otherwise, false.</param>");
            sb.AppendLine(AddTabs(2) + "protected override void Dispose(bool disposing)");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "if (disposing && (components != null))");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(4) + "components.Dispose();");
            sb.AppendLine(AddTabs(3) + "}");
            sb.AppendLine(AddTabs(3) + " base.Dispose(disposing);");
            sb.AppendLine(AddTabs(2) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "#region Windows Form Designer generated code");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "/// <summary>");
            sb.AppendLine(AddTabs(2) + "/// Required method for Designer support - do not modify");
            sb.AppendLine(AddTabs(2) + "/// the contents of this method with the code editor.");
            sb.AppendLine(AddTabs(2) + "/// </summary>");
            sb.AppendLine(AddTabs(2) + "private void InitializeComponent()");
            sb.AppendLine(AddTabs(2) + "{");
            sb.AppendLine(AddTabs(3) + "this.btnSave = new System.Windows.Forms.Button();");
            sb.AppendLine(AddTabs(3) + "this.btnCancel = new System.Windows.Forms.Button();");
            sb.AppendLine(AddTabs(3) + "this.cboItemList = new System.Windows.Forms.ComboBox();");
            sb.AppendLine();

            foreach (var sql_column in sqlTable.Columns.Values)
            {
                sb.AppendLine(AddTabs(3) + "this.lbl" + sql_column.Name + " = new System.Windows.Forms.Label();");
                sb.AppendLine(AddTabs(3) + "this.txt" + sql_column.Name + " = new System.Windows.Forms.TextBox();");
                sb.AppendLine();
            }

            sb.AppendLine(AddTabs(3) + "this.SuspendLayout();");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "// btnSave");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Location = new System.Drawing.Point(232," + (total_form_height - 26).ToString() + ");");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Name = \"btnSave\";");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Size = new System.Drawing.Size(75, 23);");
            sb.AppendLine(AddTabs(3) + "this.btnSave.TabIndex = 0;");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Text = \"Save\";");
            sb.AppendLine(AddTabs(3) + "this.btnSave.UseVisualStyleBackColor = true;");
            sb.AppendLine(AddTabs(3) + "this.btnSave.Click += new System.EventHandler(this.btnSave_Click);");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "// btnCancel");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Location = new System.Drawing.Point(151," + (total_form_height - 26).ToString() + ");");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Name = \"btnCancel\";");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Size = new System.Drawing.Size(75, 23);");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.TabIndex = 1;");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Text = \"Cancel\";");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.UseVisualStyleBackColor = true;");
            sb.AppendLine(AddTabs(3) + "this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "// cboItemList");
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.FormattingEnabled = true;");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.Location = new System.Drawing.Point(12, 5);");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.Name = \"cboItemList\";");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.Size = new System.Drawing.Size(295, 21);");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.TabIndex = 2;");
            sb.AppendLine(AddTabs(3) + "this.cboItemList.SelectedIndexChanged += new System.EventHandler(this.cboItemList_SelectedIndexChanged);");

            int height    = 26;
            int tab_index = 3;

            foreach (var sql_column in sqlTable.Columns.Values)
            {
                string label_name   = "lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name);
                string textbox_name = "txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name);

                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// " + label_name);
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".AutoSize = true;");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".Location = new System.Drawing.Point(12," + (height + 9).ToString() + ");");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".Name = \"" + label_name + "\";");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".Size = new System.Drawing.Size(35, 13);");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".TabIndex = " + tab_index.ToString() + ";");
                sb.AppendLine(AddTabs(3) + "this." + label_name + ".Text = \"" + NameFormatter.ToFriendlyName(sql_column.Name) + "\";");

                tab_index++;

                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// " + textbox_name);
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));");
                sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Location = new System.Drawing.Point(118," + (height + 6).ToString() + ");");
                sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Name = \"" + textbox_name + "\";");
                sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Size = new System.Drawing.Size(189, 20);");
                sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".TabIndex = " + tab_index.ToString() + ";");
                //sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".MaxLength = " + sql_column.Length + ";");

                tab_index++;
                height += 26;
            }

            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "// " + class_name);
            sb.AppendLine(AddTabs(3) + "//");
            sb.AppendLine(AddTabs(3) + "this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);");
            sb.AppendLine(AddTabs(3) + "this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
            sb.AppendLine(AddTabs(3) + "this.ClientSize = new System.Drawing.Size(319," + total_form_height.ToString() + ");");

            sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.btnCancel);");
            sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.btnSave);");
            sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.cboItemList);");
            sb.AppendLine();

            foreach (var sql_column in sqlTable.Columns.Values)
            {
                sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ");");
                sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ");");
                sb.AppendLine();
            }

            sb.AppendLine(AddTabs(3) + "this.MinimumSize = new System.Drawing.Size(319," + total_form_height.ToString() + ");");
            sb.AppendLine(AddTabs(3) + "this.Name = \"" + class_name + "\";");
            sb.AppendLine(AddTabs(3) + "this.Text = \"" + NameFormatter.ToCSharpPropertyName(sqlTable.Name) + "\";");
            sb.AppendLine();

            sb.AppendLine(AddTabs(3) + "this.ResumeLayout(false);");
            sb.AppendLine(AddTabs(3) + "this.PerformLayout();");

            sb.AppendLine(AddTabs(2) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "#endregion");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Button btnSave;");
            sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Button btnCancel;");
            sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.ComboBox cboItemList;");
            sb.AppendLine();

            foreach (var sql_column in sqlTable.Columns.Values)
            {
                sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Label lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.TextBox txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                sb.AppendLine();
            }

            sb.AppendLine(AddTabs(2) + "}");
            sb.AppendLine(AddTabs(1) + "}");

            output.Body = sb.ToString();
            return(output);
        }
Пример #9
0
        public static OutputObject GenerateCSharpEnumeration(SqlTable sql_table, string string_column, string value_column, DataTable data_table)
        {
            if (sql_table == null)
                    return null;

                string enum_name        = NameFormatter.ToCSharpEnumName(sql_table.Name);
                int longest_column      = GetLongestColumnLength(sql_table);

                OutputObject output = new OutputObject();
                output.Name = enum_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb                = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine();

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "public enum " + NameFormatter.ToCSharpEnumName(sql_table.Name));
                sb.AppendLine(AddTabs(1)+ "{");

                // list enumeration
                foreach (DataRow dr in data_table.Rows)
                {
                    string value_string     = dr[value_column].ToString();
                    string enum_string      = dr[string_column].ToString();

                    // make sure that enums are legal names.
                    foreach (string character in s_CSharpUndesireables)
                        enum_string = enum_string.Replace(character, string.Empty);

                    // no leading numbers, foo!
                    if (Char.IsNumber(enum_string[0]))
                        enum_string = "N" + enum_string;

                    sb.AppendLine(AddTabs(2) + PadCSharpVariableName(enum_string, longest_column) + "= " + value_string + ",");
                }

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #10
0
        public static OutputObject GenerateXmlLoader(SqlTable sql_table)
        {
            if (sql_table == null)
                    return null;

                string object_name          = NameFormatter.ToCSharpClassName(sql_table.Name);
                string class_name           = object_name + "DataLoader";
                string collection_type      = "List<" + object_name + ">";
                int longest_column          = GetLongestColumnLength(sql_table) + sql_table.Name.Length;

                OutputObject output = new OutputObject();
                output.Name = class_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                #region Header block

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Xml;");
                sb.AppendLine();
                sb.AppendLine("using DAL;");
                sb.AppendLine();

                #endregion

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "[Serializable]");
                sb.AppendLine(AddTabs(1) + "public partial class " + class_name);
                sb.AppendLine(AddTabs(1) + "{");

                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "protected bool _ParseErrors;");
                sb.AppendLine(AddTabs(3) + "protected " + collection_type + " _CollectionData;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "public " + collection_type + " CollectionData");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get { return _CollectionData; }");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "//CTOR");
                sb.AppendLine(AddTabs(3) + "public " + class_name + "()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "public bool ParseData(string file_name)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "string xml;");
                sb.AppendLine(AddTabs(4) + "string error_message;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "_ParseErrors        = !FileIo.ReadFromFile(file_name, out xml, out error_message);");
                sb.AppendLine(AddTabs(4) + "_CollectionData     = new " + collection_type + "();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "XmlDocument document;");
                sb.AppendLine(AddTabs(4) + "XmlNodeList selected_nodes;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + object_name +" item_data;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "try");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "document = new XmlDocument();");
                sb.AppendLine(AddTabs(5) + "document.InnerXml = xml;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "selected_nodes = document.SelectNodes(\"//" + NameFormatter.ToCSharpPropertyName(sql_table.Name) + "\");");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "foreach (XmlNode item in selected_nodes)");
                sb.AppendLine(AddTabs(5) + "{");
                sb.AppendLine(AddTabs(6) + "item_data = new " + object_name + "();");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // format:
                    // critter_data.Name       = item.Attributes["Name"].Value;
                    sb.AppendLine(AddTabs(6) + PadCSharpVariableName("item_data." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column + 7) + "= " + NameFormatter.GetCSharpCastString(sql_column) + "(item.Attributes[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"].Value);");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(6) + "_CollectionData.Add(item_data);");
                sb.AppendLine(AddTabs(5) + "}");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "catch");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "_ParseErrors = true;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "finally");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "document        = null;");
                sb.AppendLine(AddTabs(5) + "selected_nodes  = null;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "return !_ParseErrors;");
                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine(AddTabs(1) + "}");

                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #11
0
        // WinForm Generation
        public static OutputObject GenerateWinformEditCode(SqlTable sql_table)
        {
            #region Sample Output
                //using System;
                //using System.Collections.Generic;
                //using System.ComponentModel;
                //using System.Data;
                //using System.Drawing;
                //using System.Linq;
                //using System.Text;
                //using System.Windows.Forms;

                //namespace MarvelSuperheroesEditor
                //{
                //    public partial class Form1 : Form
                //    {
                //        public Form1()
                //        {
                //            InitializeComponent();
                //        }
                //    }
                //}
                #endregion

                if (sql_table == null)
                    return null;

                string class_name   = "frmEdit" + NameFormatter.ToCSharpPropertyName(sql_table.Name);
                string dal_name     =   NameFormatter.ToCSharpClassName("Dal" + sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Configuration;");
                sb.AppendLine("using System.ComponentModel;");
                sb.AppendLine("using System.Data;");
                //sb.AppendLine("using System.Drawing;");
                //sb.AppendLine("using System.Linq;");
                //sb.AppendLine("using System.Text;");
                sb.AppendLine("using System.Windows.Forms;");
                sb.AppendLine();

                sb.AppendLine("using DAL;");
                sb.AppendLine("using " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + ";");
                sb.AppendLine();

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "Editor");
                sb.AppendLine("{");

                sb.AppendLine(AddTabs(1) + "public partial class " + class_name + " : Form");
                sb.AppendLine(AddTabs(1) + "{");

                #region Fields
                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "protected string _SQLConnection = ConfigurationManager.ConnectionStrings[\"SQLConnection\"].ConnectionString;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                #endregion

                #region Methods
                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "public " + class_name + "()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "InitializeComponent();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "LoadPopulateItemList();");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "private bool LoadPopulateItemList()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.Cursor = Cursors.WaitCursor;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "try");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "" + dal_name + " dal = new " + dal_name + "(_SQLConnection);");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "if (dal.LoadAllFromDb())");
                sb.AppendLine(AddTabs(5) + "{");
                sb.AppendLine(AddTabs(6) + "if (dal.Collection != null && dal.Collection.Count != 0)");
                sb.AppendLine(AddTabs(6) + "{");
                sb.AppendLine(AddTabs(7) + "cboItemList.BeginUpdate();");
                sb.AppendLine(AddTabs(7) + "cboItemList.ValueMember     = \"" + FindIdField(sql_table) + "\";");
                sb.AppendLine(AddTabs(7) + "cboItemList.DisplayMember   = \"" + FindNameField(sql_table) + "\";");
                sb.AppendLine(AddTabs(7) + "cboItemList.DataSource      = dal.Collection;");
                sb.AppendLine(AddTabs(7) + "cboItemList.EndUpdate();");
                sb.AppendLine(AddTabs(6) + "}");
                sb.AppendLine(AddTabs(5) + "}");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "catch");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "return false;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "this.Cursor = Cursors.Default;");
                sb.AppendLine(AddTabs(4) + "return true;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                #endregion

                #region Events
                sb.AppendLine(AddTabs(2) + "#region Events");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "private void btnCancel_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine(AddTabs(3) + "private void btnSave_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine(AddTabs(3) + "private void cboItemList_SelectedIndexChanged(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                #endregion

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #12
0
        public static OutputObject GenerateWebViewPageCodeBehind(SqlTable sql_table, List<string> namespace_includes)
        {
            if (sql_table == null)
                    return null;

                string view_class_name  = "View" + NameFormatter.ToCSharpPropertyName(sql_table.Name);
                int longest_column      = GetLongestColumnLength(sql_table) + sql_table.Name.Length;

                OutputObject output = new OutputObject();
                output.Name =  view_class_name + ".aspx.cs";
                output.Type = OutputObject.eObjectType.CSharp;

                namespace_includes.Add(NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));

                StringBuilder sb = new StringBuilder();

                #region Includes
                sb.AppendLine("using System;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Configuration;");
                sb.AppendLine("using System.Collections;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Web;");
                sb.AppendLine("using System.Web.Security;");
                sb.AppendLine("using System.Web.UI;");
                sb.AppendLine("using System.Web.UI.WebControls;");
                sb.AppendLine("using System.Web.UI.WebControls.WebParts;");
                sb.AppendLine("using System.Web.UI.HtmlControls;");
                sb.AppendLine();

                sb.AppendLine(GenerateNamespaceIncludes(namespace_includes));
                sb.AppendLine();

                #endregion

                sb.AppendLine("namespace WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "public partial class " + view_class_name + " : System.Web.UI.Page");
                sb.AppendLine(AddTabs(1) + "{");

                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();

                #region Fields
                sb.AppendLine(AddTabs(3) + "protected string _SQLConnection = ConfigurationManager.ConnectionStrings[\"SQLConnection\"].ConnectionString;");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();

                #region Properties
                sb.AppendLine(AddTabs(3) + "protected string PageName");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get { return \"" + view_class_name + "\"; }");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected PaginationManager PageinationData");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"PaginationManager\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"PaginationManager\"] = new PaginationManager();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (PaginationManager)ViewState[\"PaginationManager\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"PaginationManager\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected string ReturnPage");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"ReturnPage\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"ReturnPage\"] = \"~/Default.aspx\";");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (string)ViewState[\"ReturnPage\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"ReturnPage\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected int EditingID");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"EditingID\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"EditingID\"] = 0;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (int)ViewState[\"EditingID\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"EditingID\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                #region BindForm Method
                sb.AppendLine(AddTabs(3) + "protected void BindForm()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + NameFormatter.ToCSharpClassName("DAL" + sql_table.Name) + " dal_obj = new " + NameFormatter.ToCSharpClassName("DAL" + sql_table.Name) + "(_SQLConnection);");
                sb.AppendLine(AddTabs(4) + "dal_obj.LoadSingleFromDb(this.EditingID);");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "if (dal_obj.Collection.Count > 0)");
                sb.AppendLine(AddTabs(4) + "{");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsPk)
                    {
                        // need to account for datatypes that need to be converted to a string.

                        switch (sql_column.BaseType)
                        {
                            case eSqlBaseType.Bool:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("chk" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ".Checked", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                                break;

                            case eSqlBaseType.Guid:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) +".Text", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ".ToString();");
                                break;

                            case eSqlBaseType.Integer:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) +".Text", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ".ToString();");
                                break;

                            case eSqlBaseType.Float:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) +".Text", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ".ToString();");
                                break;

                            case eSqlBaseType.Time:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) +".Text", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ".ToString();");
                                break;

                            default:
                                sb.AppendLine(AddTabs(5) + PadCSharpVariableName("lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) +".Text", longest_column, 11) + "= dal_obj.Collection[0]." + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                                break;
                        }
                    }
                }
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "else");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "this.lblErrorMessage.Text = \"Load Failed\";");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region Check Credentials method
                sb.AppendLine(AddTabs(3) + "protected void CheckCredentials()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#region Events");
                sb.AppendLine();

                #region pageload event method
                sb.AppendLine(AddTabs(3) + "protected void Page_Load(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "CheckCredentials();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "if (!Page.IsPostBack)");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (Request.QueryString[\"Id\"] != null)");
                sb.AppendLine(AddTabs(6) + "this.EditingID = Convert.ToInt32(Request.QueryString[\"Id\"]);");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "if (Request.QueryString[\"ReturnPage\"] != null)");
                sb.AppendLine(AddTabs(6) + "this.ReturnPage = (string)Request.QueryString[\"ReturnPage\"];");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "if (Request.QueryString[\"PageData\"] != null)");
                sb.AppendLine(AddTabs(6) + "this.PageinationData = new PaginationManager(Request.QueryString[\"PageData\"].ToString());");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "BindForm();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #13
0
        public static OutputObject GenerateWebServiceCodeBehindClass(SqlTable sql_table, List<string> namespace_includes)
        {
            if (sql_table == null)
                    return null;

                string class_name = NameFormatter.ToCSharpClassName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".asmx.cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Web;");
                sb.AppendLine("using System.Collections;");
                sb.AppendLine("using System.Web.Services;");
                sb.AppendLine("using System.Web.Services.Protocols;");
                sb.AppendLine("using System.ComponentModel;");
                sb.AppendLine();

                sb.AppendLine(GenerateNamespaceIncludes(namespace_includes));
                sb.AppendLine();

                sb.AppendLine("namespace WebService1");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "[WebService(Namespace = \"http://tempuri.org/\")]");
                sb.AppendLine(AddTabs(1) + "[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]");
                sb.AppendLine(AddTabs(1) + "[ToolboxItem(false)]");
                sb.AppendLine(AddTabs(1) + "public class Service1 : System.Web.Services.WebService");
                sb.AppendLine(AddTabs(1) + "{");
                sb.AppendLine(AddTabs(2) + "[WebMethod]");
                sb.AppendLine(AddTabs(2) + "public string HelloWorld()");
                sb.AppendLine(AddTabs(2) + "{");
                sb.AppendLine(AddTabs(3) + "return \"Hello World\";");
                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #14
0
        public static OutputObject GenerateMasterPageCodeInFront(string database_name, List<string> selected_tables)
        {
            if (string.IsNullOrEmpty(database_name))
                    return null;

                OutputObject output = new OutputObject();
                output.Name = ConfigurationManager.AppSettings["DefaultMasterPageFilename"];
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("<%@ Master Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"" + ConfigurationManager.AppSettings["DefaultMasterPageFilename"] + ".cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(database_name) + ".MasterPage\" %>");
                sb.AppendLine();
                sb.AppendLine("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
                sb.AppendLine("<html xmlns=\"http://www.w3.org/1999/xhtml\" >");
                sb.AppendLine();

                sb.AppendLine("<head runat=\"server\">");
                sb.AppendLine(AddTabs(1) + "<title>" + NameFormatter.ToFriendlyName(database_name) + " Admin Tool</title>");
                sb.AppendLine(AddTabs(1) + "<link href=\"" + ConfigurationManager.AppSettings["DefaultCSSFilename"] + ".css\" rel=\"stylesheet\" type=\"text/css\" />");
                sb.AppendLine(AddTabs(1) + "<asp:contentplaceholder id=\"head\" runat=\"server\">");
                sb.AppendLine(AddTabs(1) + "</asp:contentplaceholder>");
                sb.AppendLine("</head>");
                sb.AppendLine();

                sb.AppendLine("<body>");
                sb.AppendLine(AddTabs(1) + "<form id=\"form1\" runat=\"server\">");
                sb.AppendLine();

                sb.AppendLine(AddTabs(1) + "<div id=\"header\">");
                sb.AppendLine(AddTabs(2) + "<div class=\"PageTitle\">Database " + NameFormatter.ToFriendlyName(database_name) + " Tools</div>");
                sb.AppendLine(AddTabs(2) + "<div>" + GenerateAuthorNotice() + "</div>");
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();

                sb.AppendLine(AddTabs(1) + "<div id=\"menu\">");

                sb.AppendLine(AddTabs(1) + "<div class=\"SectionTitle\">Tables</div>");
                sb.AppendLine(AddTabs(1) + "<ul>");

                for (int i = 0; i < selected_tables.Count; i++)
                {
                    // loop through table links here
                    sb.AppendLine(AddTabs(2) + "<li><asp:HyperLink ID=\"HL" + (i+1).ToString() + "\" NavigateUrl=\"List" + selected_tables[i] + ".aspx\" Text=\"" + selected_tables[i] + "\" runat=\"server\" /></li>");
                }

                sb.AppendLine(AddTabs(1) + "</ul>");
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<div id=\"contents\">");
                sb.AppendLine(AddTabs(2) + "<asp:contentplaceholder id=\"body\" runat=\"server\">");
                sb.AppendLine(AddTabs(2) + "</asp:contentplaceholder>");
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();

                sb.AppendLine(AddTabs(1) + "</form>");
                sb.AppendLine("</body>");
                sb.AppendLine("</html>");

                output.Body = sb.ToString();
                return output;
        }
Пример #15
0
        public static OutputObject GenerateMasterPageCodeBehind(string database_name)
        {
            if (string.IsNullOrEmpty(database_name))
                    return null;

                OutputObject output = new OutputObject();
                output.Name = ConfigurationManager.AppSettings["DefaultMasterPageFilename"] + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Configuration;");
                sb.AppendLine("using System.Collections;");
                sb.AppendLine("using System.Web;");
                sb.AppendLine("using System.Web.Security;");
                sb.AppendLine("using System.Web.UI;");
                sb.AppendLine("using System.Web.UI.WebControls;");
                sb.AppendLine("using System.Web.UI.WebControls.WebParts;");
                sb.AppendLine("using System.Web.UI.HtmlControls;");
                sb.AppendLine();

                sb.AppendLine("namespace WebControls." + NameFormatter.ToCSharpPropertyName(database_name) + "MasterPage");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "public partial class MasterPage : System.Web.UI.MasterPage");
                sb.AppendLine(AddTabs(1) + "{");
                sb.AppendLine(AddTabs(2) + "protected void Page_Load(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(2) + "{");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #16
0
        public static OutputObject GenerateCSharpClassInterface(SqlTable sql_table, List<string> namespace_includes, bool include_is_dirty_flag)
        {
            if (sql_table == null)
                    return null;

                string interface_name = NameFormatter.ToCSharpInterfaceName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name = interface_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                #region SampleCode
                //public interface ICar
                //{
                //    void StartEngine();
                //    bool IsMoving { get; }
                //}
                #endregion

                StringBuilder sb = new StringBuilder();

                #region Header block

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine();

                sb.AppendLine(GenerateNamespaceIncludes(namespace_includes));

                #endregion

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");

                sb.AppendLine(AddTabs(1) + "public interface " + interface_name);
                sb.AppendLine(AddTabs(1) + "{");

                #region Properties Block
                ////////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // Sample: string SomeID { get; set; }
                    sb.AppendLine(AddTabs(3) + NameFormatter.SQLTypeToCSharpType(sql_column) + " " + NameFormatter.ToCSharpPropertyName(sql_column.Name) + " { get; set; }");
                }

                if (include_is_dirty_flag)
                {
                    sb.AppendLine();
                    sb.AppendLine(AddTabs(3) + "bool IsDirty { get; set; }");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #17
0
        public static OutputObject GenerateDeleteSingleProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name           = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelSingle, null);
                bool flag_first_value           = true;

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                // sanity check - if there are no primary keys in the table, we cannot know
                // what would a good choice would be for a qualifier. Abort and return error msg.
                if (sql_table.PkList.Count == 0)
                {
                    output.Body = "/* Cannot generate " + procedure_name + ", no primary keys set on " + sql_table.Name + ". */" + Environment.NewLine + Environment.NewLine;
                    return output;
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine(GenerateSqlStoredProcParameters(sql_table, eIncludedFields.PKOnly));

                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();
                sb.AppendLine("UPDATE" + AddTabs(1) + NameFormatter.ToTSQLName(sql_table.Name));
                sb.AppendLine("SET" + AddTabs(2) + "[Disabled] = 1");

                #region Where Clause
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // output:
                    // WHERE    [UserName] = @UserName
                    // AND      [UserAge] = @UserAge

                    if (sql_column.IsPk)
                    {
                        if (flag_first_value)
                        {
                            sb.Append("WHERE" + AddTabs(1));
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append(Environment.NewLine + "AND" + AddTabs(2));
                        }

                        // TODO: Add padding
                        sb.Append(NameFormatter.ToTSQLName(sql_column.Name) + " = " + NameFormatter.ToTSQLVariableName(sql_column));
                    }
                }
                #endregion

                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine("RETURN @@ROWCOUNT");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #18
0
        public static OutputObject GenerateDeleteManyProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelMany, null);

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                // sanity check - if there are no primary keys in the table, we cannot know
                // what would a good choice would be for a qualifier. Abort and return error msg.
                if (sql_table.PkList.Count == 0)
                {
                    output.Body = "/* Cannot generate " + procedure_name + ", no primary keys set on " + sql_table.Name + ". */" + Environment.NewLine + Environment.NewLine;
                    return output;
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine("(");
                sb.AppendLine(AddTabs(1) + "@IdList VARCHAR(MAX)");
                sb.AppendLine(")");
                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();

                sb.AppendLine(GenerateSqlListCode());

                #region UPDATE statement
                sb.AppendLine("UPDATE" + AddTabs(1) + NameFormatter.ToTSQLName(sql_table.Name));
                sb.AppendLine("SET" + AddTabs(2) + "[Disabled] = 1");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    string tsql_variablename = NameFormatter.ToTSQLVariableName(sql_column);

                    if (sql_column.IsPk)
                    {
                        sb.Append("WHERE" + AddTabs(1) + NameFormatter.ToTSQLName(sql_column.Name) + " in");
                        sb.AppendLine();
                        break;
                    }
                }

                sb.AppendLine("(");
                sb.AppendLine(AddTabs(1) + "SELECT IdValue FROM @TableVar");
                sb.AppendLine(")");
                #endregion

                sb.AppendLine();
                sb.AppendLine("RETURN @@ROWCOUNT");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #19
0
        public static OutputObject GenerateDeleteAllProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelAll, null);

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();
                sb.AppendLine("UPDATE\t[" + sql_table.Name + "]");
                sb.AppendLine("SET\t\t[Disabled] = 1");
                sb.AppendLine();
                sb.AppendLine("RETURN @@ROWCOUNT");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #20
0
        public static OutputObject GenerateDefaultPageCodeInFront(string database_name)
        {
            if (string.IsNullOrEmpty(database_name))
                    return null;

                OutputObject output = new OutputObject();
                output.Name = ConfigurationManager.AppSettings["DefaultASPPageFilename"] + ".aspx";
                output.Type = OutputObject.eObjectType.Aspx;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("<%@ Page Language=\"C#\" MasterPageFile=\"~/MasterPage.master\" AutoEventWireup=\"true\" CodeBehind=\"Default.aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(database_name) + ".Default\" %>");
                sb.AppendLine();

                sb.AppendLine("<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" Runat=\"Server\">");
                sb.AppendLine("</asp:Content>");
                sb.AppendLine();

                sb.AppendLine("<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"body\" Runat=\"Server\">");
                sb.AppendLine("</asp:Content>");
                sb.AppendLine();

                output.Body = sb.ToString();
                return output;
        }
Пример #21
0
        public static OutputObject GenerateWebListPageCodeInFront(SqlTable sql_table, bool create_as_asp_control)
        {
            if (sql_table == null)
                    return null;

                string list_object_name     = "List" + NameFormatter.ToCSharpPropertyName(sql_table.Name);
                string edit_object_name     = "Edit" + NameFormatter.ToCSharpPropertyName(sql_table.Name);
                string orm_class_name       = NameFormatter.ToCSharpClassName(sql_table.Name);
                string list_class_name      = NameFormatter.ToCSharpClassName(list_object_name);

                OutputObject output = new OutputObject();
                output.Name =  list_object_name + ".aspx";
                output.Type = OutputObject.eObjectType.Aspx;

                bool first_flag = true;

                StringBuilder sb = new StringBuilder();

                if (create_as_asp_control)
                {
                    sb.AppendLine("<%@ Control Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"" + list_object_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + list_object_name + "\" %>");
                }
                else
                {
                    sb.AppendLine("<%@ Page Language=\"C#\" MasterPageFile=\"~/MasterPage.master\" AutoEventWireup=\"true\" CodeBehind=\"" + list_object_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + list_object_name + "\" %>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" Runat=\"Server\">");
                    sb.AppendLine("</asp:Content>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"body\" Runat=\"Server\">");
                }

                sb.AppendLine("<asp:Panel ID=\"panList\" DefaultButton=\"btnSearch\" runat=\"server\">");
                sb.AppendLine();

                sb.AppendLine(AddTabs(1) + "<div class=\"PageTitle\">" + NameFormatter.ToFriendlyName(sql_table.Name));
                sb.AppendLine(AddTabs(1) + "<asp:LinkButton ID=\"btnAddNewItem\" OnClick=\"btnAddNewItem_Click\" runat=\"server\" Text=\"(Add new item)\" CssClass=\"AddItemLink\" />");
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();

                sb.AppendLine(AddTabs(1) + "<asp:TextBox ID=\"txtSearch\" runat=\"server\" />");
                sb.AppendLine(AddTabs(1) + "<asp:Button ID=\"btnSearch\" runat=\"server\" CssClass=\"Button1\" Text=\"Search\" OnClick=\"btnSearch_Click\" />");
                sb.AppendLine();

                #region Repeater
                sb.AppendLine(AddTabs(1) + "<asp:Repeater ID=\"rptList\" runat=\"server\" >");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "<HeaderTemplate>");
                sb.AppendLine(AddTabs(2) + "<table width=\"100%\">");
                sb.AppendLine(AddTabs(2) + "<tr class=\"RepeaterHeaderStyle\">");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.AppendLine(AddTabs(3) + "<td><span class=\"RepeaterHeader\">" + NameFormatter.ToFriendlyName(sql_column.Name) + "</span></td>");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine(AddTabs(2) + "</HeaderTemplate>");
                sb.AppendLine();

                // Item template
                sb.AppendLine(AddTabs(2) + "<ItemTemplate>");
                sb.AppendLine(AddTabs(2) + "<tr class=\"RepeaterItemStyle\">");
                sb.AppendLine();

                first_flag = true;

                foreach (var item in sql_table.Columns.Values)
                {
                    string current_item_binding = "((" + sql_table.Database.Name + "." + orm_class_name + ")Container.DataItem)." + NameFormatter.ToCSharpPropertyNameString(item);

                    if (first_flag)
                    {
                        first_flag = false;
                        sb.AppendLine(AddTabs(3) + "<td valign=\"top\"><a href=\"" +  edit_object_name + ".aspx?id=<%# " + current_item_binding + " %>&ReturnPage=" + list_object_name + "&PageData=<%=PageinationData.ToString()%>\"><%# " + current_item_binding + " %></a></td>");
                    }
                    else
                    {
                        sb.AppendLine(AddTabs(3) + "<td valign=\"top\"><span class=\"RepeaterCell\"><%# " + current_item_binding + " %></span></td>");
                    }
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine(AddTabs(2) + "</ItemTemplate>");
                sb.AppendLine();

                // Alternating item template
                sb.AppendLine(AddTabs(2) + "<AlternatingItemTemplate>");
                sb.AppendLine(AddTabs(2) + "<tr class=\"AlternatingRepeaterItemStyle\">");
                sb.AppendLine();

                first_flag = true;

                foreach (var item in sql_table.Columns.Values)
                {
                    string current_item_binding = "((" + sql_table.Database.Name + "." + orm_class_name + ")Container.DataItem)." + NameFormatter.ToCSharpPropertyNameString(item);

                    if (first_flag)
                    {
                        first_flag = false;
                        sb.AppendLine(AddTabs(3) + "<td valign=\"top\"><a href=\"" +  edit_object_name + ".aspx?id=<%# " + current_item_binding + " %>&ReturnPage=" + list_object_name + "&PageData=<%=PageinationData.ToString()%>\"><%# " + current_item_binding + " %></a></td>");
                    }
                    else
                    {
                        sb.AppendLine(AddTabs(3) + "<td valign=\"top\"><span class=\"RepeaterCell\"><%# " + current_item_binding + " %></span></td>");
                    }
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine(AddTabs(2) + "</AlternatingItemTemplate>");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "<FooterTemplate>");
                sb.AppendLine(AddTabs(2) + "</table>");
                sb.AppendLine(AddTabs(2) + "</FooterTemplate>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "</asp:Repeater>");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<asp:Button ID=\"btnFirstPage\" runat=\"server\" CssClass=\"Button1\" OnClick=\"btnFirstPage_Click\" Text=\"&lt;&lt;\" />");
                sb.AppendLine(AddTabs(1) + "<asp:Button ID=\"btnPrevPage\" runat=\"server\" CssClass=\"Button1\" OnClick=\"btnPrevPage_Click\" Text=\"&lt;\" />");
                sb.AppendLine(AddTabs(1) + "<asp:Label ID=\"lblCounter\" runat=\"server\" Text=\"Label\" />");
                sb.AppendLine(AddTabs(1) + "<asp:Button ID=\"btnNextPage\" runat=\"server\" CssClass=\"Button1\" OnClick=\"btnNextPage_Click\" Text=\"&gt;\" />");
                sb.AppendLine(AddTabs(1) + "<asp:Button ID=\"btnLastPage\" runat=\"server\" CssClass=\"Button1\" OnClick=\"btnLastPage_Click\" Text=\"&gt;&gt;\" />");
                sb.AppendLine(AddTabs(1) + "<asp:DropDownList ID=\"ddlPageSize\" runat=\"server\" OnSelectedIndexChanged=\"ddlPageSize_SelectedIndexChanged\" AutoPostBack=\"True\" /> items per page");

                sb.AppendLine();
                sb.AppendLine("</asp:Panel>");

                if (!create_as_asp_control)
                    sb.AppendLine("</asp:Content>");

                output.Body = sb.ToString();
                return output;
        }
Пример #22
0
        public static OutputObject GenerateSelectAllPaginatedProc(SqlTable sql_table, List<string> sort_fields, List<string> search_fields, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name   = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectAllPag, null);
                int longest_column      = GetLongestColumnLength(sql_table) + sql_table.Name.Length;
                string name_buffer;

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                // sanity check - if there are no primary keys in the table, we cannot know
                // what would a good choice would be for a qualifier. Abort and return error msg.
                if (sql_table.PkList.Count == 0)
                {
                    output.Body = "/* Cannot generate " + procedure_name + ", no primary keys set on " + sql_table.Name + ". */" + Environment.NewLine + Environment.NewLine;
                    return output;
                }

                #region Find the first pk
                string table_pk = string.Empty;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    string tsql_variablename = NameFormatter.ToTSQLName(sql_column.Name);

                    if (sql_column.IsPk)
                    {
                        table_pk = sql_column.Name;
                        break;
                    }
                }
                #endregion

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine("(");
                sb.AppendLine(AddTabs(1) + "@StartNumber INT,");
                sb.AppendLine(AddTabs(1) + "@PageSize INT,");
                sb.AppendLine(AddTabs(1) + "@SearchString VARCHAR(50)");
                sb.AppendLine(")");

                sb.AppendLine("AS");
                sb.AppendLine();

                sb.AppendLine("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();

                sb.AppendLine("SELECT" + AddTabs(1) + "*");
                sb.AppendLine("FROM");
                sb.AppendLine("(");
                sb.AppendLine(AddTabs(1) + "SELECT ROW_NUMBER()");
                sb.Append(AddTabs(1) + "OVER (" + GenerateOrderByClause(sql_table, sort_fields) + ") AS Row");

                #region Selected Columns

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    name_buffer = NameFormatter.ToTSQLName(sql_column.Table.Name) + "." + NameFormatter.ToTSQLName(sql_column.Name);

                    sb.Append("," + Environment.NewLine + AddTabs(3));
                    sb.Append(PadSqlVariableName(name_buffer, longest_column) + "AS " + NameFormatter.ToTSQLName(sql_column.Name));
                }
                #endregion

                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "FROM" + AddTabs(1) + NameFormatter.ToTSQLName(sql_table.Name));
                sb.AppendLine();
                sb.AppendLine(GenerateSearchClause(sql_table, search_fields, 1, 1));
                sb.AppendLine(AddTabs(1) + "AND" + AddTabs(2) + NameFormatter.ToTSQLName(sql_table.Name) + ".[Disabled] = 0");
                sb.AppendLine(") AS Page");
                sb.AppendLine("WHERE Page.Row >= @StartNumber");
                sb.AppendLine("AND Page.Row < @PageSize + @StartNumber");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #23
0
        // Webservice Generation
        public static OutputObject GenerateWebServiceCodeInfrontClass(SqlTable sql_table)
        {
            if (sql_table == null)
                    return null;

                string class_name = NameFormatter.ToCSharpClassName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".asmx";
                output.Type = OutputObject.eObjectType.WebService;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("<%@ WebService Language=\"C#\" CodeBehind=\"Service1.asmx.cs\" Class=\"WebService1.Service1\" %>");

                output.Body = sb.ToString();
                return output;
        }
Пример #24
0
        public static OutputObject GenerateCSharpDalClass(SqlTable sql_table, List<string> namespace_includes, bool convert_nullable_fields, bool include_is_dirty_flag)
        {
            #region SampleCode
                //public class FooClass
                //{
                //    private List<FooDataStrure> _Foo = null;

                //    //public FooClass()
                //    //{
                //    //    // foo
                //    //}

                //    public List<FooDataStrure> LoadData(DataTable dt)
                //    {
                //        _Foo.Clear();
                //        foreach (DataRow dr in dt.Rows)
                //        {
                //            p_Foo.Add(new FooDataStrure(Convert.ToInt32(dr["whatever"])));
                //        }

                //        return _Foo;
                //    }
                //}
                #endregion

                if (sql_table == null)
                    return null;

                string list_type			    = NameFormatter.ToCSharpClassName(sql_table.Name);
                string sql_tablename		    = NameFormatter.ToTSQLName(sql_table.Name);
                string collection_type          = "List<" + list_type + ">";
                string class_name               = NameFormatter.ToCSharpClassName("Dal" + sql_table.Name);
                int longest_column              = GetLongestColumnLength(sql_table);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                #region Header block

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Data.SqlClient;");
                sb.AppendLine();

                sb.AppendLine("using DAL;");
                sb.AppendLine(GenerateNamespaceIncludes(namespace_includes));

                #endregion

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                //sb.AppendLine(AddTabs(1) + "[Serializable]");
                sb.AppendLine(AddTabs(1) + "public partial class " + class_name);
                sb.AppendLine(AddTabs(1) + "{");

                #region Fields bloc
                ////////////////////////////////////////////////////////////////////////////////

                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "protected string _SQLConnection;");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                #region Default CTOR
                ////////////////////////////////////////////////////////////////////////////////

                #region sample output
                //public Foo()
                //{
                //    //foo
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + class_name + "(string sql_conn)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "_SQLConnection = sql_conn;");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "// Public Methods");

                #region GetCountFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public int GetCountFromDb()
                //{
                //    return Database.ExecuteScalarSp<int>("[GalacticConquest].[dbo].[up_Game_CountAll]", null, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public int GetCountFromDb()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteScalarSp<int>(\"[" + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "].[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.CountAll, null) + "]\", null, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region GetSearchCountFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public int GetSearchCountFromDb(string search_string)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@SearchString", SqlDbType = SqlDbType.VarChar, Size = 50, Value = search_string });
                //    return Database.ExecuteScalarSp<int>("[GalacticConquest].[dbo].[up_Game_CountSearch]", parameters, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public int GetSearchCountFromDb(string search_string)");
                sb.AppendLine(AddTabs(3) + "{");

                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");
                sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@SearchString", "VarChar", 50, "search_string"));
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteScalarSp<int>(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.CountSearch, null) + "]\", parameters, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadAllFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public List<cGame> LoadAllFromDb()
                //{
                //    return Database.ExecuteQuerySp<cGame>("[GalacticConquest].[dbo].[up_Game_SelectAll]", null, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + collection_type + " LoadAllFromDb()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteQuerySp<" + list_type + ">(\"[" + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "].[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectAll, null) + "]\", null, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadListFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public List<cGame> LoadListFromDb(IEnumerable<int> id_list)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@IdList", SqlDbType = SqlDbType.VarChar, Size = -1, Value = Database.GenericListToStringList(id_list) });
                //    return Database.ExecuteQuerySp<cGame>("[GalacticConquest].[dbo].[up_Game_SelectMany]", parameters, _SQLConnection);
                //}
                #endregion

                if (sql_table.PkList.Count == 0)
                {
                    sb.AppendLine("// Cannot create LoadListFromDb() without a pk on database table.");
                }
                else
                {
                    sb.AppendLine(AddTabs(3) + "public " + collection_type + " LoadListFromDb(IEnumerable<int> id_list)");
                    sb.AppendLine(AddTabs(3) + "{");

                    sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");
                    sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@IdList", "VarChar", -1, "Database.GenericListToStringList(id_list)"));
                    sb.AppendLine(AddTabs(4) + "return Database.ExecuteQuerySp<" + list_type + ">(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectMany, null) + "]\", parameters, _SQLConnection);");
                    sb.AppendLine(AddTabs(3) + "}");
                    sb.AppendLine();
                }

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadAllFromDbPaged
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public List<cGame> LoadAllFromDbPaged(int start_index, int page_size, string search_string)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@StartNumber", SqlDbType = SqlDbType.Int, Size = 4, Value = start_index });
                //    parameters.Add(new SqlParameter() { ParameterName = "@PageSize", SqlDbType = SqlDbType.Int, Size = 4, Value = page_size });
                //    parameters.Add(new SqlParameter() { ParameterName = "@SearchString", SqlDbType = SqlDbType.VarChar, Size = 50, Value = search_string });
                //    return Database.ExecuteQuerySp<cGame>("[GalacticConquest].[dbo].[up_Game_SelectAllPaged]", parameters, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + collection_type + " LoadAllFromDbPaged(int start_index, int page_size, string search_string)");
                sb.AppendLine(AddTabs(3) + "{");

                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");
                sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@StartNumber", "Int", 4, "start_index"));
                sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@PageSize", "Int", 4, "page_size"));
                sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@SearchString", "VarChar", 50, "search_string"));
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteQuerySp<" + list_type + ">(\"[" + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "].[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectAllPag, null) + "]\", parameters, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadSingleFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public cGame LoadSingleFromDb(int id)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@Id", SqlDbType = SqlDbType.Int, Size = 4, Value = id });
                //    var results = Database.ExecuteQuerySp<cGame>("[GalacticConquest].[dbo].[up_Game_SelectSingle]", parameters, _SQLConnection);

                //    if (results != null && results.Count > 0)
                //        return results[0];
                //    else
                //        return null;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + list_type  + " LoadSingleFromDb(" + NameFormatter.GenerateCSharpFunctionArgs(sql_table, eIncludedFields.PKOnly) + ")");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");

                // generate all Sp parameters
                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (sql_column.IsPk)
                        sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, NameFormatter.ToTSQLVariableName(sql_column), sql_column.SqlDataType, sql_column.Length, NameFormatter.ToCSharpLocalVariable(sql_column.Name)));
                }

                sb.AppendLine(AddTabs(4) + "var results = Database.ExecuteQuerySp<" + list_type + ">(\"[" + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "].[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectSingle, null) + "]\", parameters, _SQLConnection);");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + "if (results != null && results.Count > 0)");
                sb.AppendLine(AddTabs(5) + "return results[0];");
                sb.AppendLine(AddTabs(4) + "else");
                sb.AppendLine(AddTabs(5) + "return null;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region DeleteSingleFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public bool DeleteSingleFromDb(int id)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@Id", SqlDbType = SqlDbType.Int, Size = 4, Value = id });
                //    return Database.ExecuteNonQuerySp("[GalacticConquest].[dbo].[up_Game_DeleteSingle]", parameters, _SQLConnection) > 0;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public bool DeleteSingleFromDb(" + NameFormatter.GenerateCSharpFunctionArgs(sql_table, eIncludedFields.PKOnly) + ")");
                sb.AppendLine(AddTabs(3) + "{");

                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");

                // generate all SP parameters
                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (sql_column.IsPk)
                        sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, NameFormatter.ToTSQLVariableName(sql_column), sql_column.SqlDataType, sql_column.Length, NameFormatter.ToCSharpLocalVariable(sql_column.Name)));
                }

                sb.AppendLine(AddTabs(4) + "return Database.ExecuteNonQuerySp(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelSingle, null) + "]\", parameters, _SQLConnection) > 0;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region DeleteListFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public int DeleteListFromDb(IEnumerable<int> id_list)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    parameters.Add(new SqlParameter() { ParameterName = "@IdList", SqlDbType = SqlDbType.VarChar, Size = -1, Value = Database.GenericListToStringList<int>(id_list) });
                //    return Database.ExecuteNonQuerySp("[GalacticConquest].[dbo].[up_Game_DeleteMany]", parameters, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public int DeleteListFromDb(IEnumerable<int> id_list)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");
                sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPLATE, "@IdList", "VarChar", -1, "Database.GenericListToStringList(id_list)"));
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteNonQuerySp(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelMany, null) + "]\", parameters, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region DeleteAllFromDb
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public int DeleteAllFromDb()
                //{
                //    return Database.ExecuteNonQuerySp("[GalacticConquest].[dbo].[up_Game_DeleteAll]", null, _SQLConnection);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public int DeleteAllFromDb()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteNonQuerySp(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.DelAll, null) + "]\", null, _SQLConnection);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadFromXmlFile
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public bool LoadFromXmlFile(string filename)
                //{
                //    string file_data = FileIo.ReadFromFile(filename, out file_data);
                //    DataSet ds = XmlConverter.XmlStringToDataSet(file_data);
                //    return LoadFromDataTable(ds.Tables["Game"], out results, out exception);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public " + collection_type + " LoadFromXmlFile(string filename)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "string file_data = FileIo.ReadFromFile(filename);");
                sb.AppendLine(AddTabs(4) + "DataSet ds = XmlConverter.XmlStringToDataSet(file_data);");
                sb.AppendLine(AddTabs(4) + "return LoadFromDataTable(ds.Tables[\"" + sql_table.Name + "\"]);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region SaveToXmlFile
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public void SaveToXmlFile(List<cGame> collection, string filename)
                //{
                //    DataTable dt = ConvertToDataTable(collection);
                //    string xml = XmlConverter.DataTableToXmlString(dt, "GalacticConquest");
                //    FileIo.WriteToFile(filename, xml);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public void SaveToXmlFile(" + collection_type  + " collection, string filename)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "DataTable dt = ConvertToDataTable(collection);");
                sb.AppendLine(AddTabs(4) + "string xml = XmlConverter.DataTableToXmlString(dt, \"" + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "\");");
                sb.AppendLine(AddTabs(4) + "FileIo.WriteToFile(filename, xml);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region SaveAll Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public void SaveAll(List<cGame> collection)
                //{
                //    foreach (var item in collection)
                //        Save(item);
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public void SaveAll(" + collection_type + " collection)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "foreach (var item in collection)");
                sb.AppendLine(AddTabs(5) + "Save(item);");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region Save Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //public bool Save(cGame item)
                //{
                //    List<SqlParameter> parameters = GetSqlParameterList(item);
                //    return Database.ExecuteNonQuerySp("[GalacticConquest].[dbo].[up_Game_Set]", parameters, _SQLConnection) > 0;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "public bool Save(" + list_type + " item)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = GetSqlParameterList(item);");
                sb.AppendLine(AddTabs(4) + "return Database.ExecuteNonQuerySp(\"" + NameFormatter.ToTSQLName(sql_table.Database.Name) + ".[dbo].[" + GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.UpdateInsert, null) + "]\", parameters, _SQLConnection) > 0;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region LoadFromDataTable
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //protected List<cGame> LoadFromDataTable(DataTable dt)
                //{
                //    if (dt == null || dt.Rows.Count < 1 || dt.Columns.Count < 1)
                //        return null;

                //    var results = new List<cGame>();

                //    foreach (DataRow dr in dt.Rows)
                //    {
                //        cGame obj = new cGame();

                //        obj.Id = Convert.ToInt32(dr["Id"]);
                //        obj.Name = Convert.ToString(dr["Name"]);
                //        obj.StarDate = Convert.ToDouble(dr["StarDate"]);
                //        obj.GameStateId = Convert.ToInt32(dr["GameStateId"]);
                //        obj.CreatedById = Convert.ToInt32(dr["CreatedById"]);
                //        obj.CreatedDate = Convert.ToDateTime(dr["CreatedDate"]);
                //        obj.Description = Convert.ToString(dr["Description"]);
                //        obj.Disabled = Convert.ToBoolean(dr["Disabled"]);

                //        results.Add(obj);
                //    }

                //    return results;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "protected " + collection_type + " LoadFromDataTable(DataTable dt)");
                sb.AppendLine(AddTabs(3) + "{");

                sb.AppendLine(AddTabs(4) + "if (dt == null || dt.Rows.Count < 1 || dt.Columns.Count < 1)");
                sb.AppendLine(AddTabs(5) + "return null;");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + "var results = new " + collection_type  + "();");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + "foreach (DataRow dr in dt.Rows)");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + PadCSharpVariableName(NameFormatter.ToCSharpClassName(sql_table.Name) + " obj", longest_column) + "= new " + NameFormatter.ToCSharpClassName(sql_table.Name) + "();");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.Append(AddTabs(5));

                    if (sql_column.IsNullable)
                    {
                        // hack - nullable doubles need special treatment
                        switch (sql_column.SqlDataType)
                        {
                            case SqlDbType.Float:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append( "= (dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"] == DBNull.Value) ? null : ");
                                sb.Append("new double?(" + NameFormatter.GetCSharpCastString(sql_column) + "(dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]));");
                                break;

                            case SqlDbType.UniqueIdentifier:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append( "= (dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"] == DBNull.Value) ? null : ");
                                sb.Append("new Guid?(new Guid((string)dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]));");
                                break;

                            case SqlDbType.DateTime:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append( "= (dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"] == DBNull.Value) ? null : ");
                                sb.Append("new DateTime?(Convert.ToDateTime(dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]));");
                                break;

                            // TODO may need more switch cases here...

                            default:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append("= (dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"] == DBNull.Value) ? null : ");
                                sb.Append(NameFormatter.GetCSharpCastString(sql_column) + "(dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]);");
                                break;
                        }
                    }
                    else
                    {
                        switch (sql_column.SqlDataType)
                        {
                            case SqlDbType.UniqueIdentifier:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append("= new Guid((string)(dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]));");
                                break;

                            default:

                                sb.Append(PadCSharpVariableName("obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name), longest_column));
                                sb.Append("= " + NameFormatter.GetCSharpCastString(sql_column) + "(dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]);");
                                break;
                        }
                    }

                    sb.AppendLine();
                }
                sb.AppendLine();

                sb.AppendLine(AddTabs(5) + "results.Add(obj);");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return results;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region ConvertToDataTable
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //protected DataTable ConvertToDataTable(List<cGame> collection)
                //{
                //    DataTable dt = new DataTable();

                //    dt.Columns.Add("Id", typeof(int));
                //    dt.Columns.Add("Name", typeof(string));
                //    dt.Columns.Add("Disabled", typeof(bool));

                //    dt.TableName = "Game";

                //    foreach (var obj in collection)
                //    {
                //        DataRow dr = dt.NewRow();

                //        dr["Id"]            = obj.Id;
                //        dr["Name"]          = obj.Name;
                //        dr["Disabled"]      = obj.Disabled;

                //        dt.Rows.Add(dr);
                //    }

                //    return dt;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "protected DataTable ConvertToDataTable(" + collection_type + " collection)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "DataTable dt = new DataTable();");
                sb.AppendLine();

                // dt.Columns.Add("Name", typeof(string));
                foreach (var sql_column in sql_table.Columns.Values)
                    sb.AppendLine(AddTabs(4) + "dt.Columns.Add(\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\", typeof(" + NameFormatter.SQLTypeToCSharpType(sql_column) + "));");

                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "dt.TableName = \"" + sql_table.Name + "\";");
                sb.AppendLine();

                sb.AppendLine(AddTabs(4) + "foreach (var obj in collection)");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "DataRow dr = dt.NewRow();");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.Append(AddTabs(5));
                    sb.Append(PadCSharpVariableName("dr[\"" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\"]", longest_column + 7));
                    sb.Append("= obj." + NameFormatter.ToCSharpPropertyName(sql_column.Name)  + ";" + Environment.NewLine);
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "dt.Rows.Add(dr);");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return dt;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                #region GetSqlParameterList Method
                ////////////////////////////////////////////////////////////////////////////////

                #region Code Sample
                //protected List<SqlParameter> GetSqlParameterList(cGame obj)
                //{
                //    List<SqlParameter> parameters = new List<SqlParameter>();
                //    SqlParameter parameter;

                //    parameter = new SqlParameter("@Id", SqlDbType.Int, 4);
                //    parameter.Value = obj.Id;
                //    parameters.Add(parameter);

                //    parameter = new SqlParameter("@Disabled", SqlDbType.Bit, 1);
                //    parameter.Value = obj.Disabled;
                //    parameters.Add(parameter);

                //    return parameters;
                //}
                #endregion

                sb.AppendLine(AddTabs(3) + "protected List<SqlParameter> GetSqlParameterList(" + NameFormatter.ToCSharpClassName(sql_table.Name) + " obj)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "List<SqlParameter> parameters = new List<SqlParameter>();");
                sb.AppendLine(AddTabs(4) + "SqlParameter parameter;");
                sb.AppendLine();

                // build parameter collection here
                foreach (var sql_column in sql_table.Columns.Values)
                {
                    // REFACTOR
                    //sb.AppendLine(AddTabs(4) + string.Format(SQL_PARAMETER_TEMPATE, "@SearchString", SqlDbType.VarChar, 50, "search_string"));

                    string column_name = NameFormatter.ToCSharpPropertyName(sql_column.Name);

                    sb.Append(AddTabs(4) + NameFormatter.ToCSharpSQLParameterString(sql_column));

                    if (sql_column.IsNullable && !convert_nullable_fields)
                    {
                        //parameter.Value = (obj.CancelledDate == null) ? (object)DBNull.Value : _CancelledDate;
                        sb.Append(Environment.NewLine + AddTabs(4) + "parameter.Value = (obj." + column_name + " == null) ? (object)DBNull.Value : obj." + column_name + ";");
                    }
                    else
                    {
                        sb.Append(Environment.NewLine + AddTabs(4) + "parameter.Value = obj." + column_name + ";");
                    }

                    sb.Append(Environment.NewLine + AddTabs(4) + "parameters.Add(parameter);" + Environment.NewLine);
                    sb.AppendLine();
                }

                sb.AppendLine(AddTabs(4) + "return parameters;");
                sb.AppendLine(AddTabs(3) + "}");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();

                return output;
        }
Пример #25
0
        public static OutputObject GenerateWebViewPageCodeInFront(SqlTable sql_table, bool create_as_asp_control)
        {
            if (sql_table == null)
                    return null;

                string view_class_name = "View" + NameFormatter.ToCSharpPropertyName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name =  view_class_name + ".aspx";
                output.Type = OutputObject.eObjectType.Aspx;

                StringBuilder sb = new StringBuilder();

                if (create_as_asp_control)
                {
                    sb.AppendLine("<%@ Control Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"" + view_class_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + view_class_name + "\" %>");
                }
                else
                {
                    sb.AppendLine("<%@ Page Language=\"C#\" MasterPageFile=\"~/MasterPage.master\" AutoEventWireup=\"True\" CodeBehind=\"" + view_class_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + view_class_name + "\" %>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" Runat=\"Server\">");
                    sb.AppendLine("</asp:Content>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"body\" Runat=\"Server\">");
                }

                sb.AppendLine();
                sb.AppendLine("<div class=\"PageTitle\">View " + NameFormatter.ToFriendlyName(sql_table.Name) + "</div>");
                sb.AppendLine();

                sb.AppendLine("<asp:Panel CssClass=\"DetailsPanel\" ID=\"panDetails\" runat=\"server\">");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<div class=\"Spacer\">");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "<table border=\"0\" width=\"100%\">");
                sb.AppendLine(AddTabs(2) + "<tr>");
                sb.AppendLine(AddTabs(3) + "<td></td>");
                sb.AppendLine(AddTabs(3) + "<td class=\"SectionTitle\"><asp:Label ID=\"lblTitle\" runat=\"server\" /></td>");
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsPk)
                    {
                        sb.AppendLine(AddTabs(2) + "<tr>");
                        sb.AppendLine(AddTabs(3) + "<td class=\"ControlLabel\">" + NameFormatter.ToFriendlyName(sql_column.Name) + ":</td>");

                        switch (sql_column.BaseType)
                        {
                            case eSqlBaseType.Bool:
                            sb.AppendLine(AddTabs(3) + "<td><asp:CheckBox ID=\"chk" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" Enabled=\"False\"  runat=\"server\" /></td>");
                            break;

                            //case eSqlBaseType.Time:
                            //sb.AppendLine(AddTabs(3) + "<td><asp:Calendar ID=\"cal" + NameFormatter.ToCSharpPropertyName(sql_column.ColumnName) + " runat=\"server\" /></td>");
                            //break;

                            default:
                            sb.AppendLine(AddTabs(3) + "<td><asp:Label ID=\"lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" /></td>");
                            break;
                        }

                        sb.AppendLine(AddTabs(2) + "</tr>");
                        sb.AppendLine();
                    }
                }

                // buttons
                sb.AppendLine(AddTabs(2) + "</table>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "<asp:Label ID=\"lblErrorMessage\" CssClass=\"ErrorMessage\" runat=\"server\" />");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();
                sb.AppendLine("</asp:Panel>");

                if (!create_as_asp_control)
                {
                    sb.AppendLine();
                    sb.AppendLine("</asp:Content>");
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #26
0
        public static OutputObject GenerateSelectManyByXProc(SqlTable sql_table, List<string> sort_fields, List<string> select_fields, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name   = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectManyByX, select_fields);
                int longest_column      = GetLongestColumnLength(sql_table) + sql_table.Name.Length;
                bool flag_first_value;
                string name_buffer;

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine("(");
                sb.AppendLine(GenerateSelectClauseArguments(sql_table, select_fields));
                sb.AppendLine(")");
                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();

                #region Selected Columns

                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (flag_first_value)
                    {
                        sb.Append("SELECT" + AddTabs(1));
                        flag_first_value = false;
                    }
                    else
                    {
                        sb.Append("," + Environment.NewLine + AddTabs(2));
                    }

                    name_buffer = NameFormatter.ToTSQLName(sql_column.Table.Name) + "." + NameFormatter.ToTSQLName(sql_column.Name);
                    sb.Append(PadSqlVariableName(name_buffer, longest_column) + "AS " + NameFormatter.ToTSQLName(sql_column.Name));
                }
                #endregion

                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine("FROM" + AddTabs(1) + NameFormatter.ToTSQLName(sql_table.Name));
                sb.AppendLine();

                sb.AppendLine("WHERE" + AddTabs(1) + PadSqlVariableName(NameFormatter.ToTSQLName(sql_table.Name) + ".[Disabled]", longest_column) + "= 0");
                sb.AppendLine(GenerateSelectClause(sql_table, select_fields));
                sb.AppendLine();
                sb.AppendLine(GenerateOrderByClause(sql_table, sort_fields));
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #27
0
        public static OutputObject GenerateWinformEditCodeDesigner(SqlTable sql_table)
        {
            #region Code Output
                //namespace MarvelSuperheroesEditor
                //{
                //    partial class Form1
                //    {
                //        /// <summary>
                //        /// Required designer variable.
                //        /// </summary>
                //        private System.ComponentModel.IContainer components = null;

                //        /// <summary>
                //        /// Clean up any resources being used.
                //        /// </summary>
                //        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
                //        protected override void Dispose(bool disposing)
                //        {
                //            if (disposing && (components != null))
                //            {
                //                components.Dispose();
                //            }
                //            base.Dispose(disposing);
                //        }

                //        #region Windows Form Designer generated code

                //        /// <summary>
                //        /// Required method for Designer support - do not modify
                //        /// the contents of this method with the code editor.
                //        /// </summary>
                //        private void InitializeComponent()
                //        {
                //            this.btnSave = new System.Windows.Forms.Button();
                //            this.btnCancel = new System.Windows.Forms.Button();
                //            this.label1 = new System.Windows.Forms.Label();
                //            this.textBox1 = new System.Windows.Forms.TextBox();
                //            this.SuspendLayout();
                //            //
                //            // btnSave
                //            //
                //            this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
                //            this.btnSave.Location = new System.Drawing.Point(232, 36);
                //            this.btnSave.Name = "btnSave";
                //            this.btnSave.Size = new System.Drawing.Size(75, 23);
                //            this.btnSave.TabIndex = 0;
                //            this.btnSave.Text = "Save";
                //            this.btnSave.UseVisualStyleBackColor = true;
                //            //
                //            // btnCancel
                //            //
                //            this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
                //            this.btnCancel.Location = new System.Drawing.Point(151, 36);
                //            this.btnCancel.Name = "btnCancel";
                //            this.btnCancel.Size = new System.Drawing.Size(75, 23);
                //            this.btnCancel.TabIndex = 1;
                //            this.btnCancel.Text = "Cancel";
                //            this.btnCancel.UseVisualStyleBackColor = true;
                //            //
                //            // label1
                //            //
                //            this.label1.AutoSize = true;
                //            this.label1.Location = new System.Drawing.Point(12, 9);
                //            this.label1.Name = "label1";
                //            this.label1.Size = new System.Drawing.Size(35, 13);
                //            this.label1.TabIndex = 2;
                //            this.label1.Text = "label1";
                //            //
                //            // textBox1
                //            //
                //            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                //            | System.Windows.Forms.AnchorStyles.Right)));
                //            this.textBox1.Location = new System.Drawing.Point(118, 6);
                //            this.textBox1.Name = "textBox1";
                //            this.textBox1.Size = new System.Drawing.Size(189, 20);
                //            this.textBox1.TabIndex = 3;
                //            //
                //            // Form1
                //            //
                //            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                //            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                //            this.ClientSize = new System.Drawing.Size(319, 71);
                //            this.Controls.Add(this.textBox1);
                //            this.Controls.Add(this.label1);
                //            this.Controls.Add(this.btnCancel);
                //            this.Controls.Add(this.btnSave);
                //            this.Name = "Form1";
                //            this.Text = "Form1";
                //            this.ResumeLayout(false);
                //            this.PerformLayout();
                //        }

                //        #endregion

                //        private System.Windows.Forms.Button btnSave;
                //        private System.Windows.Forms.Button btnCancel;
                //        private System.Windows.Forms.Label label1;
                //        private System.Windows.Forms.TextBox textBox1;
                //    }
                //}
                #endregion

                if (sql_table == null)
                    return null;

                string class_name = "frmEdit" + NameFormatter.ToCSharpPropertyName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".Designer.cs";
                output.Type = OutputObject.eObjectType.CSharp;

                int total_form_height = 56 + (26 * sql_table.Columns.Values.Count);

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "Editor");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "partial class " + class_name);
                sb.AppendLine(AddTabs(1) + "{");
                sb.AppendLine(AddTabs(2) + "/// <summary>");
                sb.AppendLine(AddTabs(2) + "/// Required designer variable.");
                sb.AppendLine(AddTabs(2) + "/// </summary>");
                sb.AppendLine(AddTabs(2) + "private System.ComponentModel.IContainer components = null;");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "/// <summary>");
                sb.AppendLine(AddTabs(2) + "/// Clean up any resources being used.");
                sb.AppendLine(AddTabs(2) + "/// </summary>");
                sb.AppendLine(AddTabs(2) + "/// <param name=\"disposing\">true if managed resources should be disposed; otherwise, false.</param>");
                sb.AppendLine(AddTabs(2) + "protected override void Dispose(bool disposing)");
                sb.AppendLine(AddTabs(2) + "{");
                sb.AppendLine(AddTabs(3) + "if (disposing && (components != null))");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "components.Dispose();");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine(AddTabs(3) + " base.Dispose(disposing);");
                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#region Windows Form Designer generated code");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "/// <summary>");
                sb.AppendLine(AddTabs(2) + "/// Required method for Designer support - do not modify");
                sb.AppendLine(AddTabs(2) + "/// the contents of this method with the code editor.");
                sb.AppendLine(AddTabs(2) + "/// </summary>");
                sb.AppendLine(AddTabs(2) + "private void InitializeComponent()");
                sb.AppendLine(AddTabs(2) + "{");
                sb.AppendLine(AddTabs(3) + "this.btnSave = new System.Windows.Forms.Button();");
                sb.AppendLine(AddTabs(3) + "this.btnCancel = new System.Windows.Forms.Button();");
                sb.AppendLine(AddTabs(3) + "this.cboItemList = new System.Windows.Forms.ComboBox();");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.AppendLine(AddTabs(3) + "this.lbl" + sql_column.Name + " = new System.Windows.Forms.Label();");
                    sb.AppendLine(AddTabs(3) + "this.txt" + sql_column.Name + " = new System.Windows.Forms.TextBox();");
                    sb.AppendLine();
                }

                sb.AppendLine(AddTabs(3) + "this.SuspendLayout();");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// btnSave");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Location = new System.Drawing.Point(232," + (total_form_height-26).ToString() + ");");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Name = \"btnSave\";");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Size = new System.Drawing.Size(75, 23);");
                sb.AppendLine(AddTabs(3) + "this.btnSave.TabIndex = 0;");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Text = \"Save\";");
                sb.AppendLine(AddTabs(3) + "this.btnSave.UseVisualStyleBackColor = true;");
                sb.AppendLine(AddTabs(3) + "this.btnSave.Click += new System.EventHandler(this.btnSave_Click);");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// btnCancel");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Location = new System.Drawing.Point(151," + (total_form_height-26).ToString() + ");");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Name = \"btnCancel\";");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Size = new System.Drawing.Size(75, 23);");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.TabIndex = 1;");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Text = \"Cancel\";");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.UseVisualStyleBackColor = true;");
                sb.AppendLine(AddTabs(3) + "this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// cboItemList");
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.FormattingEnabled = true;");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.Location = new System.Drawing.Point(12, 5);");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.Name = \"cboItemList\";");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.Size = new System.Drawing.Size(295, 21);");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.TabIndex = 2;");
                sb.AppendLine(AddTabs(3) + "this.cboItemList.SelectedIndexChanged += new System.EventHandler(this.cboItemList_SelectedIndexChanged);");

                int height = 26;
                int tab_index = 3;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    string label_name       = "lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name);
                    string textbox_name     = "txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name);

                    sb.AppendLine(AddTabs(3) + "//");
                    sb.AppendLine(AddTabs(3) + "// " + label_name);
                    sb.AppendLine(AddTabs(3) + "//");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".AutoSize = true;");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".Location = new System.Drawing.Point(12," + (height + 9).ToString() + ");");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".Name = \"" + label_name + "\";");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".Size = new System.Drawing.Size(35, 13);");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".TabIndex = " + tab_index.ToString() + ";");
                    sb.AppendLine(AddTabs(3) + "this." + label_name + ".Text = \"" + NameFormatter.ToFriendlyName(sql_column.Name) + "\";");

                    tab_index++;

                    sb.AppendLine(AddTabs(3) + "//");
                    sb.AppendLine(AddTabs(3) + "// " + textbox_name);
                    sb.AppendLine(AddTabs(3) + "//");
                    sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right)));");
                    sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Location = new System.Drawing.Point(118," + (height + 6).ToString() + ");");
                    sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Name = \"" + textbox_name + "\";");
                    sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".Size = new System.Drawing.Size(189, 20);");
                    sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".TabIndex = " + tab_index.ToString() + ";");
                    //sb.AppendLine(AddTabs(3) + "this." + textbox_name + ".MaxLength = " + sql_column.Length + ";");

                    tab_index++;
                    height += 26;
                }

                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "// " + class_name);
                sb.AppendLine(AddTabs(3) + "//");
                sb.AppendLine(AddTabs(3) + "this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);");
                sb.AppendLine(AddTabs(3) + "this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;");
                sb.AppendLine(AddTabs(3) + "this.ClientSize = new System.Drawing.Size(319," + total_form_height.ToString() + ");");

                sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.btnCancel);");
                sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.btnSave);");
                sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.cboItemList);");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ");");
                    sb.AppendLine(AddTabs(3) + "this.Controls.Add(this.lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ");");
                    sb.AppendLine();
                }

                sb.AppendLine(AddTabs(3) + "this.MinimumSize = new System.Drawing.Size(319," + total_form_height.ToString() + ");");
                sb.AppendLine(AddTabs(3) + "this.Name = \"" + class_name + "\";");
                sb.AppendLine(AddTabs(3) + "this.Text = \"" +  NameFormatter.ToCSharpPropertyName(sql_table.Name) + "\";");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "this.ResumeLayout(false);");
                sb.AppendLine(AddTabs(3) + "this.PerformLayout();");

                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Button btnSave;");
                sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Button btnCancel;");
                sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.ComboBox cboItemList;");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.Label lbl" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                    sb.AppendLine(AddTabs(2) + "private System.Windows.Forms.TextBox txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + ";");
                    sb.AppendLine();
                }

                sb.AppendLine(AddTabs(2) + "}");
                sb.AppendLine(AddTabs(1) + "}");

                output.Body = sb.ToString();
                return output;
        }
Пример #28
0
        // SQL Procs
        public static OutputObject GenerateSelectSingleProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name   = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.SelectSingle, null);
                int longest_column      = GetLongestColumnLength(sql_table) + sql_table.Name.Length;
                bool flag_first_value;
                string name_buffer;

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                // sanity check - if there are no primary keys in the table, we cannot know
                // what would a good choice would be for a qualifier. Abort and return error msg.
                if (sql_table.PkList.Count == 0)
                {
                    output.Body = "/* Cannot generate " + procedure_name + ", no primary keys set on " + sql_table.Name + ". */" + Environment.NewLine + Environment.NewLine;
                    return output;
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine(GenerateSqlStoredProcParameters(sql_table, eIncludedFields.PKOnly));

                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();

                #region Selected Columns

                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (flag_first_value)
                    {
                        sb.Append("SELECT" + AddTabs(1));
                        flag_first_value = false;
                    }
                    else
                    {
                        sb.Append("," + Environment.NewLine + AddTabs(2));
                    }

                    name_buffer = NameFormatter.ToTSQLName(sql_column.Table.Name) + "." + NameFormatter.ToTSQLName(sql_column.Name);
                    sb.Append(PadSqlVariableName(name_buffer, longest_column) + "AS " + NameFormatter.ToTSQLName(sql_column.Name));
                }
                #endregion

                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine("FROM" + AddTabs(1) + NameFormatter.ToTSQLName(sql_table.Name));
                sb.AppendLine();

                #region Where Clause
                flag_first_value = true;
                sb.AppendLine("WHERE" + AddTabs(1) + PadSqlVariableName(NameFormatter.ToTSQLName(sql_table.Name) + ".[Disabled]", longest_column) + "= 0");

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    string tsql_variablename = NameFormatter.ToTSQLVariableName(sql_column);

                    if (sql_column.IsPk)
                    {
                        name_buffer = NameFormatter.ToTSQLName(sql_column.Table.Name) + "." + NameFormatter.ToTSQLName(sql_column.Name);
                        sb.AppendLine("AND" + AddTabs(2) + PadSqlVariableName(name_buffer, longest_column) + "= " + tsql_variablename);
                    }
                }
                #endregion

                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #29
0
        public static OutputObject GenerateSetProc(SqlTable sql_table, bool generate_stored_proc_perms)
        {
            if (sql_table == null)
                    return null;

                string procedure_name       = GenerateSqlStoredProcName(sql_table.Name, eStoredProcType.UpdateInsert, null);
                int longest_column          = GetLongestColumnLength(sql_table);
                bool flag_first_value       = true;

                OutputObject output = new OutputObject();
                output.Name = procedure_name + ".sql";
                output.Type = OutputObject.eObjectType.Sql;

                // sanity check - if there are no primary keys in the table, we cannot know
                // what would a good choice would be for a qualifier. Abort and return error msg.
                if (sql_table.PkList.Count == 0)
                {
                    output.Body = "/* Cannot generate " + procedure_name + ", no primary keys set on " + sql_table.Name + ". */" + Environment.NewLine + Environment.NewLine;
                    return output;
                }

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateSqlExistanceChecker(procedure_name));
                sb.AppendLine(GenerateHeader(procedure_name));

                sb.AppendLine("CREATE PROCEDURE " + procedure_name);
                sb.AppendLine(GenerateSqlStoredProcParameters(sql_table, eIncludedFields.All));

                sb.AppendLine("AS");
                sb.AppendLine();
                sb.AppendLine("SET NOCOUNT ON");
                sb.AppendLine();

                #region Existance Check
                sb.Append("IF EXISTS (SELECT 1 FROM [" + sql_table.Name + "] ");

                // Build where clause
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (sql_column.IsPk)
                    {
                        if (flag_first_value)
                        {
                            sb.Append("WHERE ");
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append(" AND ");
                        }

                        sb.Append(sql_column.Name + " = " + NameFormatter.ToTSQLVariableName(sql_column));
                    }
                }

                sb.AppendLine(")");
                #endregion

                sb.AppendLine("BEGIN");

                #region Update Clause
                sb.Append(AddTabs(1) + "-- Already Exists, Update" + Environment.NewLine );
                sb.Append(AddTabs(1) + "UPDATE\t[" + sql_table.Name + "]" + Environment.NewLine );

                // list selected columns
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsPk && !sql_column.IsIdentity)
                    {
                        if (flag_first_value)
                        {
                            sb.Append(AddTabs(1) + "SET" + AddTabs(2));
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append("," + Environment.NewLine + AddTabs(3));
                        }

                        sb.Append(PadSqlVariableName(NameFormatter.ToTSQLName(sql_column.Name), longest_column) + "= " + NameFormatter.ToTSQLVariableName(sql_column));
                    }
                }

                sb.Append(Environment.NewLine);

                // Build where clause
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (sql_column.IsPk)
                    {
                        if (flag_first_value)
                        {
                            sb.Append(AddTabs(1) + "WHERE" + AddTabs(1));
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append(Environment.NewLine + AddTabs(1) + "AND" + AddTabs(1));
                        }

                        sb.Append(PadSqlVariableName(NameFormatter.ToTSQLName(sql_column.Name), longest_column) + "= " + NameFormatter.ToTSQLVariableName(sql_column));
                    }
                }

                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "RETURN @Id"); // HACK - this will work with my PK designs....
                #endregion

                sb.AppendLine("END");
                sb.AppendLine("ELSE");
                sb.AppendLine("BEGIN");

                #region Insert Clause
                sb.AppendLine(AddTabs(1) + "-- New Entry, Insert");
                sb.AppendLine(AddTabs(1) + "INSERT [" + sql_table.Name + "]");
                sb.AppendLine(AddTabs(1) + "(");

                // list selected columns
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsIdentity)
                    {
                        if (flag_first_value)
                        {
                            sb.Append(AddTabs(2));
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append("," + Environment.NewLine + AddTabs(2));
                        }

                        sb.Append(NameFormatter.ToTSQLName(sql_column.Name));
                    }
                }

                sb.Append(Environment.NewLine + AddTabs(1) + ")");
                sb.Append(Environment.NewLine + AddTabs(1) + "VALUES");
                sb.Append(Environment.NewLine + AddTabs(1) + "(");

                // Build where clause
                flag_first_value = true;

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsIdentity)
                    {
                        if (flag_first_value)
                        {
                            sb.Append(Environment.NewLine + AddTabs(2));
                            flag_first_value = false;
                        }
                        else
                        {
                            sb.Append("," + Environment.NewLine + AddTabs(2));
                        }

                        sb.Append(NameFormatter.ToTSQLVariableName(sql_column));
                    }
                }

                sb.Append(Environment.NewLine + AddTabs(1) + ")");
                sb.AppendLine();
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "RETURN SCOPE_IDENTITY()");
                #endregion

                sb.AppendLine("END");
                sb.AppendLine("GO");
                sb.AppendLine();

                if (generate_stored_proc_perms)
                {
                    sb.AppendLine(GenerateSqlStoredProcPerms(procedure_name));
                    sb.AppendLine();
                }

                output.Body = sb.ToString();
                return output;
        }
Пример #30
0
        public static OutputObject GenerateCSharpSimpleOrmClass(SqlTable sql_table)
        {
            if (sql_table == null)
                    return null;

                string class_name       = NameFormatter.ToCSharpClassName(sql_table.Name);
                int longest_column      = GetLongestColumnLength(sql_table);

                OutputObject output = new OutputObject();
                output.Name = class_name + ".cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                #region Header block

                sb.AppendLine("using System;");
                sb.AppendLine();

                #endregion

                sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");

                //sb.AppendLine(AddTabs(1) + "[Serializable]");
                sb.AppendLine(AddTabs(1) + "public partial class " + class_name);
                sb.AppendLine(AddTabs(1) + "{");

                #region Properties Block
                ////////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    #region Sample Output
                    //public string SomeID { get;set; }
                    #endregion Sample Output

                    sb.AppendLine(AddTabs(3) + "public virtual " + NameFormatter.SQLTypeToCSharpType(sql_column) + " " + NameFormatter.ToCSharpPropertyName(sql_column.Name) + " { get; set; }");
                }

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");

                ////////////////////////////////////////////////////////////////////////////////
                #endregion

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
Пример #31
0
        // Button clicks
        private void btnGenerateCode_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

                try
                {
                    // make sure we have a solid target to push to
                    if (Directory.Exists(txtOutputPath.Text))
                    {
                        _OutputPath = txtOutputPath.Text;
                    }
                    else
                    {
                        DisplayMessage("Specified output directory does not exist, halting code generation.", true);
                        return;
                    }

                    SqlDatabase sql_database        = new SqlDatabase();
                    StringBuilder sb                = new StringBuilder();
                    OutputObject output             = new OutputObject();

                    string regex_string             = txtTableNameRegex.Text;
                    string output_file_name         = string.Empty;
                    string generated_code           = string.Empty;
                    string file_name                = string.Empty;

                    sql_database.LoadDatabaseMetadata(_DatabaseName, _Conn.ToString());

                    // check for loading errors
                    foreach (var item in sql_database.ErrorList)
                        DisplayMessage(item.Message, true);

                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptMiscRemoveExistingScripts))
                        DeleteOldScriptFiles();

                    #region Generate output
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptSQLCreateHelperSp))
                    {
                        string script   = CodeGenerator.GenerateGetTableDetailsStoredProcedure();
                        file_name       = Combine(_OutputPath, ConfigurationManager.AppSettings["DefaultTableDetailsSPName"]);

                        FileIo.WriteToFile(file_name, script);
                    }
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpCreateBaseClass))
                    {
                        output          = CodeGenerator.GenerateCSharpBaseClass(_DatabaseName);
                        file_name       = Combine(_OutputPath, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);
                    }
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptAspCreateMasterPage))
                    {
                        // grab a list of all the selected tables
                        List<string> selected_tables = new List<string>();

                        foreach (string table_name in clbAspSqlTables.CheckedItems)
                            selected_tables.Add(table_name);

                        output          = CodeGenerator.GenerateMasterPageCodeInFront(sql_database.Name, selected_tables);
                        file_name       = Combine(_OutputPath, s_DirectoryAspPages, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);

                        output          = CodeGenerator.GenerateMasterPageCodeBehind(sql_database.Name);
                        file_name       = Combine(_OutputPath, s_DirectoryAspPages, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);
                    }
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptAspCreateCSSPage))
                    {
                        output = CodeGenerator.GenerateCSSSheet(_DatabaseName);

                        // this file is a css file
                        output.Name += ".css";

                        file_name = Combine(_OutputPath, s_DirectoryAspPages, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);
                    }
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptAspCreateWebConfig))
                    {
                        output          = CodeGenerator.GenerateWebConfig(_Conn);
                        file_name       = Combine(_OutputPath, s_DirectoryAspPages, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);
                    }
                    if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptAspCreateDefaultPage))
                    {
                        output          = CodeGenerator.GenerateDefaultPageCodeInFront(sql_database.Name);
                        file_name       = Combine(_OutputPath, s_DirectoryAspPages, output.Name);

                        FileIo.WriteToFile(file_name, output.Body);

                        output = CodeGenerator.GenerateDefaultPageCodeBehind(sql_database.Name);

                        FileIo.WriteToFile(file_name, output.Body);
                    }
                    #endregion
                    #region Sql Code Generation
                    if (clbTsqlSqlTables.CheckedItems.Count > 0 && clbTsqlSqlObjects.CheckedItems.Count > 0)
                    {
                        sb.Append(CodeGenerator.GenerateSqlScriptHeader(_DatabaseName));

                        foreach (string table_name in clbTsqlSqlTables.CheckedItems)
                        {
                            SqlTable sql_table = sql_database.Tables[table_name];

                            List<string> sort_fields        = new List<string>();
                            List<string> search_fields      = new List<string>();
                            List<string> select_fields      = new List<string>();

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelMany) ||
                                clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelManyByX) ||
                                clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelAll) ||
                                clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelAllPage))
                            {
                                FieldSelector field_selector = new FieldSelector(sort_fields, sql_table, string.Format(Properties.Resource.SelectSortField, sql_table.Name));
                                field_selector.ShowDialog(this);
                            }

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelAllPage) ||
                                clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlCountSearch))
                            {
                                FieldSelector field_selector = new FieldSelector(search_fields, sql_table, string.Format(Properties.Resource.SelectSearchField, sql_table.Name));
                                field_selector.ShowDialog(this);
                            }

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelManyByX))
                            {
                                FieldSelector field_selector = new FieldSelector(select_fields, sql_table, string.Format(Properties.Resource.SelectSelectField, sql_table.Name));
                                field_selector.ShowDialog(this);
                            }

                            // We are placeing all the SQl scripts in a temp dictionary
                            // object so we dont have to write them to a file untill they
                            // are all completely built.
                            List<OutputObject> sql_procedures = new List<OutputObject>();

                            // should we be generating permissisons with the sp?
                            bool create_sql_permissions = clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptSQLCreateSqlSpPerms);

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelSingle))
                                sql_procedures.Add(CodeGenerator.GenerateSelectSingleProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelMany))
                                sql_procedures.Add(CodeGenerator.GenerateSelectManyProc(sql_table, sort_fields, create_sql_permissions));

                              if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelManyByX))
                                sql_procedures.Add(CodeGenerator.GenerateSelectManyByXProc(sql_table, sort_fields, select_fields, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelAll))
                                sql_procedures.Add(CodeGenerator.GenerateSelectAllProc(sql_table, sort_fields, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlSelAllPage))
                                sql_procedures.Add(CodeGenerator.GenerateSelectAllPaginatedProc(sql_table, sort_fields, search_fields, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlUpdIns))
                                sql_procedures.Add(CodeGenerator.GenerateSetProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlDelSingle))
                                sql_procedures.Add(CodeGenerator.GenerateDeleteSingleProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlDelMany))
                                sql_procedures.Add(CodeGenerator.GenerateDeleteManyProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlDelAll))
                                sql_procedures.Add(CodeGenerator.GenerateDeleteAllProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlCountAll))
                                sql_procedures.Add(CodeGenerator.GenerateCountAllProc(sql_table, create_sql_permissions));

                            if (clbTsqlSqlObjects.CheckedItems.Contains(Properties.Resource.SqlCountSearch))
                                sql_procedures.Add(CodeGenerator.GenerateCountSearchProc(sql_table, search_fields, create_sql_permissions));

                            // build one script or many?
                            if (this.clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptSQLSeperateFiles))
                            {
                                string sql_header = sb.ToString();

                                foreach (var item in sql_procedures)
                                {
                                    file_name = Combine(_OutputPath, item.Name + ".sql");
                                    FileIo.WriteToFile(file_name, sql_header + item.Body);
                                }
                            }
                            else
                            {
                                foreach (var item in sql_procedures)
                                    sb.Append(item.Body);

                                file_name = Combine(_OutputPath, _DatabaseName + ConfigurationManager.AppSettings["DefaultSQLScriptFilename"]);
                                FileIo.WriteToFile(file_name, sb.ToString());
                            }
                        }

                        DisplayMessage("SQL objects created.", false);
                    }
                    #endregion
                    #region C# Code Generation
                    if (clbCsharpSqlTables.CheckedItems.Count > 0 && clbCsharpObjects.CheckedItems.Count > 0)
                    {
                        foreach (string table_name in clbCsharpSqlTables.CheckedItems)
                        {
                            if (!sql_database.Tables.ContainsKey(table_name))
                                continue;

                            SqlTable current_table = sql_database.Tables[table_name];

                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpOrm))
                            {
                                output = CodeGenerator.GenerateCSharpOrmClass(current_table, _NamespaceIncludes, clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpIncludeSqlClassDecoration), clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpIncludeBaseClassRefrence), clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpIncludeIsDirtyFlag));
                                file_name = Combine(_OutputPath, s_DirectoryOrm, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpSimpleOrm))
                            {
                                output = CodeGenerator.GenerateCSharpSimpleOrmClass(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryOrm, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpOrmExtension))
                            {
                                output = CodeGenerator.GenerateCSharpExternalOrmClass(current_table, _NamespaceIncludes);
                                file_name = Combine(_OutputPath, s_DirectoryOrmExt, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpInterface))
                            {
                                output = CodeGenerator.GenerateCSharpClassInterface(current_table, _NamespaceIncludes, clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpIncludeIsDirtyFlag));
                                file_name = Combine(_OutputPath, s_DirectoryInterface, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpDal))
                            {
                                output = CodeGenerator.GenerateCSharpDalClass(current_table, _NamespaceIncludes, clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpConvertNullableFields), clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptCsharpIncludeIsDirtyFlag));
                                file_name = Combine(_OutputPath, s_DirectoryDal, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpExtensionDal))
                            {
                                output = CodeGenerator.GenerateCSharpExternalDalClass(current_table, _NamespaceIncludes);
                                file_name = Combine(_OutputPath, s_DirectoryDalExt, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }

                            if (clbCsharpObjects.CheckedItems.Contains(Properties.Resource.CsharpEnum))
                            {
                                List<string> key_fields = new List<string>();
                                List<string> value_fields = new List<string>();

                                FieldSelector field_selector;

                                field_selector = new FieldSelector(key_fields, current_table, Properties.Resource.SelectEnumNameField, 1, 1);
                                field_selector.ShowDialog(this);

                                field_selector = new FieldSelector(value_fields, current_table, Properties.Resource.SelectEnumValueField, 1, 1);
                                field_selector.ShowDialog(this);

                                // Make sure that table has correct format
                                if (key_fields.Count != 1 || value_fields.Count != 1)
                                {
                                    DisplayMessage("Cannot generate enum for " + table_name + ".", true);
                                }
                                else
                                {
                                    // we have table metadata, get table data
                                    DataTable data_table = CodeGenerator.GenerateSqlTableData(_DatabaseName, table_name, this._Conn.ToString());

                                    output = CodeGenerator.GenerateCSharpEnumeration(current_table, key_fields[0], value_fields[0], data_table);
                                    file_name = Combine(_OutputPath, s_DirectoryEnums, output.Name);
                                    FileIo.WriteToFile(file_name, output.Body);
                                }
                            }
                        }

                        DisplayMessage("C# objects created", false);
                    }
                    #endregion
                    #region Winform Code Generation
                    if (clbWinformSqlTables.CheckedItems.Count > 0 && clbWinformObjects.CheckedItems.Count > 0)
                    {
                        foreach (string table_name in clbWinformSqlTables.CheckedItems)
                        {
                            if (!sql_database.Tables.ContainsKey(table_name))
                                continue;

                            SqlTable current_table = sql_database.Tables[table_name];

                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsEditPage))
                            {
                                output = CodeGenerator.GenerateWinformEditCode(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsEditDesigner))
                            {
                                output = CodeGenerator.GenerateWinformEditCodeDesigner(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsViewPage))
                            {
                                output = CodeGenerator.GenerateWinformViewCode(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsViewDesigner))
                            {
                                output = CodeGenerator.GenerateWinformViewCodeDesigner(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsMainPage))
                            {
                                output = CodeGenerator.GenerateWinformMainCode(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                            if (clbWinformObjects.CheckedItems.Contains(Properties.Resource.WinformsMainDesigner))
                            {
                                output = CodeGenerator.GenerateWinformMainCodeDesigner(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryWinforms, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                        }

                        DisplayMessage("Winform objects created", false);
                    }
                    #endregion
                    #region WebService Code Generation
                    if (clbWebServiceSqlTables.CheckedItems.Count > 0 && clbWebServiceObjects.CheckedItems.Count > 0)
                    {
                        foreach (string table_name in clbWebServiceSqlTables.CheckedItems)
                        {
                            SqlTable current_table = sql_database.Tables[table_name];

                            output = CodeGenerator.GenerateWebServiceCodeInfrontClass(current_table);
                            file_name = Combine(_OutputPath, s_DirectoryWebService, output.Name);
                            FileIo.WriteToFile(file_name, output.Body);

                            output = CodeGenerator.GenerateWebServiceCodeBehindClass(current_table, _NamespaceIncludes);
                            file_name = Combine(_OutputPath, s_DirectoryWebService, output.Name);
                            FileIo.WriteToFile(file_name, output.Body);
                        }

                        DisplayMessage("Webservice objects created", false);
                    }

                    #endregion
                    #region Aspx Code Generation
                    if (clbAspSqlTables.CheckedItems.Count > 0 && clbAspObjects.CheckedItems.Count > 0)
                    {
                        foreach (string table_name in clbAspSqlTables.CheckedItems)
                        {
                            SqlTable current_table = sql_database.Tables[table_name];

                            if (clbAspObjects.CheckedItems.Contains(Properties.Resource.AspCreateEditPage))
                            {
                                output = CodeGenerator.GenerateWebEditPageCodeInFront(current_table, clbCsharpObjects.CheckedItems.Contains(Properties.Resource.OptAspCreatePageAsConrol));
                                file_name = Combine(_OutputPath, s_DirectoryAspPages, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);

                                output = CodeGenerator.GenerateWebEditPageCodeBehind(current_table, _NamespaceIncludes);
                                FileIo.WriteToFile(file_name, output.Body);
                            }

                            if (clbAspObjects.CheckedItems.Contains(Properties.Resource.AspCreateListPage))
                            {
                                output = CodeGenerator.GenerateWebListPageCodeInFront(current_table, clbCsharpObjects.CheckedItems.Contains(Properties.Resource.OptAspCreatePageAsConrol));
                                file_name = Combine(_OutputPath, s_DirectoryAspPages, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);

                                output = CodeGenerator.GenerateWebListPageCodeBehind(current_table, _NamespaceIncludes);
                                FileIo.WriteToFile(file_name, output.Body);
                            }

                            if (clbAspObjects.CheckedItems.Contains(Properties.Resource.AspCreateViewPage))
                            {
                                output = CodeGenerator.GenerateWebViewPageCodeInFront(current_table, clbCsharpObjects.CheckedItems.Contains(Properties.Resource.OptAspCreatePageAsConrol));
                                file_name = Combine(_OutputPath, s_DirectoryAspPages, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);

                                output = CodeGenerator.GenerateWebViewPageCodeBehind(current_table, _NamespaceIncludes);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                        }

                        DisplayMessage("ASP objects created.", false);
                    }
                    #endregion
                    #region XML Generation
                    // XML Output
                    if (clbXmlSqlTables.CheckedItems.Count > 0 && this.clbXmlOptionsTables.CheckedItems.Count > 0)
                    {
                        bool generate_with_attributes = clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptXmlFormat);

                        string name_space = string.Empty;

                        if (clbOutputOptions.CheckedItems.Contains(Properties.Resource.OptXmlIncludeNs))
                            name_space = _DatabaseName;

                        foreach (string table_name in clbXmlSqlTables.CheckedItems)
                        {
                            if (!sql_database.Tables.ContainsKey(table_name))
                                continue;

                            SqlTable current_table = sql_database.Tables[table_name];

                            // Xml Export
                            if (clbXmlOptionsTables.CheckedItems.Contains(Properties.Resource.XmlExportData))
                            {
                                DataTable data_table = CodeGenerator.GenerateSqlTableData(_DatabaseName, table_name, _Conn.ToString());

                                if (generate_with_attributes)
                                {
                                    foreach (DataColumn column in data_table.Columns)
                                    {
                                        column.ColumnMapping = MappingType.Attribute;
                                    }
                                }

                                data_table.TableName    = table_name;
                                string xml_output       = XmlConverter.DataTableToXmlString(data_table, name_space);
                                file_name               = Combine(_OutputPath, s_DirectoryXMlData, table_name + ConfigurationManager.AppSettings["XMLExportSuffix"]);

                                FileIo.WriteToFile(file_name, xml_output);
                            }

                            // Xml Loader object
                            if (clbXmlOptionsTables.CheckedItems.Contains(Properties.Resource.XmlImportObject))
                            {
                                output = CodeGenerator.GenerateXmlLoader(current_table);
                                file_name = Combine(_OutputPath, s_DirectoryXMlData, output.Name);
                                FileIo.WriteToFile(file_name, output.Body);
                            }
                        }

                        DisplayMessage("XML objects created.", false);
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    LogError(ex, string.Empty);
                    DisplayMessage(ex.Message, true);
                }
                finally
                {
                    DisplayMessage("Code generation complete.", false);
                    this.Cursor = Cursors.Default;
                    System.Media.SystemSounds.Exclamation.Play();
                }
        }
Пример #32
0
        public static OutputObject GenerateCSharpBaseClass(string database_name)
        {
            if (string.IsNullOrEmpty(database_name))
                    return null;

                OutputObject output = new OutputObject();
                output.Name = "BaseClass.cs";
                output.Type = OutputObject.eObjectType.CSharp;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Text;");
                sb.AppendLine();
                sb.AppendLine("namespace " + database_name);
                sb.AppendLine("{");

                sb.AppendLine(AddTabs(1) + "[Serializable]");
                sb.AppendLine(AddTabs(1) + "public abstract class BaseClass");
                sb.AppendLine(AddTabs(1) + "{");

                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "protected bool _IsDirty       = false;");
                sb.AppendLine(AddTabs(3) + "protected bool _LoadError     = false;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "public bool IsDirty");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get { return _IsDirty; }");
                sb.AppendLine(AddTabs(4) + "set { _IsDirty = value; }");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine(AddTabs(3) + "public bool LoadError");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get { return _LoadError; }");
                sb.AppendLine(AddTabs(4) + "set { _LoadError = value; }");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "public virtual void Reset()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "_IsDirty = false;");
                sb.AppendLine(AddTabs(4) + "_LoadError = false;");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "public override string ToString()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "StringBuilder sb = new StringBuilder();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "sb.AppendLine(\"_IsDirty: \" + _IsDirty.ToString());");
                sb.AppendLine(AddTabs(4) + "sb.AppendLine(\"_LoadError: \" + _LoadError.ToString());");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "return sb.ToString();");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(2) + "#endregion");

                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");

                output.Body = sb.ToString();
                return output;
        }
        public OutputObject GenerateWinformEditCode(SqlTable sqlTable)
        {
            #region Sample Output
            //using System;
            //using System.Collections.Generic;
            //using System.ComponentModel;
            //using System.Data;
            //using System.Drawing;
            //using System.Linq;
            //using System.Text;
            //using System.Windows.Forms;

            //namespace MarvelSuperheroesEditor
            //{
            //    public partial class Form1 : Form
            //    {
            //        public Form1()
            //        {
            //            InitializeComponent();
            //        }
            //    }
            //}
            #endregion

            if (sqlTable == null)
            {
                return(null);
            }

            string class_name = "frmEdit" + NameFormatter.ToCSharpPropertyName(sqlTable.Name);
            string dal_name   = NameFormatter.ToCSharpClassName("Dal" + sqlTable.Name);

            var output = new OutputObject
            {
                Name = class_name + ".cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine("using System;");
            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.Configuration;");
            sb.AppendLine("using System.ComponentModel;");
            sb.AppendLine("using System.Data;");
            //sb.AppendLine("using System.Drawing;");
            //sb.AppendLine("using System.Linq;");
            //sb.AppendLine("using System.Text;");
            sb.AppendLine("using System.Windows.Forms;");
            sb.AppendLine();

            sb.AppendLine("using DAL;");
            sb.AppendLine("using " + NameFormatter.ToCSharpPropertyName(sqlTable.Database.Name) + ";");
            sb.AppendLine();

            sb.AppendLine("namespace " + NameFormatter.ToCSharpPropertyName(sqlTable.Database.Name) + "Editor");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + "public partial class " + class_name + " : Form");
            sb.AppendLine(AddTabs(1) + "{");

            #region Fields
            sb.AppendLine(AddTabs(2) + "#region Fields");
            sb.AppendLine();
            sb.AppendLine(AddTabs(3) + "protected string _SQLConnection = ConfigurationManager.ConnectionStrings[\"SQLConnection\"].ConnectionString;");
            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "#endregion");
            sb.AppendLine();
            #endregion

            #region Methods
            sb.AppendLine(AddTabs(2) + "#region Methods");
            sb.AppendLine();

            sb.AppendLine(AddTabs(3) + "public " + class_name + "()");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(4) + "InitializeComponent();");
            sb.AppendLine();
            sb.AppendLine(AddTabs(4) + "LoadPopulateItemList();");
            sb.AppendLine(AddTabs(3) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(3) + "private bool LoadPopulateItemList()");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(4) + "this.Cursor = Cursors.WaitCursor;");
            sb.AppendLine();
            sb.AppendLine(AddTabs(4) + "try");
            sb.AppendLine(AddTabs(4) + "{");
            sb.AppendLine(AddTabs(5) + "" + dal_name + " dal = new " + dal_name + "(_SQLConnection);");
            sb.AppendLine();
            sb.AppendLine(AddTabs(5) + "if (dal.LoadAllFromDb())");
            sb.AppendLine(AddTabs(5) + "{");
            sb.AppendLine(AddTabs(6) + "if (dal.Collection != null && dal.Collection.Count != 0)");
            sb.AppendLine(AddTabs(6) + "{");
            sb.AppendLine(AddTabs(7) + "cboItemList.BeginUpdate();");
            sb.AppendLine(AddTabs(7) + "cboItemList.ValueMember     = \"" + FindIdField(sqlTable) + "\";");
            sb.AppendLine(AddTabs(7) + "cboItemList.DisplayMember   = \"" + FindNameField(sqlTable) + "\";");
            sb.AppendLine(AddTabs(7) + "cboItemList.DataSource      = dal.Collection;");
            sb.AppendLine(AddTabs(7) + "cboItemList.EndUpdate();");
            sb.AppendLine(AddTabs(6) + "}");
            sb.AppendLine(AddTabs(5) + "}");
            sb.AppendLine(AddTabs(4) + "}");
            sb.AppendLine(AddTabs(4) + "catch");
            sb.AppendLine(AddTabs(4) + "{");
            sb.AppendLine(AddTabs(5) + "return false;");
            sb.AppendLine(AddTabs(4) + "}");
            sb.AppendLine();
            sb.AppendLine(AddTabs(4) + "this.Cursor = Cursors.Default;");
            sb.AppendLine(AddTabs(4) + "return true;");
            sb.AppendLine(AddTabs(3) + "}");
            sb.AppendLine();

            sb.AppendLine(AddTabs(2) + "#endregion");
            sb.AppendLine();
            #endregion

            #region Events
            sb.AppendLine(AddTabs(2) + "#region Events");
            sb.AppendLine();

            sb.AppendLine(AddTabs(3) + "private void btnCancel_Click(object sender, EventArgs e)");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(3) + "}");
            sb.AppendLine(AddTabs(3) + "private void btnSave_Click(object sender, EventArgs e)");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(3) + "}");
            sb.AppendLine(AddTabs(3) + "private void cboItemList_SelectedIndexChanged(object sender, EventArgs e)");
            sb.AppendLine(AddTabs(3) + "{");
            sb.AppendLine(AddTabs(3) + "}");

            sb.AppendLine();
            sb.AppendLine(AddTabs(2) + "#endregion");
            #endregion

            sb.AppendLine(AddTabs(1) + "}");
            sb.AppendLine("}");

            output.Body = sb.ToString();
            return(output);
        }
Пример #34
0
        public static OutputObject GenerateWebListPageCodeBehind(SqlTable sql_table, List<string> namespace_includes)
        {
            if (sql_table == null)
                    return null;

                string class_name = "List" + NameFormatter.ToCSharpPropertyName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name =  class_name + ".aspx.cs";
                output.Type = OutputObject.eObjectType.CSharp;

                namespace_includes.Add(NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));

                StringBuilder sb = new StringBuilder();

                #region Includes
                sb.AppendLine("using System;");
                sb.AppendLine("using System.Data;");
                sb.AppendLine("using System.Configuration;");
                sb.AppendLine("using System.Collections;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Web;");
                sb.AppendLine("using System.Web.Security;");
                sb.AppendLine("using System.Web.UI;");
                sb.AppendLine("using System.Web.UI.WebControls;");
                sb.AppendLine("using System.Web.UI.WebControls.WebParts;");
                sb.AppendLine("using System.Web.UI.HtmlControls;");
                sb.AppendLine();

                sb.AppendLine(GenerateNamespaceIncludes(namespace_includes));
                sb.AppendLine();

                #endregion

                sb.AppendLine("namespace WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name));
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "public partial class " + class_name + " : System.Web.UI.Page");
                sb.AppendLine(AddTabs(1) + "{");

                #region Fields
                sb.AppendLine(AddTabs(2) + "#region Fields");
                sb.AppendLine();
                sb.AppendLine(AddTabs(3) + "protected string _SQLConnection = ConfigurationManager.ConnectionStrings[\"SQLConnection\"].ConnectionString;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                #endregion

                #region Properties
                sb.AppendLine(AddTabs(2) + "#region Properties");
                sb.AppendLine();

                sb.AppendLine(AddTabs(3) + "protected string PageName");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get { return \"" + class_name + "\"; }");
                sb.AppendLine(AddTabs(3) + "}");
                sb.AppendLine(AddTabs(3) + "protected PaginationManager PageinationData");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"PaginationManager\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"PaginationManager\"] = new PaginationManager();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (PaginationManager)ViewState[\"PaginationManager\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"PaginationManager\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected string ReturnPage");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"ReturnPage\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"ReturnPage\"] = \"~/Default.aspx\";");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (string)ViewState[\"ReturnPage\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"ReturnPage\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected int EditingID");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"EditingID\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"EditingID\"] = -1;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (int)ViewState[\"EditingID\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"EditingID\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine(AddTabs(3) + "protected string SearchString");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "get");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (ViewState[\"SearchString\"] == null)");
                sb.AppendLine(AddTabs(6) + "ViewState[\"SearchString\"] = string.Empty;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "return (string)ViewState[\"SearchString\"];");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(4) + "set");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "ViewState[\"SearchString\"] = value;");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                #endregion

                sb.AppendLine(AddTabs(2) + "#region Methods");
                sb.AppendLine();

                #region Bind Repeater method
                sb.AppendLine(AddTabs(3) + "protected void BindRepeater()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "var dal_obj = new " + NameFormatter.ToCSharpClassName("Dal" + sql_table.Name) + "(_SQLConnection);");
                sb.AppendLine(AddTabs(4) + "dal_obj.LoadAllFromDbPaged(this.PageinationData.ItemIndex, this.PageinationData.PageSize, this.SearchString);");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "this.PageinationData.SetSize = dal_obj.GetSearchCountFromDb(this.SearchString);");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "rptList.DataSource = dal_obj.Collection;");
                sb.AppendLine(AddTabs(4) + "rptList.DataBind();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region Bind Page Size Control method
                sb.AppendLine(AddTabs(3) + "protected void BindPageSizeControl()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Items.Clear();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Items.Add(new ListItem(\"10\"));");
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Items.Add(new ListItem(\"25\"));");
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Items.Add(new ListItem(\"50\"));");
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Items.Add(new ListItem(\"100\"));");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "this.ddlPageSize.Text = this.PageinationData.PageSize.ToString();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region Bind Page Counter method
                sb.AppendLine(AddTabs(3) + "protected void BindPageCounter()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.lblCounter.Text = string.Format(\"Items {0} - {1} of {2}\",");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.FirstItemOnCurrentPage, ");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.LastItemOnCurrentPage, ");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.SetSize);");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region Check Credentials method
                sb.AppendLine(AddTabs(3) + "protected void CheckCredentials()");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#region Events");
                sb.AppendLine();

                #region pageload event method
                sb.AppendLine(AddTabs(3) + "protected void Page_Load(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "CheckCredentials();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "this.txtSearch.Focus();");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "if (!Page.IsPostBack)");
                sb.AppendLine(AddTabs(4) + "{");
                sb.AppendLine(AddTabs(5) + "if (Request.QueryString[\"ReturnPage\"] != null)");
                sb.AppendLine(AddTabs(6) + "this.ReturnPage = (string)Request.QueryString[\"ReturnPage\"];");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "if (Request.QueryString[\"PageData\"] != null)");
                sb.AppendLine(AddTabs(6) + "this.PageinationData = new PaginationManager(Request.QueryString[\"PageData\"].ToString());");
                sb.AppendLine();
                sb.AppendLine(AddTabs(5) + "BindPageSizeControl();");
                sb.AppendLine(AddTabs(5) + "BindRepeater();");
                sb.AppendLine(AddTabs(5) + "BindPageCounter();");
                sb.AppendLine(AddTabs(4) + "}");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnPrevPage_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnPrevPage_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.PreviousPage();");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnNextPage_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnNextPage_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.NextPage();");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnFirstPage_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnFirstPage_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.JumpToFirstPage();");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnLastPage_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnLastPage_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.JumpToLastPage();");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnAddNewItem_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnAddNewItem_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.Response.Redirect(\"Edit" + NameFormatter.ToCSharpPropertyName(sql_table.Name) + ".Aspx?id=0&ReturnPage=\" + this.PageName + \"&PageData=\" + this.PageinationData.ToString(), true);");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region btnSearch_Click method
                sb.AppendLine(AddTabs(3) + "protected void btnSearch_Click(object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.SearchString = this.txtSearch.Text;");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.ItemIndex = 1;");
                sb.AppendLine();
                sb.AppendLine(AddTabs(4) + "BindPageSizeControl();");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                #region ddlPageSize_SelectedIndexChanged method
                sb.AppendLine(AddTabs(3) + "protected void ddlPageSize_SelectedIndexChanged(Object sender, EventArgs e)");
                sb.AppendLine(AddTabs(3) + "{");
                sb.AppendLine(AddTabs(4) + "this.PageinationData.PageSize = Convert.ToInt32(this.ddlPageSize.Text);");
                sb.AppendLine(AddTabs(4) + "BindRepeater();");
                sb.AppendLine(AddTabs(4) + "BindPageCounter();");
                sb.AppendLine(AddTabs(3) + "}");
                #endregion

                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "#endregion");
                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");
                sb.AppendLine();
                output.Body = sb.ToString();
                return output;
        }
Пример #35
0
        public static OutputObject GenerateWebConfig(ConnectionString connection_string)
        {
            if (connection_string == null)
                    return null;

                OutputObject output     = new OutputObject();
                output.Name             = ConfigurationManager.AppSettings["DefaultWebConfigFilename"];
                output.Type             = OutputObject.eObjectType.WebConfig;

                StringBuilder sb = new StringBuilder();

                sb.AppendLine("<?xml version=\"1.0\"?>");
                sb.AppendLine("<configuration>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<appSettings>");
                sb.AppendLine(AddTabs(1) + "</appSettings>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<connectionStrings>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + connection_string.ToConfigString());
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "</connectionStrings>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<system.web>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "<compilation debug=\"true\"/>");
                sb.AppendLine(AddTabs(2) + "<authentication mode=\"Windows\"/>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "</system.web>");
                sb.AppendLine();
                sb.AppendLine("</configuration>");

                output.Body = sb.ToString();
                return output;
        }
Пример #36
0
        // Asp.Net Generation
        public static OutputObject GenerateCSSSheet(string database_name)
        {
            if (string.IsNullOrEmpty(database_name))
                    return null;

                OutputObject output = new OutputObject();
                output.Name = ConfigurationManager.AppSettings["DefaultCSSFilename"];
                output.Type = OutputObject.eObjectType.Css;

                string spacer = "/*******************************************************************************/";

                StringBuilder sb = new StringBuilder();

                sb.AppendLine(GenerateHeader(database_name));
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                sb.AppendLine("#header");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "padding: 10px;");
                sb.AppendLine(AddTabs(1) + "background-color: #00ff00;");
                sb.AppendLine(AddTabs(1) + "border-bottom: solid 2px black;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("#menu");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "float: left;");
                sb.AppendLine(AddTabs(1) + "padding-top: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-left: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-right: 50px;");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 200px;");
                sb.AppendLine(AddTabs(1) + "background-color: #ffff00;");
                sb.AppendLine(AddTabs(1) + "border-bottom: solid 2px black;");
                sb.AppendLine(AddTabs(1) + "border-right: solid 2px black;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("#contents");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "float: left;");
                sb.AppendLine(AddTabs(1) + "padding: 10px;");
                sb.AppendLine(AddTabs(1) + "background-color: white;");
                sb.AppendLine("}");
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                sb.AppendLine("HTML");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "height: 100%;");
                sb.AppendLine(AddTabs(1) + "padding: 0px;");
                sb.AppendLine(AddTabs(1) + "border: 0px;");
                sb.AppendLine(AddTabs(1) + "margin: 0px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("Body");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "height: 100%;");
                sb.AppendLine(AddTabs(1) + "padding: 0px;");
                sb.AppendLine(AddTabs(1) + "border: 0px;");
                sb.AppendLine(AddTabs(1) + "margin: 0px;");
                sb.AppendLine(AddTabs(1) + "font-family: Arial, Sans-Serif;");
                sb.AppendLine(AddTabs(1) + "font-size: 12px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("Table");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "border-collapse: collapse;");
                sb.AppendLine(AddTabs(1) + "empty-cells: show;");
                sb.AppendLine(AddTabs(1) + "font-family: arial;");
                sb.AppendLine(AddTabs(1) + "font-size: inherit;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("TD");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "margin: 0px;");
                sb.AppendLine(AddTabs(1) + "vertical-align: middle;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("Input");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-family: arial;");
                sb.AppendLine(AddTabs(1) + "font-size: inherit;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("TextArea");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-family: arial;");
                sb.AppendLine(AddTabs(1) + "font-size: inherit;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine("CheckBox");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-family: arial;");
                sb.AppendLine(AddTabs(1) + "font-size: inherit;");
                sb.AppendLine("}");
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                sb.AppendLine(".PageTitle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-size: 14px;");
                sb.AppendLine(AddTabs(1) + "font-weight: bold;");
                sb.AppendLine(AddTabs(1) + "padding-right: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-top: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 10px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".SectionTitle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-size: 12px;");
                sb.AppendLine(AddTabs(1) + "font-weight: bold;");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-top: 10px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".ControlLabel");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-weight: bold;");
                sb.AppendLine(AddTabs(1) + "font-size: 10pt;");
                sb.AppendLine(AddTabs(1) + "padding-top: 4px;");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 4px;");
                sb.AppendLine(AddTabs(1) + "padding-right: 4px;");
                sb.AppendLine(AddTabs(1) + "text-align: right;");
                sb.AppendLine(AddTabs(1) + "vertical-align:top;");
                sb.AppendLine("}");
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                sb.AppendLine(".RepeaterStyle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "border-style: solid;");
                sb.AppendLine(AddTabs(1) + "border-width: 2px;");
                sb.AppendLine(AddTabs(1) + "background-color: #eeeeee;");
                sb.AppendLine(AddTabs(1) + "height: 400px;");
                sb.AppendLine(AddTabs(1) + "width: 800px;");
                sb.AppendLine(AddTabs(1) + "overflow: auto;");
                sb.AppendLine("}");
                sb.AppendLine("@media print");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + ".RepeaterStyle");
                sb.AppendLine(AddTabs(1) + "{");
                sb.AppendLine(AddTabs(2) + "overflow: visible;");
                sb.AppendLine(AddTabs(1) + "}");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".RepeaterHeader");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-weight: bold;");
                sb.AppendLine(AddTabs(1) + "font-size: 10pt;");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 2px;");
                sb.AppendLine(AddTabs(1) + "padding-top: 4px;");
                sb.AppendLine(AddTabs(1) + "padding-right: 2px;");
                sb.AppendLine(AddTabs(1) + "padding-left: 4px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".RepeaterCell");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "padding-bottom: 2px;");
                sb.AppendLine(AddTabs(1) + "padding-top: 4px;");
                sb.AppendLine(AddTabs(1) + "padding-right: 2px;");
                sb.AppendLine(AddTabs(1) + "padding-left: 4px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".RepeaterHeaderStyle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "border-style: solid;");
                sb.AppendLine(AddTabs(1) + "border-width: 2px 2px 0px 2px;");
                sb.AppendLine(AddTabs(1) + "background-color: #ccccff;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".RepeaterItemStyle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "background-color: #ffffff;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".AlternatingRepeaterItemStyle");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "background-color: #ffffcc;");
                sb.AppendLine("}");
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                sb.AppendLine(".DetailsPanel");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "border-style: solid;");
                sb.AppendLine(AddTabs(1) + "border-width: 2px;");
                sb.AppendLine(AddTabs(1) + "background-color: #eeeeee;");
                sb.AppendLine(AddTabs(1) + "width: 600px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".Spacer");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "padding: 10px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".AddItemLink");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "padding-top: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-right: 10px;");
                sb.AppendLine(AddTabs(1) + "padding-left: 10px;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".ErrorMessage");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "font-weight: bold;");
                sb.AppendLine(AddTabs(1) + "font-size: inherit;");
                sb.AppendLine(AddTabs(1) + "color: #cc0000;");
                sb.AppendLine("}");
                sb.AppendLine();

                sb.AppendLine(".button1");
                sb.AppendLine("{");
                sb.AppendLine(AddTabs(1) + "border: #000000 1px solid;");
                sb.AppendLine(AddTabs(1) + "font-size: 12px;");
                sb.AppendLine(AddTabs(1) + "cursor: hand;");
                sb.AppendLine(AddTabs(1) + "color: #000000;");
                sb.AppendLine(AddTabs(1) + "background-color: #ccccff;");
                sb.AppendLine("}");
                sb.AppendLine();

                //////////////////////////////////////////////////////////////////////////////
                sb.AppendLine(spacer);
                sb.AppendLine();

                output.Body = sb.ToString();
                return output;
        }
        public OutputObject GenerateWebServiceControllerClass(SqlTable sqlTable, List <string> namespaceIncludes, IDictionary <string, bool> options)
        {
            if (sqlTable == null)
            {
                throw new ArgumentException("Sql table cannot be null");
            }

            string controllerName = NameFormatter.ToCSharpClassName(sqlTable.Name);

            var output = new OutputObject
            {
                Name = $"{controllerName}Controller.cs",
                Type = OutputObject.eObjectType.CSharp
            };

            var sb = new StringBuilder();

            sb.AppendLine();
            sb.AppendLine("using Microsoft.AspNetCore.Mvc;");
            sb.AppendLine("using System;");
            sb.AppendLine("using TelemetryManager;");
            sb.AppendLine();

            if (namespaceIncludes != null && namespaceIncludes.Count > 1)
            {
                sb.AppendLine(GenerateNamespaceIncludes(namespaceIncludes));
            }

            sb.AppendLine($"namespace {CONTROLLER_NAMESPACE}");
            sb.AppendLine("{");

            sb.AppendLine(AddTabs(1) + "[ApiController]");

            if (options[GENERATE_BASE_CONTROLLER])
            {
                sb.AppendLine(AddTabs(1) + $"public class {controllerName}Controller : ApiControllerBase");
            }
            else
            {
                sb.AppendLine(AddTabs(1) + $"public class {controllerName}Controller : ControllerBase");
            }

            sb.AppendLine(AddTabs(1) + "{");

            sb.AppendLine(AddTabs(2) + $"public {controllerName}Controller(IConfigProvider config, ILogger log, IMetrics metrics, IDataProvider datasource, ISecurityProvider security)");
            sb.AppendLine(AddTabs(3) + $": base(config, log, metrics, datasource, security) {{ }}");
            sb.AppendLine();

            // controllers
            sb.AppendLine(GenerateGetById(controllerName, options));
            sb.AppendLine();

            sb.AppendLine(GenerateGetAll(controllerName, options));
            sb.AppendLine();

            //sb.AppendLine(GenerateGetAllPaged(sqlTable.Name));
            //sb.AppendLine();

            //sb.AppendLine(GenerateInsert(sqlTable.Name));
            //sb.AppendLine();

            //sb.AppendLine(GenerateUpdate(sqlTable.Name));
            //sb.AppendLine();

            //sb.AppendLine(GenerateDelete(sqlTable.Name));
            //sb.AppendLine();

            sb.AppendLine("}");

            output.Body = sb.ToString();
            return(output);
        }
Пример #38
0
        public static OutputObject GenerateWebEditPageCodeInFront(SqlTable sql_table, bool create_as_asp_control)
        {
            if (sql_table == null)
                    return null;

                string list_class_name = "List" + NameFormatter.ToCSharpPropertyName(sql_table.Name);
                string edit_class_name = "Edit" + NameFormatter.ToCSharpPropertyName(sql_table.Name);

                OutputObject output = new OutputObject();
                output.Name =  edit_class_name + ".aspx";
                output.Type = OutputObject.eObjectType.Aspx;

                StringBuilder sb = new StringBuilder();

                if (create_as_asp_control)
                {
                    sb.AppendLine("<%@ Control Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"" + edit_class_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + edit_class_name + "\" %>");
                }
                else
                {
                    sb.AppendLine("<%@ Page Language=\"C#\" MasterPageFile=\"~/MasterPage.master\" AutoEventWireup=\"True\" CodeBehind=\"" + edit_class_name + ".aspx.cs\" Inherits=\"WebControls." + NameFormatter.ToCSharpPropertyName(sql_table.Database.Name) + "." + edit_class_name + "\" %>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content1\" ContentPlaceHolderID=\"head\" Runat=\"Server\">");
                    sb.AppendLine("</asp:Content>");
                    sb.AppendLine();
                    sb.AppendLine("<asp:Content ID=\"Content2\" ContentPlaceHolderID=\"body\" Runat=\"Server\">");
                }

                sb.AppendLine();
                sb.AppendLine("<div class=\"PageTitle\">" + NameFormatter.ToFriendlyName(sql_table.Name) + "</div>");
                sb.AppendLine();

                sb.AppendLine("<asp:Panel CssClass=\"DetailsPanel\" ID=\"panDetails\" runat=\"server\">");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "<div class=\"Spacer\">");
                sb.AppendLine();

                sb.AppendLine(AddTabs(2) + "<table border=\"0\" width=\"100%\">");
                sb.AppendLine(AddTabs(2) + "<tr>");
                sb.AppendLine(AddTabs(3) + "<td></td>");
                sb.AppendLine(AddTabs(3) + "<td class=\"SectionTitle\"><asp:Label ID=\"lblTitle\" runat=\"server\" /></td>");
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine();

                foreach (var sql_column in sql_table.Columns.Values)
                {
                    if (!sql_column.IsPk)
                    {
                        sb.AppendLine(AddTabs(2) + "<tr>");
                        sb.AppendLine(AddTabs(3) + "<td class=\"ControlLabel\">" + NameFormatter.ToFriendlyName(sql_column.Name) + ":</td>");

                        switch (sql_column.BaseType)
                        {
                            case eSqlBaseType.Bool:
                            sb.AppendLine(AddTabs(3) + "<td><asp:CheckBox ID=\"chk" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" /></td>");
                            break;

                            case eSqlBaseType.Time:
                            sb.AppendLine(AddTabs(3) + "<td><asp:TextBox ID=\"txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" /></td>");
                            break;

                            default:
                            if (sql_column.BaseType == eSqlBaseType.String)
                            {
                                if (sql_column.Length == -1)
                                {
                                    sb.AppendLine(AddTabs(3) + "<td><asp:TextBox ID=\"txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" TextMode=\"MultiLine\" Rows=\"8\" Width=\"400\" /></td>");
                                }
                                else if (sql_column.Length > 100 )
                                {
                                    sb.AppendLine(AddTabs(3) + "<td><asp:TextBox ID=\"txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" Width=\"400\" Rows=\"" + (sql_column.Length/100).ToString() + "\" TextMode=\"MultiLine\" /></td>");
                                }
                                else
                                {
                                    sb.AppendLine(AddTabs(3) + "<td><asp:TextBox ID=\"txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" Width=\"400\" MaxLength=\"" + sql_column.Length.ToString() + "\" /></td>");
                                }
                            }
                            else
                            {
                                //This might need to have the max length fixed. ints and stuff can end up here.
                                sb.AppendLine(AddTabs(3) + "<td><asp:TextBox ID=\"txt" + NameFormatter.ToCSharpPropertyName(sql_column.Name) + "\" runat=\"server\" Width=\"400\" MaxLength=\"" + sql_column.Length.ToString() + "\" /></td>");
                            }
                            break;
                        }

                        sb.AppendLine(AddTabs(2) + "</tr>");
                        sb.AppendLine();
                    }
                }

                // buttons
                sb.AppendLine(AddTabs(2) + "<tr>");
                sb.AppendLine(AddTabs(3) + "<td></td>");
                sb.AppendLine(AddTabs(3) + "<td class=\"SectionTitle\">");
                sb.AppendLine(AddTabs(4) + "<asp:Button ID=\"btnSave\" runat=\"server\" CssClass=\"Button1\" Text=\"Save\" OnClick=\"btnSave_Click\" />");
                sb.AppendLine(AddTabs(4) + "<asp:Button ID=\"btnUndo\" runat=\"server\" CssClass=\"Button1\" Text=\"Undo Changes\" OnClick=\"btnUndo_Click\" />");
                sb.AppendLine(AddTabs(3) + "</td>");
                sb.AppendLine(AddTabs(2) + "</tr>");
                sb.AppendLine(AddTabs(2) + "</table>");
                sb.AppendLine();
                sb.AppendLine(AddTabs(2) + "<asp:Label ID=\"lblErrorMessage\" CssClass=\"ErrorMessage\" runat=\"server\" />");
                sb.AppendLine();
                sb.AppendLine(AddTabs(1) + "</div>");
                sb.AppendLine();
                sb.AppendLine("</asp:Panel>");

                if (!create_as_asp_control)
                {
                    sb.AppendLine();
                    sb.AppendLine("</asp:Content>");
                }

                output.Body = sb.ToString();
                return output;
        }