public void InsertProductDDNSP()
        {
            string          connectionString = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            DapperDotNet    ddnData          = new(connectionString);
            SqlCommandModel model            = new()
            {
                CommandText       = "InsertProduct",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "Dapper Product"
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@CategoryID", DataType = DbType.Int32, Value = 1
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@SupplierID", DataType = DbType.Int32, Value = 1
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@Discontinued", DataType = DbType.Boolean, Value = false
                    }
                }
            };

            ddnData.ExecuteNonQuery(model);
            ddnData.Dispose();
        }
        public void InsertProductEFSP()
        {
            string connectionString        = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            EntityFrameworkCoreData efData = new(connectionString);
            SqlCommandModel         model  = new()
            {
                CommandText       = "EXEC InsertProduct @ProductName = {0}, @CategoryID = {1}, @SupplierID = {2}, @Discontinued = {3}",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "Dapper Product Edited"
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@CategoryID", DataType = DbType.Int32, Value = 1
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@SupplierID", DataType = DbType.Int32, Value = 1
                    }
                    , new SqlCommandParameterModel()
                    {
                        ParameterName = "@Discontinued", DataType = DbType.Boolean, Value = false
                    }
                }
            };

            efData.ExecuteNonQuerySP(model);
            efData.Dispose();
        }
        public void ReadFilteredProductsDDNSP()
        {
            string          connectionString = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            DapperDotNet    ddnData          = new(connectionString);
            SqlCommandModel model            = new()
            {
                CommandText       = "GetProductName",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "Dapper.NET Product"
                    }
                }
            };
            IEnumerator <Product> products = ddnData.ExecuteReaderSP <Product>(model);

            ddnData.Dispose();
        }
        public void DeleteProductEFSP()
        {
            string connectionString        = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            EntityFrameworkCoreData efData = new(connectionString);
            SqlCommandModel         model  = new()
            {
                CommandText       = "EXEC DeleteProduct @ProductName = {0}",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@NewProductName", DataType = DbType.String, Value = "EF Product - Edited"
                    }
                }
            };

            efData.ExecuteNonQuerySP(model);
            efData.Dispose();
        }
        public void DeleteProductADNSP()
        {
            string          connectionString = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            AdoDotNetData   aaa   = new(connectionString);
            SqlCommandModel model = new()
            {
                CommandText       = "DeleteProduct",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "ADO.NET Product - Edited"
                    }
                }
            };

            aaa.ExecuteNonQuery(model);
            aaa.Dispose();
        }
        public void DeleteProductDDNSP()
        {
            string          connectionString = SecretsManager.GetSecrets <DatabaseSettings>("ConnectionString");
            DapperDotNet    ddnData          = new(connectionString);
            SqlCommandModel model            = new()
            {
                CommandText       = "DeleteProduct",
                CommandType       = CommandType.StoredProcedure,
                CommandParameters = new SqlCommandParameterModel[] {
                    new SqlCommandParameterModel()
                    {
                        ParameterName = "@ProductName", DataType = DbType.String, Value = "Dapper.NET Product - Edited"
                    }
                }
            };

            ddnData.ExecuteNonQuery(model);
            ddnData.Dispose();
        }

        #endregion Dapper.NET Benchmarks
    }