예제 #1
0
        private static object CreateObject(Type type, string json)
        {
            if (json == "null" || json == null)
            {
                return(null);
            }
            var dataType = DataTypeMappings.GetDataType(type);

            switch (dataType)
            {
            case DataType.SByte:
            case DataType.SByteNullable:
                return(sbyte.Parse(json));

            case DataType.Byte:
            case DataType.ByteNullable:
                return(byte.Parse(json));

            case DataType.Int16:
            case DataType.Int16Nullable:
                return(short.Parse(json));

            case DataType.UInt16:
            case DataType.UInt16Nullable:
                return(ushort.Parse(json));

            case DataType.Int32:
            case DataType.Int32Nullable:
                return(int.Parse(json));

            case DataType.UInt32:
            case DataType.UInt32Nullable:
                return(uint.Parse(json));

            case DataType.Int64:
            case DataType.Int64Nullable:
                return(long.Parse(json));

            case DataType.UInt64:
            case DataType.UInt64Nullable:
                return(ulong.Parse(json));

            case DataType.Double:
            case DataType.DoubleNullable:
                return(double.Parse(json));

            case DataType.Single:
            case DataType.SingleNullable:
                return(float.Parse(json));

            case DataType.Decimal:
            case DataType.DecimalNullable:
                return(decimal.Parse(json));

            case DataType.DateTime:
            case DataType.DateTimeNullable:
                return(JsonToDateTime(json));

            case DataType.DateTimeOffset:
            case DataType.DateTimeOffsetNullable:
                return(JsonToDateTimeOffset(json));

            case DataType.TimeSpan:
            case DataType.TimeSpanNullable:
                return(JsonToTimeSpan(json));

            case DataType.String:
                return(JsonToString(json));

            case DataType.Boolean:
            case DataType.BooleanNullable:
                return(bool.Parse(json));

            case DataType.Char:
            case DataType.CharNullable:
                return(JsonToChar(json));

            case DataType.Guid:
            case DataType.GuidNullable:
                return(JsonToGuid(json));

            case DataType.BigInteger:
            case DataType.BigIntegerNullable:
                return(BigInteger.Parse(json));

            case DataType.DataTable:
                return(JsonToDataTable(json));

            case DataType.DataSet:
                return(JsonToDataSet(json));

            case DataType.IEnumerable:
                return(JsonToIEnumerable(type, json));

            case DataType.Uri:
                return(JsonToUri(json));

            case DataType.Enum:
                return(JsonToEnum(type, json));

            case DataType.Object:
                return(JsonToObject(type, json));

            case DataType.Empty:
                return(JsonToOther(type, json));

            default:
                return(null);
            }
        }
