public static List <T> FindCustom(SQLBuilder sqlBuilder)
 {
     using (var connection = FactoryConnection.GetConnection())
     {
         var result = connection.Query <T>(sqlBuilder.ToString()).ToList <T>();
         return(result);
     }
 }
 private NpgsqlConnection GetConnection()
 {
     if (_connection == null)
     {
         return(FactoryConnection.GetConnection());
     }
     else
     {
         return(_connection);
     }
 }
        public static List <T> FindAll()
        {
            using (var connection = FactoryConnection.GetConnection())
            {
                string scriptSelect = FactoryScript.Select(typeof(T), "public");

                var Result = connection.Query <T>(scriptSelect).ToList <T>();

                return(Result);
            }
        }
        public static T FindById(int Id)
        {
            using (var connection = FactoryConnection.GetConnection())
            {
                string scriptSelect = FactoryScript.Select(typeof(T), Id, "public");

                var Result = connection.Query <T>(scriptSelect).FirstOrDefault <T>();

                return(Result);
            }
        }
        static void Main(string[] args)
        {
            WriteLine("1. Factory Method");

            string pattern = ReadLine();

            switch (pattern)
            {
            case FactoryMethod:
                Connection connection1 = FactoryConnection.GetConnection("ORACLE");
                WriteLine(connection1.Connect());
                WriteLine(connection1.Disconnect());

                Connection connection2 = FactoryConnection.GetConnection("SQL");
                WriteLine(connection2.Connect());
                WriteLine(connection2.Disconnect());

                break;

            default:
                WriteLine("Pattern not implemented");
                return;
            }
        }