Updates to MyGeneration Templates

This commit is contained in:
Rich 2010-09-29 17:01:42 +00:00
parent fd69da45b9
commit f3782ea2a2
4 changed files with 136 additions and 50 deletions

View File

@ -454,7 +454,7 @@ public class GeneratedTemplate : DotNetScriptTemplate
_subclassName = ClassName( fk.PrimaryTable); _subclassName = ClassName( fk.PrimaryTable);
else else
_subclassName = ClassName( fk.PrimaryTable) + ClassName( fk.ForeignTable )+sAlias; _subclassName = ClassName( fk.PrimaryTable) + ClassName( fk.ForeignTable )+sAlias;
_tableName = "//TODO: No Table Name"; _tableName = "//CSLATODO: No Table Name";
vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;");
string sInterface = ""; string sInterface = "";
if (_chkPartCM) if (_chkPartCM)
@ -855,7 +855,8 @@ namespace <%=_nameSpace%>
//sExtDirty += " || " + MemberName(sLists+sAlias) + ".IsDirty"; //sExtDirty += " || " + MemberName(sLists+sAlias) + ".IsDirty";
//sExtValid += " && " + MemberName(sLists+sAlias) + ".IsValid"; //sExtValid += " && " + MemberName(sLists+sAlias) + ".IsValid";
sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sLists+sAlias)); sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sLists+sAlias));
sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValid)",MemberName(sLists+sAlias)); // Added List 20100924
sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sLists+sAlias));
} else { } else {
string sItem = ClassName(fk.ForeignTable); string sItem = ClassName(fk.ForeignTable);
//vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias, //vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias,
@ -866,7 +867,7 @@ namespace <%=_nameSpace%>
" = null;","Related Field" + Debug("20070501.1"),true,false,true,fk,sCheck,null,null); " = null;","Related Field" + Debug("20070501.1"),true,false,true,fk,sCheck,null,null);
bool bReq = !fk.ForeignColumns[0].IsNullable; bool bReq = !fk.ForeignColumns[0].IsNullable;
sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sItem+sAlias)); sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sItem+sAlias));
sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValid)",MemberName("My" + sItem+sAlias)); sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sItem+sAlias));
} }
} }
else // else //
@ -877,7 +878,7 @@ namespace <%=_nameSpace%>
//sExtDirty += string.Format(" || ({0} == null? " + bReq.ToString().ToLower() + " : {0}.IsDirty)",MemberName("My" + sClass)); //sExtDirty += string.Format(" || ({0} == null? " + bReq.ToString().ToLower() + " : {0}.IsDirty)",MemberName("My" + sClass));
//sExtValid += string.Format(" && ({0} == null? " + (!bReq).ToString().ToLower() + " : {0}.IsValid)",MemberName("My" + sClass)); //sExtValid += string.Format(" && ({0} == null? " + (!bReq).ToString().ToLower() + " : {0}.IsValid)",MemberName("My" + sClass));
sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sClass)); sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sClass));
sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValid)",MemberName("My" + sClass)); sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sClass));
} }
} }
} }
@ -1045,7 +1046,7 @@ namespace <%=_nameSpace%>
if (<%=sMemberName%><%=suffix%> != tmp.ToString()) if (<%=sMemberName%><%=suffix%> != tmp.ToString())
{ {
<%=sMemberName%><%=suffix%> = tmp.ToString(); <%=sMemberName%><%=suffix%> = tmp.ToString();
// TODO: Any Cross Property Validation // CSLATODO: Any Cross Property Validation
} }
} }
catch catch
@ -1091,7 +1092,7 @@ namespace <%=_nameSpace%>
private void vlnToString(IColumns Columns) private void vlnToString(IColumns Columns)
{ {
%> %>
// TODO: Replace base <%=_className%>.ToString function as necessary // CSLATODO: Replace base <%=_className%>.ToString function as necessary
/// <summary> /// <summary>
/// Overrides Base ToString /// Overrides Base ToString
/// </summary> /// </summary>
@ -1118,14 +1119,14 @@ namespace <%=_nameSpace%>
keyID+=").GetHashCode()"; keyID+=").GetHashCode()";
} }
%> %>
// TODO: Check <%=_className%>.GetIdValue to assure that the ID returned is unique // CSLATODO: Check <%=_className%>.GetIdValue to assure that the ID returned is unique
/// <summary> /// <summary>
/// Overrides Base GetIdValue - Used internally by CSLA to determine equality /// Overrides Base GetIdValue - Used internally by CSLA to determine equality
/// </summary> /// </summary>
/// <returns>A Unique ID for the current <%=_className%></returns> /// <returns>A Unique ID for the current <%=_className%></returns>
protected override object GetIdValue() protected override object GetIdValue()
{ {
return <%=keyID%>; return My<%=_className%>Unique; // Absolutely Unique ID
}<% }<%
} }
private string extName private string extName
@ -1198,12 +1199,12 @@ namespace <%=_nameSpace%>
%> %>
//ValidationRules.AddDependantProperty("x", "y"); //ValidationRules.AddDependantProperty("x", "y");
<%=extMName%>.AddValidationRules(ValidationRules); <%=extMName%>.AddValidationRules(ValidationRules);
// TODO: Add other validation rules // CSLATODO: Add other validation rules
} }
protected override void AddInstanceBusinessRules() protected override void AddInstanceBusinessRules()
{ {
<%=extMName%>.AddInstanceValidationRules(ValidationRules); <%=extMName%>.AddInstanceValidationRules(ValidationRules);
// TODO: Add other validation rules // CSLATODO: Add other validation rules
}<% }<%
foreach(IColumn field in Columns) foreach(IColumn field in Columns)
{ {
@ -1282,7 +1283,7 @@ namespace <%=_nameSpace%>
#region Authorization Rules #region Authorization Rules
protected override void AddAuthorizationRules() protected override void AddAuthorizationRules()
{ {
//TODO: Who can read/write which fields<% //CSLATODO: Who can read/write which fields<%
foreach(IColumn field in Columns) foreach(IColumn field in Columns)
{ {
if (field.DataTypeName != "timestamp"){ if (field.DataTypeName != "timestamp"){
@ -1303,23 +1304,23 @@ namespace <%=_nameSpace%>
} }
protected override void AddInstanceAuthorizationRules() protected override void AddInstanceAuthorizationRules()
{ {
//TODO: Who can read/write which fields //CSLATODO: Who can read/write which fields
<%=extMName%>.AddInstanceAuthorizationRules(AuthorizationRules); <%=extMName%>.AddInstanceAuthorizationRules(AuthorizationRules);
} }
public static bool CanAddObject() public static bool CanAddObject()
{ {
// TODO: Can Add Authorization // CSLATODO: Can Add Authorization
//return Csla.ApplicationContext.User.IsInRole("ProjectManager"); //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
return true; return true;
} }
public static bool CanGetObject() public static bool CanGetObject()
{ {
// TODO: CanGet Authorization // CSLATODO: CanGet Authorization
return true; return true;
} }
public static bool CanDeleteObject() public static bool CanDeleteObject()
{ {
// TODO: CanDelete Authorization // CSLATODO: CanDelete Authorization
//bool result = false; //bool result = false;
//if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true;
//if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true;
@ -1373,7 +1374,7 @@ namespace <%=_nameSpace%>
%> %>
public static bool CanEditObject() public static bool CanEditObject()
{ {
// TODO: CanEdit Authorization // CSLATODO: CanEdit Authorization
//return Csla.ApplicationContext.User.IsInRole("ProjectManager"); //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
return true; return true;
} }
@ -1414,7 +1415,7 @@ namespace <%=_nameSpace%>
protected static int <%=_className%>Unique protected static int <%=_className%>Unique
{ get { return ++_<%=_className%>Unique; } } { get { return ++_<%=_className%>Unique; } }
private int _My<%=_className%>Unique = <%=_className%>Unique; private int _My<%=_className%>Unique = <%=_className%>Unique;
public int My<%=_className%>Unique public int My<%=_className%>Unique // Absolutely Unique ID - Editable
{ get { return _My<%=_className%>Unique; } } { get { return _My<%=_className%>Unique; } }
protected <%=_className%>() protected <%=_className%>()
{/* require use of factory methods */ {/* require use of factory methods */
@ -1899,14 +1900,14 @@ namespace <%=_nameSpace%>
} }
// DataPortal_Create // DataPortal_Create
%> %>
// TODO: If Create needs to access DB - It should not be marked RunLocal // CSLATODO: If Create needs to access DB - It should not be marked RunLocal
[RunLocal()] [RunLocal()]
private new void DataPortal_Create() private new void DataPortal_Create()
{ {
<%=FormatColumns("{member} = new Guid();",Guid(Columns),"\r\n","\t\t\t")%><%=FormatColumns("{member} = Next{prop};",AutoKey(Columns),"\r\n","\t\t\t")%> <%=FormatColumns("{member} = new Guid();",Guid(Columns),"\r\n","\t\t\t")%><%=FormatColumns("{member} = Next{prop};",AutoKey(Columns),"\r\n","\t\t\t")%>
// Database Defaults // Database Defaults
<%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(Columns),"\r\n","\t\t\t")%> <%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(Columns),"\r\n","\t\t\t")%>
// TODO: Add any defaults that are necessary // CSLATODO: Add any defaults that are necessary
ValidationRules.CheckRules(); ValidationRules.CheckRules();
}<% }<%
vlnReadData(Columns,true); vlnReadData(Columns,true);
@ -1988,7 +1989,7 @@ namespace <%=_nameSpace%>
} }
} }
%> %>
// TODO: Define any additional output parameters // CSLATODO: Define any additional output parameters
cm.ExecuteNonQuery(); cm.ExecuteNonQuery();
// Save all values being returned from the Procedure<% // Save all values being returned from the Procedure<%
foreach(IColumn column in Columns) foreach(IColumn column in Columns)
@ -2087,7 +2088,7 @@ namespace <%=_nameSpace%>
} }
} }
%> %>
// TODO: Define any additional output parameters // CSLATODO: Define any additional output parameters
cm.ExecuteNonQuery(); cm.ExecuteNonQuery();
// Save all values being returned from the Procedure<% // Save all values being returned from the Procedure<%
IColumn tsCol=null; IColumn tsCol=null;
@ -2168,7 +2169,7 @@ namespace <%=_nameSpace%>
} }
} }
%> %>
// TODO: Define any additional output parameters // CSLATODO: Define any additional output parameters
cm.ExecuteNonQuery(); cm.ExecuteNonQuery();
// Save all values being returned from the Procedure<% // Save all values being returned from the Procedure<%
foreach(IColumn column in Columns) foreach(IColumn column in Columns)
@ -2384,7 +2385,7 @@ namespace <%=_nameSpace%>
} }
} }
%> %>
// TODO: Define any additional output parameters // CSLATODO: Define any additional output parameters
cm.ExecuteNonQuery(); cm.ExecuteNonQuery();
// Save all values being returned from the Procedure<% // Save all values being returned from the Procedure<%
tsCol=null; tsCol=null;
@ -2466,7 +2467,7 @@ namespace <%=_nameSpace%>
cm.CommandType = CommandType.StoredProcedure; cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "delete<%=_className%>"; cm.CommandText = "delete<%=_className%>";
// Input PK Fields<%=sValuesD%> // Input PK Fields<%=sValuesD%>
// TODO: Define any additional output parameters // CSLATODO: Define any additional output parameters
cm.ExecuteNonQuery(); cm.ExecuteNonQuery();
} }
} }
@ -2640,11 +2641,11 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
// Read members // Read members
//output.write(FormatColumns(dicRead,Columns,"","\r\n\t\t\t\t\t\t\t")); //output.write(FormatColumns(dicRead,Columns,"","\r\n\t\t\t\t\t\t\t"));
//dicRead1 = new Hashtable(); //dicRead1 = new Hashtable();
//dicRead1["timestamp"]="\r\n\t\t\t\t\t\tdr.GetBytes(\"{name}\", 0, {member}, 0, 8);";// TODO: Need to handle TimeStamp //dicRead1["timestamp"]="\r\n\t\t\t\t\t\tdr.GetBytes(\"{name}\", 0, {member}, 0, 8);";// CSLATODO: Need to handle TimeStamp
//output.write(FormatColumns(dicRead1,Columns,"")); //output.write(FormatColumns(dicRead1,Columns,""));
// if (_workingTable != fk.ForeignTable) // if (_workingTable != fk.ForeignTable)
// FKSelect(fk,tbl); // FKSelect(fk,tbl);
// TODO: Fix This See Below // CSLATODO: Fix This See Below
// foreach(IColumn field in Columns) // foreach(IColumn field in Columns)
// { // {
// if (field.IsInForeignKey && field.IsInPrimaryKey) // if (field.IsInForeignKey && field.IsInPrimaryKey)
@ -2846,7 +2847,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
// { // {
// partial class <%=_className%>Extension : extensionBase // partial class <%=_className%>Extension : extensionBase
// { // {
// // TODO: Override automatic defaults<% // // CSLATODO: Override automatic defaults<%
foreach(IColumn column in HasDefaults(columns)) foreach(IColumn column in HasDefaults(columns))
{ {
%> %>
@ -3641,16 +3642,16 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
} }
// if (sKey == "")sKey="base.GetIdValue()"; // if (sKey == "")sKey="base.GetIdValue()";
%> %>
// TODO: Check <%=sFkClassName%>.GetIdValue to assure that the ID returned is unique // CSLATODO: Check <%=sFkClassName%>.GetIdValue to assure that the ID returned is unique
/// <summary> /// <summary>
/// Overrides Base GetIdValue - Used internally by CSLA to determine equality /// Overrides Base GetIdValue - Used internally by CSLA to determine equality
/// </summary> /// </summary>
/// <returns>A Unique ID for the current <%=sFkClassName%></returns> /// <returns>A Unique ID for the current <%=sFkClassName%></returns>
protected override object GetIdValue() protected override object GetIdValue()
{ {
return <%=sKey%>; return My<%=_className%>Unique; // Absolutely Unique ID
} }
// TODO: Replace base <%=sFkClassName%>.ToString function as necessary // CSLATODO: Replace base <%=sFkClassName%>.ToString function as necessary
/// <summary> /// <summary>
/// Overrides Base ToString /// Overrides Base ToString
/// </summary> /// </summary>
@ -3667,7 +3668,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
string sColumn = RequiredRelatedColumn(col); string sColumn = RequiredRelatedColumn(col);
if (sColumn != null){ // Let the Validation Rules handle IsDirty and IsValid - LazyLoad should be ignored. if (sColumn != null){ // Let the Validation Rules handle IsDirty and IsValid - LazyLoad should be ignored.
sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sColumn)); sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sColumn));
sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValid)",MemberName(sColumn)); sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sColumn));
} }
} }
//if (sExtDirty!="") //if (sExtDirty!="")
@ -3776,7 +3777,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
} }
} }
%> %>
// TODO: Add other validation rules // CSLATODO: Add other validation rules
}<% }<%
foreach(IColumn column in fk.ForeignTable.Columns) foreach(IColumn column in fk.ForeignTable.Columns)
{ {
@ -3847,7 +3848,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
#region Authorization Rules #region Authorization Rules
protected override void AddAuthorizationRules() protected override void AddAuthorizationRules()
{ {
//TODO: Who can read/write which fields<% //CSLATODO: Who can read/write which fields<%
foreach(IColumn column in fk.ForeignTable.Columns) foreach(IColumn column in fk.ForeignTable.Columns)
{ {
if (!(IsIn(column,fk.ForeignColumns)) && column.DataTypeName != "timestamp") if (!(IsIn(column,fk.ForeignColumns)) && column.DataTypeName != "timestamp")
@ -3865,18 +3866,18 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
} }
public static bool CanAddObject() public static bool CanAddObject()
{ {
// TODO: Can Add Authorization // CSLATODO: Can Add Authorization
//return Csla.ApplicationContext.User.IsInRole("ProjectManager"); //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
return true; return true;
} }
public static bool CanGetObject() public static bool CanGetObject()
{ {
// TODO: CanGet Authorization // CSLATODO: CanGet Authorization
return true; return true;
} }
public static bool CanDeleteObject() public static bool CanDeleteObject()
{ {
// TODO: CanDelete Authorization // CSLATODO: CanDelete Authorization
//bool result = false; //bool result = false;
//if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true;
//if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true;
@ -3885,7 +3886,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
} }
public static bool CanEditObject() public static bool CanEditObject()
{ {
// TODO: CanEdit Authorization // CSLATODO: CanEdit Authorization
//return Csla.ApplicationContext.User.IsInRole("ProjectManager"); //return Csla.ApplicationContext.User.IsInRole("ProjectManager");
return true; return true;
} }
@ -4001,6 +4002,12 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
#region Factory Methods #region Factory Methods
public int CurrentEditLevel public int CurrentEditLevel
{ get { return EditLevel; } } { get { return EditLevel; } }
private static int _<%=_className%>Unique = 0;
private static int <%=_className%>Unique
{ get { return ++_<%=_className%>Unique; } }
private int _My<%=_className%>Unique = <%=_className%>Unique;
public int My<%=_className%>Unique // Absolutely Unique ID - Editable FK
{ get { return _My<%=_className%>Unique; } }
internal static <%=sFkClassName%> New(<%=sKeysTypes%>) internal static <%=sFkClassName%> New(<%=sKeysTypes%>)
{ {
return new <%=sFkClassName%>(<%=sValues%>); return new <%=sFkClassName%>(<%=sValues%>);
@ -4023,7 +4030,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
private <%=sFkClassName%>(<%=sValues2%>) private <%=sFkClassName%>(<%=sValues2%>)
{ {
MarkAsChild(); MarkAsChild();
// TODO: Add any initialization & defaults // CSLATODO: Add any initialization & defaults
<%=FormatColumns("\t\t\t{member} = {class}.Next{prop};\r\n",AutoKey(fk),"","")%><%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%> <%=FormatColumns("\t\t\t{member} = {class}.Next{prop};\r\n",AutoKey(fk),"","")%><%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%>
<%=sInit%> <%=sInit%>
ValidationRules.CheckRules(); ValidationRules.CheckRules();
@ -4238,7 +4245,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
}<% }<%
// ForeignKeys - List Foreign Keys - May want to create stored procedures // ForeignKeys - List Foreign Keys - May want to create stored procedures
%> %>
// TODO: Add alternative gets - // CSLATODO: Add alternative gets -
//public static <%=_className%> Get(<criteria>) //public static <%=_className%> Get(<criteria>)
//{ //{
// try // try
@ -4428,11 +4435,14 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
} }
private void AddRefreshMine(string sMember) private void AddRefreshMine(string sMember)
{ {
_refreshMine += string.Format("\t\t\tif({0} != null)\r\n",sMember); _refreshMine += string.Format("//RHM Removed 20090724 - Duplicates function of code above.\r\n",sMember);
_refreshMine += string.Format("\t\t\t{{\r\n",sMember); _refreshMine += string.Format("// - Dispose caused error when a new step was added.\r\n",sMember);
_refreshMine += string.Format("\t\t\t\t{0}.Dispose();// Dispose related value\r\n",sMember); _refreshMine += string.Format("// - Resequence of transitions did not work properly.\r\n",sMember);
_refreshMine += string.Format("\t\t\t\t{0} = null;// Reset related value\r\n",sMember); _refreshMine += string.Format("//\t\t\tif({0} != null)\r\n",sMember);
_refreshMine += string.Format("\t\t\t}}\r\n",sMember); _refreshMine += string.Format("//\t\t\t{{\r\n");
_refreshMine += string.Format("//\t\t\t\t{0}.Dispose();// Dispose related value\r\n",sMember);
_refreshMine += string.Format("//\t\t\t\t{0} = null;// Reset related value\r\n",sMember);
_refreshMine += string.Format("//\t\t\t}}\r\n");
} }
private void vlnBusinessMethodsInfo(IColumns columns) private void vlnBusinessMethodsInfo(IColumns columns)
{ {
@ -4587,7 +4597,7 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
private static int <%=_className%>Unique private static int <%=_className%>Unique
{ get { return ++_<%=_className%>Unique; } } { get { return ++_<%=_className%>Unique; } }
private int _My<%=_className%>Unique = <%=_className%>Unique; private int _My<%=_className%>Unique = <%=_className%>Unique;
public int My<%=_className%>Unique public int My<%=_className%>Unique // Absolutely Unique ID - Info
{ get { return _My<%=_className%>Unique; } } { get { return _My<%=_className%>Unique; } }
protected <%=_className%>() protected <%=_className%>()
{/* require use of factory methods */ {/* require use of factory methods */
@ -4859,15 +4869,21 @@ private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool get
if (_LoggingInfo) if (_LoggingInfo)
Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode));
} }
private static string _ConnectionName = "<%=_dbConnection%>";
public static string ConnectionName
{
get { return Database._ConnectionName; }
set { Database._ConnectionName = value; }
}
public static string <%=_dbConnection%>_Connection public static string <%=_dbConnection%>_Connection
{ {
get get
{ {
DateTime.Today.ToLongDateString(); DateTime.Today.ToLongDateString();
ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["<%=_dbConnection%>"]; ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName];
if (cs == null) if (cs == null)
{ {
throw new ApplicationException("Database.cs Could not find connection <%=_dbConnection%>"); throw new ApplicationException("Database.cs Could not find connection " + ConnectionName);
} }
return cs.ConnectionString; return cs.ConnectionString;
} }

View File

@ -255,6 +255,7 @@ public class GeneratedTemplate : DotNetScriptTemplate
{ {
StartProc("purgeData"); StartProc("purgeData");
%> %>
WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION<% BEGIN TRANSACTION<%
@ -329,6 +330,7 @@ BEGIN TRY -- Try Block
string sproc = "get" + ClassesName(tbl); string sproc = "get" + ClassesName(tbl);
StartProc(sproc); StartProc(sproc);
%> %>
WITH EXECUTE AS OWNER
AS AS
SELECT SELECT
<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> <%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%>
@ -388,6 +390,7 @@ AS
( (
<%=FormatColumns("{@} {dtype}{?null}",tbl.Columns,",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",Computed(tbl),"",",\r\n\t")%> <%=FormatColumns("{@} {dtype}{?null}",tbl.Columns,",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",Computed(tbl),"",",\r\n\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION BEGIN TRANSACTION
@ -422,6 +425,7 @@ BEGIN TRY -- Try Block
( (
<%=FormatColumns("{@} {dtype}{?null}",Insertable(tbl),",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",NotInsertable(tbl),"",",\r\n\t")%> <%=FormatColumns("{@} {dtype}{?null}",Insertable(tbl),",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",NotInsertable(tbl),"",",\r\n\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION BEGIN TRANSACTION
@ -454,6 +458,7 @@ BEGIN TRY -- Try Block
( (
<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> <%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
BEGIN TRY -- Try Block BEGIN TRY -- Try Block
BEGIN TRANSACTION<% BEGIN TRANSACTION<%
@ -488,6 +493,7 @@ BEGIN TRY -- Try Block
( (
<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> <%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
SELECT SELECT
<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> <%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%>
@ -523,6 +529,7 @@ AS
%>( %>(
<%=FormatColumns("{@} {dtype}",ind.Columns,",\r\n","\t")%> <%=FormatColumns("{@} {dtype}",ind.Columns,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
SELECT SELECT
<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> <%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%>
@ -545,6 +552,7 @@ AS
%>( %>(
<%=FormatColumns("{@} {dtype}",fk.ForeignColumns,",\r\n","\t")%> <%=FormatColumns("{@} {dtype}",fk.ForeignColumns,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
SELECT SELECT
<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> <%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%>
@ -570,7 +578,8 @@ AS
( (
<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> <%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%>
) )
AS WITH EXECUTE AS OWNER
AS
SELECT COUNT(*) SELECT COUNT(*)
FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><% FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><%
EndProc(sproc); EndProc(sproc);
@ -599,6 +608,7 @@ AS
( (
<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> <%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS AS
SELECT SELECT
<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> <%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%>
@ -619,6 +629,7 @@ AS
( (
<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> <%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%>
) )
WITH EXECUTE AS OWNER
AS<% AS<%
string sWhere = "\r\n\tWHERE\r\n\t\t" + FormatColumns2("[{fktable}].[{fkname}]={@}",FK," AND ",""); string sWhere = "\r\n\tWHERE\r\n\t\t" + FormatColumns2("[{fktable}].[{fkname}]={@}",FK," AND ","");
FKSelect(FK,(FK.PrimaryTable==tbl?FK.ForeignTable:FK.PrimaryTable),FKCounts(tbl),sWhere); FKSelect(FK,(FK.PrimaryTable==tbl?FK.ForeignTable:FK.PrimaryTable),FKCounts(tbl),sWhere);

View File

@ -76,6 +76,8 @@ public class GeneratedGui : DotNetScriptGui
chkFKCalc2.Checked = false; chkFKCalc2.Checked = false;
GuiCheckBox chkColumns2 = MakeGuiCheckBox("chkColumns2","PrimFK",true,"Primary Foreign Key",150,chkDetail,300, -1); GuiCheckBox chkColumns2 = MakeGuiCheckBox("chkColumns2","PrimFK",true,"Primary Foreign Key",150,chkDetail,300, -1);
chkColumns2.Checked = false; chkColumns2.Checked = false;
GuiCheckBox chkNewFK = MakeGuiCheckBox( "chkNewFK", "NewFK", true, "NewFK" ,150,chkDetail,450,-1);
chkNewFK.Checked = false;
GuiCheckBox chkRelated = MakeGuiCheckBox("chkRelated","Related",true,"Related",150,chkDetail,0,-2); GuiCheckBox chkRelated = MakeGuiCheckBox("chkRelated","Related",true,"Related",150,chkDetail,0,-2);
chkRelated.Checked = false; chkRelated.Checked = false;
GuiCheckBox chkOne2One = MakeGuiCheckBox("chkOne2One","One to One",true,"One to Many and One to One",150,chkDetail,150, -2); GuiCheckBox chkOne2One = MakeGuiCheckBox("chkOne2One","One to One",true,"One to Many and One to One",150,chkDetail,150, -2);
@ -230,6 +232,7 @@ public class GeneratedGui : DotNetScriptGui
GuiCheckBox chkAlias= ui["chkAlias"] as GuiCheckBox; GuiCheckBox chkAlias= ui["chkAlias"] as GuiCheckBox;
GuiCheckBox chkNames= ui["chkNames"] as GuiCheckBox; GuiCheckBox chkNames= ui["chkNames"] as GuiCheckBox;
GuiCheckBox chkProc = ui["chkProc"] as GuiCheckBox; GuiCheckBox chkProc = ui["chkProc"] as GuiCheckBox;
GuiCheckBox chkNewFK = ui["chkNewFK"] as GuiCheckBox;
GuiLabel labelTest = ui["labelTest"] as GuiLabel; GuiLabel labelTest = ui["labelTest"] as GuiLabel;
string status = ""; string status = "";
if(chkDetail.Checked)status+=", " + chkDetail.Text; if(chkDetail.Checked)status+=", " + chkDetail.Text;
@ -245,6 +248,7 @@ public class GeneratedGui : DotNetScriptGui
if(chkAlias.Checked)status+=", " + chkAlias.Text; if(chkAlias.Checked)status+=", " + chkAlias.Text;
if(chkNames.Checked)status+=", " + chkNames.Text; if(chkNames.Checked)status+=", " + chkNames.Text;
if(chkProc.Checked)status+=", " + chkProc.Text; if(chkProc.Checked)status+=", " + chkProc.Text;
if(chkNewFK.Checked)status+=", " + chkNewFK.Text;
if(status == "") if(status == "")
{ {
btnOK.Enabled = false; btnOK.Enabled = false;
@ -352,6 +356,7 @@ public class GeneratedTemplate : DotNetScriptTemplate
if((bool)input["chkInternal"])ShowInternalRelated( _workingTable ); if((bool)input["chkInternal"])ShowInternalRelated( _workingTable );
if((bool)input["chkAlias"])ShowAlias( _workingTable ); if((bool)input["chkAlias"])ShowAlias( _workingTable );
if((bool)input["chkNames"])ShowNames( _workingTable ); if((bool)input["chkNames"])ShowNames( _workingTable );
if((bool)input["chkNewFK"])ShowNewFK( _workingTable );
} }
} }
//foreach(ITable tbl in db.Tables) //foreach(ITable tbl in db.Tables)
@ -382,6 +387,19 @@ public class GeneratedTemplate : DotNetScriptTemplate
} }
} }
} }
private void ShowNewFK(ITable tbl)
{
%>NewFK Output:<%=tbl.Name%>
<%
foreach(IForeignKey fk in tbl.ForeignKeys)
{
if(tbl.Name == fk.PrimaryTable.Name)
{
%>Foreign Table <%=fk.ForeignTable.Name%> Column <%=fk.ForeignColumns[0].Name%>
<%
}
}
}
private string ForeignKeyCheck(IColumn col) private string ForeignKeyCheck(IColumn col)
{ {

View File

@ -221,7 +221,7 @@ public class GeneratedTemplate : DotNetScriptTemplate
_exportPath = input["outputPath"].ToString(); _exportPath = input["outputPath"].ToString();
_dbName = input["chooseDatabase"].ToString(); _dbName = input["chooseDatabase"].ToString();
IDatabase db = MyMeta.Databases[_dbName]; IDatabase db = MyMeta.Databases[_dbName];
SaveProcs(db); SaveProcsSorted(db);
//SaveTables(db); //SaveTables(db);
} }
private bool IncludeVolian(string sName) private bool IncludeVolian(string sName)
@ -264,6 +264,47 @@ IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AN
DROP <%=sType%> [<%=sName%>]; DROP <%=sType%> [<%=sName%>];
GO GO
<%
output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n"));
%>
GO
-- Display the status of Proc creation
IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded'
ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation'
GO
<%
SaveFile(ip.Name);
}
}
}
}
}
private void SaveProcsSorted(IDatabase db)
{
SortedList sortedList = new SortedList();
foreach(IProcedure ip in db.Procedures)
{
sortedList.Add(ip.Name,ip);
}
foreach(IProcedure ip in sortedList.Values)
{
if(ip.Schema != "sys"){
bool isProc = IsProcedure(ip);
string sType = isProc ? "PROCEDURE" : "FUNCTION";
string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction");
string sName = ip.Name;
if((bool)input["chkDrop"]){
if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName))
output.writeln("DROP " + sType + " [" + sName + "]");
} else {
if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName))
{
%>
/****** Object: StoredProcedure [<%=sName%>] ******/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1)
DROP <%=sType%> [<%=sName%>];
GO
<% <%
output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n")); output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n"));
%> %>
@ -281,7 +322,7 @@ GO
} }
private bool IsProcedure(IProcedure ip) private bool IsProcedure(IProcedure ip)
{ {
return ip.ProcedureText.Contains("CREATE PROCEDURE"); return ip.ProcedureText.ToUpper().Contains("CREATE PROCEDURE");
} }
private bool IsTableFunction(IProcedure ip) private bool IsTableFunction(IProcedure ip)
{ {