<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Data.DataSetExtensions" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Configuration" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Xml" #>
<#@ import namespace="System.Data.Common" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.Text.RegularExpressions" #>
<#@ import namespace="System.Configuration"#>
<#@ import namespace="System.Globalization"#>
<#@ output extension="sql" #>
<#
const string ConnectionString = @"Data Source=10.70.215.115; Initial Catalog=GPL; User Id=CPFB_User; Password=admin1234; MultipleActiveResultSets=True";
const string CommonNamespace = "PortalProj.Gpl.Common";
const string ContextNamespace = "PortalProj.Gpl.Data";
const string PocoNamespace = "PortalProj.Gpl.Entities";
const string DbContext = "GplDbContext";
const string DbContextVariable = "gplDB";
// That's it, nothing else to configure ***********************************************************************************************
string tableName = "";
string modelName="";
string lowermodelName="";
DAManager DaManager=new DAManager(ConnectionString);
DataTable allTables= DaManager.LoadTables();
DataTable table=null;
List<string> Storelist= DaManager.LoadStoreProcdure();
string modelScheme="";
string StoreName="";
DataColumn[] primaryKeys = null;
List<string> oldField = new List<string>() { "VERSION_NO"};
#>
USE GPL
<#foreach (DataRow dataRow in allTables.Rows)
{
tableName=dataRow["TABLE_NAME"].ToString();
table= DaManager.GetScheme(tableName);
modelName=DaManager.GetModelName(tableName);
modelScheme=modelName+"Schema";
lowermodelName=modelName.ToLower();
primaryKeys = table.PrimaryKey;
#>
GRANT SELECT, INSERT,Update ON [dbo].<#=tableName #> TO [GplAdminApp];
<#}#>
<#foreach (var item in Storelist)
{
StoreName=item;
#>
GRANT EXECUTE ON [dbo].<#=StoreName #> TO [GplAdminApp];
<#}#>
<#foreach (DataRow dataRow in allTables.Rows)
{
tableName=dataRow["TABLE_NAME"].ToString();
table= DaManager.GetScheme(tableName);
modelName=DaManager.GetModelName(tableName);
modelScheme=modelName+"Schema";
lowermodelName=modelName.ToLower();
primaryKeys = table.PrimaryKey;
#>
GRANT SELECT, INSERT,Update ON [dbo].<#=tableName #> TO [GplApp];
<#}#>
<#foreach (var item in Storelist)
{
StoreName=item;
#>
GRANT EXECUTE ON [dbo].<#=StoreName #> TO [GplApp];
<#}#>
<#+ public class DAManager
{
private string _connectionString = "";
private string _providerName = "";
private string _configFilePath = "";
public DAManager(string connectionString)
{
_connectionString = connectionString;
}
public DataTable GetScheme(string tableName)
{
//_connectionString = GetConnectionString();
using (SqlConnection conn = new SqlConnection(_connectionString))
{
SqlCommand comm = new SqlCommand();
comm.CommandText = string.Format("select * from {0} where 1<>1",tableName);
comm.Connection = conn;
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
DataTable[] dt=da.FillSchema(ds, SchemaType.Mapped);
return dt[0];
conn.Close();
}
}
public DataTable LoadTables()
{
//_connectionString = GetConnectionString();
using (SqlConnection conn = new SqlConnection(_connectionString))
{
conn.Open();
DataTable dtAllTables = conn.GetSchema("Tables");
conn.Close();
return dtAllTables;
}
}
public List<string> LoadStoreProcdure()
{
using (SqlConnection conn = new SqlConnection(_connectionString))
{
conn.Open();
List<string> list=new List<string>();
SqlCommand comm = new SqlCommand();
comm.CommandText = "select name from sysobjects where type='P'";
comm.Connection = conn;
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
string s=reader.GetValue(i).ToString();
list.Add(s);
}
}
conn.Close();
return list;
}
}
public string GetModelName(string tableName)
{
tableName = tableName.ToLower();
tableName = Regex.Replace(tableName, "^t_", string.Empty);
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(tableName).Replace("_", string.Empty);
}
}
#>