Skip to content

Commit

Permalink
ADD ToSqlDbType \ Revamp GetCustomAttributes
Browse files Browse the repository at this point in the history
ADD: Byte.SqlSystemTypeToSqlDbType
ADD: Int16.SqlSystemTypeToSqlDbType
ADD: Int.SqlSystemTypeToSqlDbType
ADD: String.SqlTypeNameToSqlDbType
ADD: GetCustomAttributeByFullName
ADD: GetCustomAttributeByName
ADD: GetCustomAttributesByFullName
ADD: GetCustomAttributesByName
ADD/FIX: GetCustomAttribute (Support enum, class, MemberInfo)
ADD/FIX: GetCustomAttributes (Support enum, class, MemberInfo)
ADD/FIX: GetCustomAttributeDescription (Support enum, class, MemberInfo)
  • Loading branch information
zzzprojects committed Aug 24, 2015
1 parent 70083e6 commit 1d06a81
Show file tree
Hide file tree
Showing 24 changed files with 1,439 additions and 44 deletions.
7 changes: 7 additions & 0 deletions lab/Z.ExtensionMethods.Lab/Form1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,15 @@

namespace Z.ExtensionMethods.Lab
{
public class MyClass
{

}
public static class LabExtension
{
public static IEnumerable<T> MergeInnerEnumerable<T>(this IEnumerable<IEnumerable<T>> @this)
{
var file = @"c:\path";
List<IEnumerable<T>> listItem = @this.ToList();

var list = new List<T>();
Expand Down Expand Up @@ -153,6 +158,8 @@ public Form1()
{
InitializeComponent();

var aaaa = (Attribute)null;

StringBuilder sb = new StringBuilder("0123456789");
var b4 = "abc".Substring(1, 4);
char ch = '\'';
Expand Down
4 changes: 4 additions & 0 deletions lab/Z.ExtensionMethods.Lab/Z.ExtensionMethods.Lab.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@
<Project>{6edebb64-2d4b-43cc-a94e-919b44e254a2}</Project>
<Name>Z.Data</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Z.Reflection\Z.Reflection.csproj">
<Project>{c3eda334-3d94-4960-93b9-3026adc4cc12}</Project>
<Name>Z.Reflection</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Expand Down
107 changes: 107 additions & 0 deletions src/Z.Core/System.Byte/Byte.SqlSystemTypeToSqlDbType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
using System;
using System.Data;

public static partial class Extensions
{
public static SqlDbType SqlSystemTypeToSqlDbType(this byte @this)
{
switch (@this)
{
case 34: // 34 | "image" | SqlDbType.Image
return SqlDbType.Image;

case 35: // 35 | "text" | SqlDbType.Text
return SqlDbType.Text;

case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
return SqlDbType.UniqueIdentifier;

case 40: // 40 | "date" | SqlDbType.Date
return SqlDbType.Date;

case 41: // 41 | "time" | SqlDbType.Time
return SqlDbType.Time;

case 42: // 42 | "datetime2" | SqlDbType.DateTime2
return SqlDbType.DateTime2;

case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
return SqlDbType.DateTimeOffset;

case 48: // 48 | "tinyint" | SqlDbType.TinyInt
return SqlDbType.TinyInt;

case 52: // 52 | "smallint" | SqlDbType.SmallInt
return SqlDbType.SmallInt;

case 56: // 56 | "int" | SqlDbType.Int
return SqlDbType.Int;

case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
return SqlDbType.SmallDateTime;

case 59: // 59 | "real" | SqlDbType.Real
return SqlDbType.Real;

case 60: // 60 | "money" | SqlDbType.Money
return SqlDbType.Money;

case 61: // 61 | "datetime" | SqlDbType.DateTime
return SqlDbType.DateTime;

case 62: // 62 | "float" | SqlDbType.Float
return SqlDbType.Float;

case 98: // 98 | "sql_variant" | SqlDbType.Variant
return SqlDbType.Variant;

case 99: // 99 | "ntext" | SqlDbType.NText
return SqlDbType.NText;

case 104: // 104 | "bit" | SqlDbType.Bit
return SqlDbType.Bit;

case 106: // 106 | "decimal" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 108: // 108 | "numeric" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
return SqlDbType.SmallMoney;

case 127: // 127 | "bigint" | SqlDbType.BigInt
return SqlDbType.BigInt;

case 165: // 165 | "varbinary" | SqlDbType.VarBinary
return SqlDbType.VarBinary;

case 167: // 167 | "varchar" | SqlDbType.VarChar
return SqlDbType.VarChar;

case 173: // 173 | "binary" | SqlDbType.Binary
return SqlDbType.Binary;

case 175: // 175 | "char" | SqlDbType.Char
return SqlDbType.Char;

case 189: // 189 | "timestamp" | SqlDbType.Timestamp
return SqlDbType.Timestamp;

case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
return SqlDbType.NVarChar;

case 239: // 239 | "nchar" | SqlDbType.NChar
return SqlDbType.NChar;

case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
return SqlDbType.Udt;

case 241: // 241 | "xml" | SqlDbType.Xml
return SqlDbType.Xml;

default:
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: sales@zzzprojects.com", @this));
}
}
}
107 changes: 107 additions & 0 deletions src/Z.Core/System.Int16/Int16.SqlSystemTypeToSqlDbType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
using System;
using System.Data;

public static partial class Extensions
{
public static SqlDbType SqlSystemTypeToSqlDbType(this short @this)
{
switch (@this)
{
case 34: // 34 | "image" | SqlDbType.Image
return SqlDbType.Image;

case 35: // 35 | "text" | SqlDbType.Text
return SqlDbType.Text;

case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
return SqlDbType.UniqueIdentifier;

case 40: // 40 | "date" | SqlDbType.Date
return SqlDbType.Date;

case 41: // 41 | "time" | SqlDbType.Time
return SqlDbType.Time;

case 42: // 42 | "datetime2" | SqlDbType.DateTime2
return SqlDbType.DateTime2;

case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
return SqlDbType.DateTimeOffset;

case 48: // 48 | "tinyint" | SqlDbType.TinyInt
return SqlDbType.TinyInt;

case 52: // 52 | "smallint" | SqlDbType.SmallInt
return SqlDbType.SmallInt;

case 56: // 56 | "int" | SqlDbType.Int
return SqlDbType.Int;

case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
return SqlDbType.SmallDateTime;

case 59: // 59 | "real" | SqlDbType.Real
return SqlDbType.Real;

case 60: // 60 | "money" | SqlDbType.Money
return SqlDbType.Money;

case 61: // 61 | "datetime" | SqlDbType.DateTime
return SqlDbType.DateTime;

case 62: // 62 | "float" | SqlDbType.Float
return SqlDbType.Float;

case 98: // 98 | "sql_variant" | SqlDbType.Variant
return SqlDbType.Variant;

case 99: // 99 | "ntext" | SqlDbType.NText
return SqlDbType.NText;

case 104: // 104 | "bit" | SqlDbType.Bit
return SqlDbType.Bit;

case 106: // 106 | "decimal" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 108: // 108 | "numeric" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
return SqlDbType.SmallMoney;

case 127: // 127 | "bigint" | SqlDbType.BigInt
return SqlDbType.BigInt;

case 165: // 165 | "varbinary" | SqlDbType.VarBinary
return SqlDbType.VarBinary;

case 167: // 167 | "varchar" | SqlDbType.VarChar
return SqlDbType.VarChar;

case 173: // 173 | "binary" | SqlDbType.Binary
return SqlDbType.Binary;

case 175: // 175 | "char" | SqlDbType.Char
return SqlDbType.Char;

case 189: // 189 | "timestamp" | SqlDbType.Timestamp
return SqlDbType.Timestamp;

case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
return SqlDbType.NVarChar;

case 239: // 239 | "nchar" | SqlDbType.NChar
return SqlDbType.NChar;

case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
return SqlDbType.Udt;

case 241: // 241 | "xml" | SqlDbType.Xml
return SqlDbType.Xml;

default:
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: sales@zzzprojects.com", @this));
}
}
}
107 changes: 107 additions & 0 deletions src/Z.Core/System.Int32/Int.SqlSystemTypeToSqlDbType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
using System;
using System.Data;

public static partial class Extensions
{
public static SqlDbType SqlSystemTypeToSqlDbType(this int @this)
{
switch (@this)
{
case 34: // 34 | "image" | SqlDbType.Image
return SqlDbType.Image;

case 35: // 35 | "text" | SqlDbType.Text
return SqlDbType.Text;

case 36: // 36 | "uniqueidentifier" | SqlDbType.UniqueIdentifier
return SqlDbType.UniqueIdentifier;

case 40: // 40 | "date" | SqlDbType.Date
return SqlDbType.Date;

case 41: // 41 | "time" | SqlDbType.Time
return SqlDbType.Time;

case 42: // 42 | "datetime2" | SqlDbType.DateTime2
return SqlDbType.DateTime2;

case 43: // 43 | "datetimeoffset" | SqlDbType.DateTimeOffset
return SqlDbType.DateTimeOffset;

case 48: // 48 | "tinyint" | SqlDbType.TinyInt
return SqlDbType.TinyInt;

case 52: // 52 | "smallint" | SqlDbType.SmallInt
return SqlDbType.SmallInt;

case 56: // 56 | "int" | SqlDbType.Int
return SqlDbType.Int;

case 58: // 58 | "smalldatetime" | SqlDbType.SmallDateTime
return SqlDbType.SmallDateTime;

case 59: // 59 | "real" | SqlDbType.Real
return SqlDbType.Real;

case 60: // 60 | "money" | SqlDbType.Money
return SqlDbType.Money;

case 61: // 61 | "datetime" | SqlDbType.DateTime
return SqlDbType.DateTime;

case 62: // 62 | "float" | SqlDbType.Float
return SqlDbType.Float;

case 98: // 98 | "sql_variant" | SqlDbType.Variant
return SqlDbType.Variant;

case 99: // 99 | "ntext" | SqlDbType.NText
return SqlDbType.NText;

case 104: // 104 | "bit" | SqlDbType.Bit
return SqlDbType.Bit;

case 106: // 106 | "decimal" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 108: // 108 | "numeric" | SqlDbType.Decimal
return SqlDbType.Decimal;

case 122: // 122 | "smallmoney" | SqlDbType.SmallMoney
return SqlDbType.SmallMoney;

case 127: // 127 | "bigint" | SqlDbType.BigInt
return SqlDbType.BigInt;

case 165: // 165 | "varbinary" | SqlDbType.VarBinary
return SqlDbType.VarBinary;

case 167: // 167 | "varchar" | SqlDbType.VarChar
return SqlDbType.VarChar;

case 173: // 173 | "binary" | SqlDbType.Binary
return SqlDbType.Binary;

case 175: // 175 | "char" | SqlDbType.Char
return SqlDbType.Char;

case 189: // 189 | "timestamp" | SqlDbType.Timestamp
return SqlDbType.Timestamp;

case 231: // 231 | "nvarchar", "sysname" | SqlDbType.NVarChar
return SqlDbType.NVarChar;

case 239: // 239 | "nchar" | SqlDbType.NChar
return SqlDbType.NChar;

case 240: // 240 | "hierarchyid", "geometry", "geography" | SqlDbType.Udt
return SqlDbType.Udt;

case 241: // 241 | "xml" | SqlDbType.Xml
return SqlDbType.Xml;

default:
throw new Exception(string.Format("Unsupported Type: {0}. Please let us know about this type and we will support it: sales@zzzprojects.com", @this));
}
}
}
Loading

0 comments on commit 1d06a81

Please sign in to comment.