using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

public class Plantilla
{


    public Plantilla()
    {

    }


    public String Convertir(string val)
    {
        string convertido = "";
        if (val.Length > 0)
        {
            convertido = val.Substring(0, 1).ToUpper() + val.Substring(1);
        }
        return convertido;
    }


    public String ConvertirTipoGet(string tipo)
    {
        string convertido = "";

        switch (tipo)
        {
            //case "char":
            //    convertido = "GetString";
            case "datetime":
                convertido = "GetDateTime";
                break;
            case "float":
                convertido = "GetDouble";
                break;
            case "int":
                convertido = "GetInt32";
                break;
            case "varchar":
                convertido = "GetString";
                break;
            default:
                convertido = "GetString";
                break;
        }
        return convertido;
    }

    public String ConvertirTipo(string tipo, string nullable)
    {
        string convertido = "";

        switch (tipo)
        {
            case "char":
                convertido = "string";
                break;
            case "datetime":
                convertido = "DateTime";
                break;
            case "float":
                convertido = "double";
                if (nullable == "YES")
                {
                    convertido = "double?";
                }
                break;
            case "int":
                convertido = "int";
                if (nullable == "YES")
                {
                    convertido = "int?";
                }
                break;
            case "varchar":
                convertido = "string";
                break;
            case "nvarchar":
                convertido = "string";
                break;
            case "uniqueidentifier":
                convertido = "Guid";
                if (nullable == "YES")
                {
                    convertido = "Guid?";
                }
                break;
            case "image":
                convertido = "byte[]";
                break;
            case "smallint":
                convertido = "short";
                if (nullable == "YES")
                {
                    convertido = "short?";
                }
                break;
            case "bit":
                convertido = "bool";
                if (nullable == "YES")
                {
                    convertido = "bool?";
                }
                break;
            case "numeric":
                convertido = "decimal";
                if (nullable == "YES")
                {
                    convertido = "decimal?";
                }
                break;
            case "bigint":
                convertido = "Int64";
                if (nullable == "YES")
                {
                    convertido = "Int64?";
                }
                break;
            case "text":
                convertido = "String";
                break;
            case "varbinary":
                convertido = "byte[]";
               break;
            case "date":
                convertido = "DateTime";
                break;
            case "nchar":
                convertido = "String";
                break;
            case "ntext":
                convertido = "String";
                break;
            case "decimal":
                convertido = "decimal";
                if (nullable == "YES")
                {
                    convertido = "decimal?";
                }
                break;
            case "smalldatetime":
                convertido = "DateTime";
                break;
        }
        if ((convertido == "DateTime") && (nullable == "YES"))
        {
            convertido = "DateTime?";
        }
        return convertido;
    }

    public String ConvertirTipo(string tipo)
    {
        string convertido = "";

        switch (tipo)
        {
            case "char":
                convertido = "string";
                break;
            case "datetime":
                convertido = "DateTime";
                break;
            case "float":
                convertido = "double";
                break;
            case "int":
                convertido = "int";
                break;
            case "varchar":
                convertido = "string";
                break;
            case "uniqueidentifier":
                convertido = "Guid";
                break;
            case "image":
                convertido = "byte[]";
                break;
            case "smallint":
                convertido = "short";
                break;
            case "bigint":
                convertido = "Int64";
                break;
            case "text":
                convertido = "String";
                break;
            case "varbinary":
                convertido = "byte[]";
                break;
            case "date":
                convertido = "DateTime";
                break;
            case "nchar":
                convertido = "String";
                break;
            case "ntext":
                convertido = "String";
                break;
            case "decimal":
                convertido = "Decimal";
                break;
            case "smalldatetime":
                convertido = "DateTime";
                break;
        }
        return convertido;
    }

    public String ConvertirTipoSQL(string tipo)
    {
        string convertido = "";

        switch (tipo)
        {
            case "char":
                convertido = "Char";
                break;
            case "datetime":
                convertido = "DateTime";
                break;
            case "float":
                convertido = "Float";
                break;
            case "int":
                convertido = "Int";
                break;
            case "varchar":
                convertido = "VarChar";
                break;
            case "image":
                convertido = "byte[]";
                break;
            case "smallint":
                convertido = "short";
                break;
            case "bigint":
                convertido = "Int64";
                break;
        }
        return convertido;
    }

}