예제 #2
0
파일: Dal.cs 프로젝트: jefking/Borentra
        /// <summary>
        /// Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            this.Write("namespace Borentra.DataAccessLayer\r\n{\r\n    using System;\r\n    using System.Collec" +
                       "tions.Generic;\r\n    using System.Data;\r\n\r\n");

            #line 8 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"

            foreach (var proc in this.Manifest.Values)
            {
            #line default
            #line hidden
                this.Write("    /// <summary>\r\n    /// Class that Represents ");

            #line 13 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Preface));

            #line default
            #line hidden
                this.Write(".");

            #line 13 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Name));

            #line default
            #line hidden
                this.Write(" Stored Procedure\r\n    /// </summary>\r\n\tpublic partial class ");

            #line 15 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Preface + proc.Name));

            #line default
            #line hidden
                this.Write(" : IStoredProc\r\n\t{\r\n\t\t#region Members\r\n        /// <summary>\r\n        /// Stored " +
                           "Proc Name\r\n        /// </summary>\r\n\t\tprivate const string StoredProcName = \"");

            #line 21 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Preface));

            #line default
            #line hidden
                this.Write(".");

            #line 21 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Name));

            #line default
            #line hidden
                this.Write("\";\r\n\t\t#endregion\r\n\r\n        /// <summary>\r\n        /// Gets Stored Proc name with" +
                           " Schema\r\n        /// </summary>\r\n\t\tpublic string StoredProc\r\n\t\t{\r\n\t\t\tget\r\n\t\t\t{\r\n" +
                           "\t\t\t\treturn ");

            #line 31 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                this.Write(this.ToStringHelper.ToStringWithCulture(proc.Preface + proc.Name));

            #line default
            #line hidden
                this.Write(".StoredProcName;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t#region Parameters\r\n");

            #line 36 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"

                foreach (var parameter in proc.Variables)
                {
                    var paramName = parameter.Name.Replace("@", string.Empty);
                    if (!string.IsNullOrWhiteSpace(paramName))
                    {
                        var dataTypeCSharp = DataTypeMappings.DataTypeCSharp(parameter.DataType);
                        var dataTypeDb     = DataTypeMappings.DataTypeDbType(parameter.DataType);


            #line default
            #line hidden
                        this.Write("        /// <summary>\r\n        /// Named Parameter Value\r\n        /// </summary>\r" +
                                   "\n\t\tpublic const string ");

            #line 48 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(paramName));

            #line default
            #line hidden
                        this.Write("Parameter = \"@");

            #line 48 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(paramName));

            #line default
            #line hidden
                        this.Write("\";\r\n\t\t\r\n        /// <summary>\r\n        /// Gets or sets the parameter value\r\n    " +
                                   "    /// </summary>\r\n\t\t[DataMapper(");

            #line 53 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(paramName));

            #line default
            #line hidden
                        this.Write("Parameter, ");

            #line 53 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeDb));

            #line default
            #line hidden
                        this.Write(")]\r\n\t\tpublic ");

            #line 54 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(dataTypeCSharp));

            #line default
            #line hidden
                        this.Write(" ");

            #line 54 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                        this.Write(this.ToStringHelper.ToStringWithCulture(paramName));

            #line default
            #line hidden
                        this.Write("\r\n\t\t{\r\n\t\t\tget;\r\n\t\t\tset;\r\n\t\t}\r\n\r\n");

            #line 60 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
                    }
                }


            #line default
            #line hidden
                this.Write("\t\t#endregion\r\n\t}\r\n\r\n");

            #line 67 "C:\Users\jamie_000\Documents\GitHub\Borentra-BeastMode\Data\Generator\Template\Dal.tt"
            }


            #line default
            #line hidden
            this.Write("}");
            return(this.GenerationEnvironment.ToString());
        }
예제 #3
0
        private static void AppendString(object obj, ref StringBuilder sb)
        {
            if (obj == null)
            {
                sb.Append("null");
                return;
            }
            var type     = obj.GetType();
            var dataType = DataTypeMappings.GetDataType(type);

            switch (dataType)
            {
            case DataType.SByte:
            case DataType.SByteNullable:
            case DataType.Byte:
            case DataType.ByteNullable:
            case DataType.Int16:
            case DataType.Int16Nullable:
            case DataType.UInt16:
            case DataType.UInt16Nullable:
            case DataType.Int32:
            case DataType.Int32Nullable:
            case DataType.UInt32:
            case DataType.UInt32Nullable:
            case DataType.Int64:
            case DataType.Int64Nullable:
            case DataType.UInt64:
            case DataType.UInt64Nullable:
            case DataType.Double:
            case DataType.DoubleNullable:
            case DataType.Single:
            case DataType.SingleNullable:
            case DataType.Decimal:
            case DataType.DecimalNullable:
            case DataType.BigInteger:
            case DataType.BigIntegerNullable:
                sb.Append(obj);
                break;

            case DataType.Boolean:
            case DataType.BooleanNullable:
                BoolToJson(obj, ref sb);
                break;

            case DataType.Char:
            case DataType.CharNullable:
                CharToJson(obj, ref sb);
                break;

            case DataType.DateTime:
            case DataType.DateTimeNullable:
                DateTimeToJson(obj, ref sb);
                break;

            case DataType.DateTimeOffset:
            case DataType.DateTimeOffsetNullable:
                DateTimeOffsetToJson(obj, ref sb);
                break;

            case DataType.TimeSpan:
            case DataType.TimeSpanNullable:
                TimeSpanToJson(obj, ref sb);
                break;

            case DataType.String:
                StringToJson(obj, ref sb);
                break;

            case DataType.Guid:
            case DataType.GuidNullable:
                GuidToJson(obj, ref sb);
                break;

            case DataType.DataTable:
                DataTableToJson(obj as DataTable, ref sb);
                break;

            case DataType.DataSet:
                DataSetToJson(obj as DataSet, ref sb);
                break;

            case DataType.IEnumerable:
                IEnumerableToJson(obj, ref sb);
                break;

            case DataType.Uri:
                UriToJson(obj as Uri, ref sb);
                break;

            case DataType.Enum:
                EnumToJson(obj, ref sb);
                break;

            case DataType.Object:
            case DataType.Empty:
                ObjectToJson(obj, ref sb);
                break;
            }
        }